summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Config.in6
-rw-r--r--mk/kernel-ver.mk10
-rw-r--r--package/bcm2835-firmware/Makefile4
-rw-r--r--target/arm/kernel.config42
-rw-r--r--target/arm/sys-available/raspberry-pi5
-rw-r--r--target/config/Config.in1
-rw-r--r--target/linux/Config.in1
-rw-r--r--target/linux/config/Config.in.block27
-rw-r--r--target/linux/config/Config.in.graphics12
-rw-r--r--target/linux/config/Config.in.systems2
-rw-r--r--target/linux/patches/3.9.9/bsd-compatibility.patch (renamed from target/linux/patches/3.9.8/bsd-compatibility.patch)0
-rw-r--r--target/linux/patches/3.9.9/cris-etrax.patch (renamed from target/linux/patches/3.9.8/cris-etrax.patch)0
-rw-r--r--target/linux/patches/3.9.9/defaults.patch (renamed from target/linux/patches/3.9.8/defaults.patch)0
-rw-r--r--target/linux/patches/3.9.9/disable-netfilter.patch (renamed from target/linux/patches/3.9.8/disable-netfilter.patch)0
-rw-r--r--target/linux/patches/3.9.9/gemalto.patch (renamed from target/linux/patches/3.9.8/gemalto.patch)0
-rw-r--r--target/linux/patches/3.9.9/lemote-rfkill.patch (renamed from target/linux/patches/3.9.8/lemote-rfkill.patch)0
-rw-r--r--target/linux/patches/3.9.9/mtd-rootfs.patch (renamed from target/linux/patches/3.9.8/mtd-rootfs.patch)0
-rw-r--r--target/linux/patches/3.9.9/non-static.patch (renamed from target/linux/patches/3.9.8/non-static.patch)0
-rw-r--r--target/linux/patches/3.9.9/raspberry.patch (renamed from target/linux/patches/3.9.8/raspberry.patch)7359
-rw-r--r--target/linux/patches/3.9.9/startup.patch (renamed from target/linux/patches/3.9.8/startup.patch)0
-rw-r--r--target/linux/patches/3.9.9/usb-defaults-off.patch (renamed from target/linux/patches/3.9.8/usb-defaults-off.patch)0
-rw-r--r--target/linux/patches/3.9.9/uuid.patch (renamed from target/linux/patches/3.9.8/uuid.patch)0
-rw-r--r--target/linux/patches/3.9.9/vga-cons-default-off.patch (renamed from target/linux/patches/3.9.8/vga-cons-default-off.patch)0
-rw-r--r--target/linux/patches/3.9.9/wlan-cf.patch (renamed from target/linux/patches/3.9.8/wlan-cf.patch)0
-rw-r--r--target/linux/patches/3.9.9/zlib-inflate.patch (renamed from target/linux/patches/3.9.8/zlib-inflate.patch)0
-rw-r--r--toolchain/kernel-headers/patches/3.9.9/cleankernel.patch (renamed from toolchain/kernel-headers/patches/3.9.8/cleankernel.patch)0
-rw-r--r--toolchain/kernel-headers/patches/3.9.9/microperl.patch (renamed from toolchain/kernel-headers/patches/3.9.8/microperl.patch)0
-rw-r--r--toolchain/kernel-headers/patches/3.9.9/mkpiggy.patch (renamed from toolchain/kernel-headers/patches/3.9.8/mkpiggy.patch)0
-rw-r--r--toolchain/kernel-headers/patches/3.9.9/relocs.patch (renamed from toolchain/kernel-headers/patches/3.9.8/relocs.patch)0
-rw-r--r--toolchain/kernel-headers/patches/3.9.9/sortext.patch (renamed from toolchain/kernel-headers/patches/3.9.8/sortext.patch)0
30 files changed, 4389 insertions, 3080 deletions
diff --git a/Config.in b/Config.in
index 9a9ea5901..8527383b0 100644
--- a/Config.in
+++ b/Config.in
@@ -106,8 +106,8 @@ depends on !ADK_TOOLCHAIN_ONLY && !ADK_CHOOSE_TARGET_ARCH && !ADK_CHOOSE_TARGET_
choice
prompt "Kernel Version"
-config ADK_KERNEL_VERSION_3_9_8
- prompt "3.9.8"
+config ADK_KERNEL_VERSION_3_9_9
+ prompt "3.9.9"
boolean
config ADK_KERNEL_VERSION_3_4_51
@@ -118,7 +118,7 @@ endchoice
config ADK_KERNEL_VERSION
string
- default "3.9.8" if ADK_KERNEL_VERSION_3_9_8
+ default "3.9.9" if ADK_KERNEL_VERSION_3_9_9
default "3.4.51" if ADK_KERNEL_VERSION_3_4_51
help
diff --git a/mk/kernel-ver.mk b/mk/kernel-ver.mk
index 57e971817..e80460f9c 100644
--- a/mk/kernel-ver.mk
+++ b/mk/kernel-ver.mk
@@ -1,14 +1,14 @@
ifeq ($(ADK_KERNEL_VERSION_TOOLCHAIN),y)
-KERNEL_VERSION:= 3.9.8
+KERNEL_VERSION:= 3.9.9
KERNEL_MOD_VERSION:= $(KERNEL_VERSION)
KERNEL_RELEASE:= 1
-KERNEL_MD5SUM:= 04d74575ef1c484ad00be61f32bb4557
+KERNEL_MD5SUM:= 70504d1685140e3ee355b9f860284d85
endif
-ifeq ($(ADK_KERNEL_VERSION_3_9_8),y)
-KERNEL_VERSION:= 3.9.8
+ifeq ($(ADK_KERNEL_VERSION_3_9_9),y)
+KERNEL_VERSION:= 3.9.9
KERNEL_MOD_VERSION:= $(KERNEL_VERSION)
KERNEL_RELEASE:= 1
-KERNEL_MD5SUM:= 04d74575ef1c484ad00be61f32bb4557
+KERNEL_MD5SUM:= 70504d1685140e3ee355b9f860284d85
endif
ifeq ($(ADK_KERNEL_VERSION_3_4_51),y)
KERNEL_VERSION:= 3.4.51
diff --git a/package/bcm2835-firmware/Makefile b/package/bcm2835-firmware/Makefile
index 0f9e9f2a6..5f51445d2 100644
--- a/package/bcm2835-firmware/Makefile
+++ b/package/bcm2835-firmware/Makefile
@@ -4,9 +4,9 @@
include ${TOPDIR}/rules.mk
PKG_NAME:= bcm2835-firmware
-PKG_VERSION:= 0.2
+PKG_VERSION:= 0.3
PKG_RELEASE:= 1
-PKG_MD5SUM:= fecab45f97a44babaf618523852bbb9b
+PKG_MD5SUM:= e564b5d20153abc9b71d0bde8ece72f3
PKG_DESCR:= firmware for raspberry pi (bcm2835)
PKG_SECTION:= base
PKG_SITES:= http://openadk.org/distfiles/
diff --git a/target/arm/kernel.config b/target/arm/kernel.config
index bcd334bcf..d7eacd13e 100644
--- a/target/arm/kernel.config
+++ b/target/arm/kernel.config
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/arm 3.8.10 Kernel Configuration
+# Linux/arm 3.9.9 Kernel Configuration
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -17,13 +17,12 @@ CONFIG_NEED_DMA_MAP_STATE=y
CONFIG_VECTORS_BASE=0xffff0000
CONFIG_ARM_PATCH_PHYS_VIRT=y
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
-CONFIG_HAVE_IRQ_WORK=y
+CONFIG_IRQ_WORK=y
CONFIG_BUILDTIME_EXTABLE_SORT=y
#
# General setup
#
-CONFIG_EXPERIMENTAL=y
CONFIG_BROKEN_ON_SMP=y
CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_CROSS_COMPILE=""
@@ -76,6 +75,7 @@ CONFIG_TICK_CPU_ACCOUNTING=y
#
CONFIG_TINY_RCU=y
# CONFIG_PREEMPT_RCU is not set
+# CONFIG_RCU_STALL_COMMON is not set
# CONFIG_TREE_RCU_TRACE is not set
# CONFIG_IKCONFIG is not set
CONFIG_LOG_BUF_SHIFT=17
@@ -125,6 +125,7 @@ CONFIG_SLAB=y
CONFIG_HAVE_OPROFILE=y
# CONFIG_KPROBES is not set
# CONFIG_JUMP_LABEL is not set
+# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set
CONFIG_HAVE_KPROBES=y
CONFIG_HAVE_KRETPROBES=y
CONFIG_HAVE_ARCH_TRACEHOOK=y
@@ -139,6 +140,8 @@ CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y
CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
CONFIG_MODULES_USE_ELF_REL=y
CONFIG_CLONE_BACKWARDS=y
+CONFIG_OLD_SIGSUSPEND3=y
+CONFIG_OLD_SIGACTION=y
#
# GCOV-based kernel profiling
@@ -171,6 +174,7 @@ CONFIG_MMU=y
# CONFIG_ARCH_REALVIEW is not set
# CONFIG_ARCH_VERSATILE is not set
# CONFIG_ARCH_AT91 is not set
+# CONFIG_ARCH_BCM2708 is not set
CONFIG_ARCH_BCM2835=y
# CONFIG_ARCH_CNS3XXX is not set
# CONFIG_ARCH_CLPS711X is not set
@@ -212,10 +216,7 @@ CONFIG_ARCH_BCM2835=y
# CONFIG_ARCH_NOMADIK is not set
# CONFIG_PLAT_SPEAR is not set
# CONFIG_ARCH_DAVINCI is not set
-# CONFIG_ARCH_OMAP is not set
-# CONFIG_ARCH_BCM2708 is not set
-# CONFIG_ARCH_VT8500_SINGLE is not set
-# CONFIG_ARCH_VT8500 is not set
+# CONFIG_ARCH_OMAP1 is not set
CONFIG_ARM_TIMER_SP804=y
#
@@ -270,23 +271,22 @@ CONFIG_PREEMPT_NONE=y
# CONFIG_PREEMPT_VOLUNTARY is not set
# CONFIG_PREEMPT is not set
CONFIG_HZ=100
+# CONFIG_SCHED_HRTICK is not set
CONFIG_AEABI=y
# CONFIG_OABI_COMPAT is not set
# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
CONFIG_HAVE_ARCH_PFN_VALID=y
# CONFIG_HIGHMEM is not set
-CONFIG_SELECT_MEMORY_MODEL=y
-CONFIG_FLATMEM_MANUAL=y
CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
CONFIG_HAVE_MEMBLOCK=y
+# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set
CONFIG_PAGEFLAGS_EXTENDED=y
CONFIG_SPLIT_PTLOCK_CPUS=4
# CONFIG_COMPACTION is not set
# CONFIG_PHYS_ADDR_T_64BIT is not set
CONFIG_ZONE_DMA_FLAG=0
-CONFIG_VIRT_TO_BUS=y
# CONFIG_KSM is not set
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
CONFIG_CROSS_MEMORY_ATTACH=y
@@ -405,13 +405,13 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_ATALK is not set
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
-# CONFIG_WAN_ROUTER is not set
# CONFIG_PHONET is not set
# CONFIG_IEEE802154 is not set
# CONFIG_NET_SCHED is not set
# CONFIG_DCB is not set
# CONFIG_BATMAN_ADV is not set
# CONFIG_OPENVSWITCH is not set
+# CONFIG_VSOCKETS is not set
CONFIG_BQL=y
# CONFIG_BPF_JIT is not set
@@ -477,6 +477,7 @@ CONFIG_OF_DEVICE=y
# Misc devices
#
# CONFIG_ATMEL_PWM is not set
+# CONFIG_ATMEL_SSC is not set
# CONFIG_ENCLOSURE_SERVICES is not set
# CONFIG_C2PORT is not set
@@ -516,6 +517,7 @@ CONFIG_SCSI_MOD=y
#
# Character devices
#
+CONFIG_TTY=y
# CONFIG_VT is not set
CONFIG_UNIX98_PTYS=y
# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -584,6 +586,7 @@ CONFIG_PINCTRL_BCM2835=y
# CONFIG_PINCTRL_EXYNOS5440 is not set
CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y
CONFIG_ARCH_REQUIRE_GPIOLIB=y
+CONFIG_GPIO_DEVRES=y
CONFIG_GPIOLIB=y
CONFIG_OF_GPIO=y
# CONFIG_DEBUG_GPIO is not set
@@ -663,6 +666,8 @@ CONFIG_BCMA_POSSIBLE=y
# CONFIG_DRM is not set
# CONFIG_VGASTATE is not set
# CONFIG_VIDEO_OUTPUT_CONTROL is not set
+# CONFIG_OF_DISPLAY_TIMING is not set
+# CONFIG_OF_VIDEOMODE is not set
# CONFIG_FB is not set
# CONFIG_EXYNOS_VIDEO is not set
# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
@@ -703,17 +708,19 @@ CONFIG_COMMON_CLK=y
#
# Hardware Spinlock drivers
#
+CONFIG_CLKSRC_OF=y
CONFIG_CLKSRC_MMIO=y
+# CONFIG_MAILBOX is not set
CONFIG_IOMMU_SUPPORT=y
CONFIG_OF_IOMMU=y
#
-# Remoteproc drivers (EXPERIMENTAL)
+# Remoteproc drivers
#
# CONFIG_STE_MODEM_RPROC is not set
#
-# Rpmsg drivers (EXPERIMENTAL)
+# Rpmsg drivers
#
# CONFIG_VIRT_DRIVERS is not set
# CONFIG_PM_DEVFREQ is not set
@@ -721,6 +728,7 @@ CONFIG_OF_IOMMU=y
# CONFIG_MEMORY is not set
# CONFIG_IIO is not set
# CONFIG_PWM is not set
+CONFIG_IRQCHIP=y
# CONFIG_IPACK_BUS is not set
#
@@ -794,7 +802,6 @@ CONFIG_HAVE_DEBUG_KMEMLEAK=y
# CONFIG_DEBUG_MUTEXES is not set
# CONFIG_DEBUG_LOCK_ALLOC is not set
# CONFIG_PROVE_LOCKING is not set
-# CONFIG_SPARSE_RCU_POINTER is not set
# CONFIG_LOCK_STAT is not set
# CONFIG_DEBUG_ATOMIC_SLEEP is not set
# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
@@ -811,6 +818,11 @@ CONFIG_HAVE_DEBUG_KMEMLEAK=y
# CONFIG_DEBUG_CREDENTIALS is not set
CONFIG_FRAME_POINTER=y
# CONFIG_BOOT_PRINTK_DELAY is not set
+
+#
+# RCU Debugging
+#
+# CONFIG_SPARSE_RCU_POINTER is not set
# CONFIG_RCU_TORTURE_TEST is not set
# CONFIG_RCU_TRACE is not set
# CONFIG_BACKTRACE_SELF_TEST is not set
@@ -900,6 +912,7 @@ CONFIG_CRYPTO_RNG2=m
# Digest
#
# CONFIG_CRYPTO_CRC32C is not set
+# CONFIG_CRYPTO_CRC32 is not set
# CONFIG_CRYPTO_GHASH is not set
# CONFIG_CRYPTO_MD4 is not set
# CONFIG_CRYPTO_MD5 is not set
@@ -984,3 +997,4 @@ CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y
# CONFIG_AVERAGE is not set
# CONFIG_CORDIC is not set
# CONFIG_DDR is not set
+# CONFIG_VIRTUALIZATION is not set
diff --git a/target/arm/sys-available/raspberry-pi b/target/arm/sys-available/raspberry-pi
index c77f1fb42..93f9008aa 100644
--- a/target/arm/sys-available/raspberry-pi
+++ b/target/arm/sys-available/raspberry-pi
@@ -3,12 +3,13 @@ config ADK_TARGET_SYSTEM_RASPBERRY_PI
select ADK_arm
select ADK_little
select ADK_raspberry_pi
- select ADK_KERNEL_ARCH_BCM2835
+ select ADK_KERNEL_ARCH_BCM2708
select ADK_KERNEL_AEABI
select ADK_EABIHF
- select ADK_TARGET_WITH_MMC
select ADK_CPU_RASPBERRY_PI
select ADK_PACKAGE_BCM2835_FIRMWARE
+ select ADK_TARGET_WITH_MMC
+ select ADK_TARGET_WITH_VGA
help
Raspberry PI
diff --git a/target/config/Config.in b/target/config/Config.in
index 796b55684..14d2ad814 100644
--- a/target/config/Config.in
+++ b/target/config/Config.in
@@ -526,6 +526,7 @@ config ADK_TARGET_CFLAGS
config ADK_TARGET_CMDLINE
string
+ default "rootfstype=ext4 root=/dev/mmcblk0p2 rootwait" if ADK_TARGET_SYSTEM_RASPBERRY_PI
default "console=tty no_auto_cmd" if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
default "console=ttyS0,9600" if ADK_TARGET_SYSTEM_FON_FON2100
default "console=ttyS0,38400" if ADK_TARGET_SYSTEM_PCENGINES_WRAP
diff --git a/target/linux/Config.in b/target/linux/Config.in
index 1b78cecb5..d7d9b5355 100644
--- a/target/linux/Config.in
+++ b/target/linux/Config.in
@@ -17,6 +17,7 @@ source target/linux/config/Config.in.bluetooth
source target/linux/config/Config.in.watchdog
source target/linux/config/Config.in.leds
source target/linux/config/Config.in.misc
+#source target/linux/config/Config.in.arm
source target/linux/config/Config.in.mips
source target/linux/config/Config.in.lib
source target/linux/config/Config.in.pm
diff --git a/target/linux/config/Config.in.block b/target/linux/config/Config.in.block
index e3df1396f..3fb705e97 100644
--- a/target/linux/config/Config.in.block
+++ b/target/linux/config/Config.in.block
@@ -59,6 +59,18 @@ config ADK_KERNEL_MMC
config ADK_KERNEL_MMC_BLOCK
boolean
+config ADK_KERNEL_MMC_SDHCI
+ boolean
+
+config ADK_KERNEL_MMC_SDHCI_IO_ACCESSORS
+ boolean
+
+config ADK_KERNEL_MMC_SDHCI_PLTFM
+ boolean
+
+config ADK_KERNEL_MMC_SDHCI_BCM2708_DMA
+ boolean
+
config ADK_KERNEL_SCSI_SYM53C8XX_2
boolean
@@ -89,6 +101,21 @@ config ADK_KERNEL_MMC_AT91
default y if ADK_TARGET_SYSTEM_ACMESYSTEMS_FOXG20
default n
+config ADK_KERNEL_MMC_SDHCI_BCM2708
+ boolean
+ select ADK_KERNEL_BLOCK
+ select ADK_KERNEL_SCSI
+ select ADK_KERNEL_MMC
+ select ADK_KERNEL_MMC_BLOCK
+ select ADK_KERNEL_BLK_DEV
+ select ADK_KERNEL_BLK_DEV_SD
+ select ADK_KERNEL_MMC_SDHCI
+ select ADK_KERNEL_MMC_SDHCI_IO_ACCESSORS
+ select ADK_KERNEL_MMC_SDHCI_PLTFM
+ select ADK_KERNEL_MMC_SDHCI_BCM2708_DMA
+ default y if ADK_TARGET_SYSTEM_RASPBERRY_PI
+ default n
+
config ADK_KERNEL_PATA_RB532
boolean
select ADK_KERNEL_BLOCK
diff --git a/target/linux/config/Config.in.graphics b/target/linux/config/Config.in.graphics
index 277d0f3e4..4560467d3 100644
--- a/target/linux/config/Config.in.graphics
+++ b/target/linux/config/Config.in.graphics
@@ -113,6 +113,18 @@ config ADK_KERNEL_FB_SM7XX
help
Framebuffer support for Lemote Yeelong.
+config ADK_KERNEL_FB_BCM2708
+ prompt "................................ Framebuffer support for Raspberry PI"
+ tristate
+ select ADK_KERNEL_FB
+ select ADK_KERNEL_FRAMEBUFFER_CONSOLE
+ select ADK_KERNEL_FONT_8x16
+ default y if ADK_TARGET_SYSTEM_RASPBERRY_PI
+ default n
+ depends on ADK_TARGET_SYSTEM_RASPBERRY_PI
+ help
+ Framebuffer support for Raspberry PI.
+
config ADK_HARDWARE_GRAPHICS_INTEL_I915
prompt "............................ Support for Intel graphic cards (AGP/DRM/KMS/NM10)"
boolean
diff --git a/target/linux/config/Config.in.systems b/target/linux/config/Config.in.systems
index 40a7a8da9..ee806c531 100644
--- a/target/linux/config/Config.in.systems
+++ b/target/linux/config/Config.in.systems
@@ -60,7 +60,7 @@ config ADK_KERNEL_ARCH_AT91SAM9G20
config ADK_KERNEL_MACH_ACMENETUSFOXG20
boolean
-config ADK_KERNEL_ARCH_BCM2835
+config ADK_KERNEL_ARCH_BCM2708
boolean
config ADK_KERNEL_BCM47XX_SSB
diff --git a/target/linux/patches/3.9.8/bsd-compatibility.patch b/target/linux/patches/3.9.9/bsd-compatibility.patch
index 9e55150cc..9e55150cc 100644
--- a/target/linux/patches/3.9.8/bsd-compatibility.patch
+++ b/target/linux/patches/3.9.9/bsd-compatibility.patch
diff --git a/target/linux/patches/3.9.8/cris-etrax.patch b/target/linux/patches/3.9.9/cris-etrax.patch
index a80d9a8b8..a80d9a8b8 100644
--- a/target/linux/patches/3.9.8/cris-etrax.patch
+++ b/target/linux/patches/3.9.9/cris-etrax.patch
diff --git a/target/linux/patches/3.9.8/defaults.patch b/target/linux/patches/3.9.9/defaults.patch
index 58aae610b..58aae610b 100644
--- a/target/linux/patches/3.9.8/defaults.patch
+++ b/target/linux/patches/3.9.9/defaults.patch
diff --git a/target/linux/patches/3.9.8/disable-netfilter.patch b/target/linux/patches/3.9.9/disable-netfilter.patch
index 7b1ca013a..7b1ca013a 100644
--- a/target/linux/patches/3.9.8/disable-netfilter.patch
+++ b/target/linux/patches/3.9.9/disable-netfilter.patch
diff --git a/target/linux/patches/3.9.8/gemalto.patch b/target/linux/patches/3.9.9/gemalto.patch
index 65f7af1d7..65f7af1d7 100644
--- a/target/linux/patches/3.9.8/gemalto.patch
+++ b/target/linux/patches/3.9.9/gemalto.patch
diff --git a/target/linux/patches/3.9.8/lemote-rfkill.patch b/target/linux/patches/3.9.9/lemote-rfkill.patch
index a61488434..a61488434 100644
--- a/target/linux/patches/3.9.8/lemote-rfkill.patch
+++ b/target/linux/patches/3.9.9/lemote-rfkill.patch
diff --git a/target/linux/patches/3.9.8/mtd-rootfs.patch b/target/linux/patches/3.9.9/mtd-rootfs.patch
index 775d5fc80..775d5fc80 100644
--- a/target/linux/patches/3.9.8/mtd-rootfs.patch
+++ b/target/linux/patches/3.9.9/mtd-rootfs.patch
diff --git a/target/linux/patches/3.9.8/non-static.patch b/target/linux/patches/3.9.9/non-static.patch
index a967703d0..a967703d0 100644
--- a/target/linux/patches/3.9.8/non-static.patch
+++ b/target/linux/patches/3.9.9/non-static.patch
diff --git a/target/linux/patches/3.9.8/raspberry.patch b/target/linux/patches/3.9.9/raspberry.patch
index 77864a952..f50fc05c7 100644
--- a/target/linux/patches/3.9.8/raspberry.patch
+++ b/target/linux/patches/3.9.9/raspberry.patch
@@ -1,7 +1,7 @@
-diff -Nur linux-3.8.10.orig/arch/arm/configs/bcmrpi_defconfig linux-3.8.10/arch/arm/configs/bcmrpi_defconfig
---- linux-3.8.10.orig/arch/arm/configs/bcmrpi_defconfig 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/arch/arm/configs/bcmrpi_defconfig 2013-05-06 12:49:35.000000000 +0200
-@@ -0,0 +1,1032 @@
+diff -Nur linux-3.9.9/arch/arm/configs/bcmrpi_defconfig linux-rpi/arch/arm/configs/bcmrpi_defconfig
+--- linux-3.9.9/arch/arm/configs/bcmrpi_defconfig 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/arch/arm/configs/bcmrpi_defconfig 2013-07-08 13:33:14.000000000 +0200
+@@ -0,0 +1,1034 @@
+# CONFIG_ARM_PATCH_PHYS_VIRT is not set
+CONFIG_EXPERIMENTAL=y
+# CONFIG_LOCALVERSION_AUTO is not set
@@ -265,7 +265,6 @@ diff -Nur linux-3.8.10.orig/arch/arm/configs/bcmrpi_defconfig linux-3.8.10/arch/
+CONFIG_BRIDGE_EBT_LOG=m
+CONFIG_BRIDGE_EBT_ULOG=m
+CONFIG_BRIDGE_EBT_NFLOG=m
-+CONFIG_IP_SCTP=m
+CONFIG_L2TP=m
+CONFIG_BRIDGE=m
+CONFIG_VLAN_8021Q=m
@@ -853,6 +852,7 @@ diff -Nur linux-3.8.10.orig/arch/arm/configs/bcmrpi_defconfig linux-3.8.10/arch/
+CONFIG_MMC_SDHCI_BCM2708=y
+CONFIG_MMC_SDHCI_BCM2708_DMA=y
+CONFIG_MMC_SPI=m
++CONFIG_LEDS_GPIO=m
+CONFIG_RTC_CLASS=y
+# CONFIG_RTC_HCTOSYS is not set
+CONFIG_RTC_DRV_DS1307=m
@@ -920,6 +920,7 @@ diff -Nur linux-3.8.10.orig/arch/arm/configs/bcmrpi_defconfig linux-3.8.10/arch/
+CONFIG_XFS_POSIX_ACL=y
+CONFIG_XFS_RT=y
+CONFIG_GFS2_FS=m
++CONFIG_GFS2_FS_LOCKING_DLM=y
+CONFIG_OCFS2_FS=m
+CONFIG_BTRFS_FS=m
+CONFIG_BTRFS_FS_POSIX_ACL=y
@@ -1004,6 +1005,7 @@ diff -Nur linux-3.8.10.orig/arch/arm/configs/bcmrpi_defconfig linux-3.8.10/arch/
+CONFIG_NLS_ISO8859_15=m
+CONFIG_NLS_KOI8_R=m
+CONFIG_NLS_KOI8_U=m
++CONFIG_DLM=m
+CONFIG_PRINTK_TIME=y
+CONFIG_DEBUG_FS=y
+CONFIG_DETECT_HUNG_TASK=y
@@ -1034,9 +1036,9 @@ diff -Nur linux-3.8.10.orig/arch/arm/configs/bcmrpi_defconfig linux-3.8.10/arch/
+# CONFIG_CRYPTO_HW is not set
+CONFIG_CRC_ITU_T=y
+CONFIG_LIBCRC32C=y
-diff -Nur linux-3.8.10.orig/arch/arm/configs/bcmrpi_emergency_defconfig linux-3.8.10/arch/arm/configs/bcmrpi_emergency_defconfig
---- linux-3.8.10.orig/arch/arm/configs/bcmrpi_emergency_defconfig 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/arch/arm/configs/bcmrpi_emergency_defconfig 2013-05-06 12:49:35.000000000 +0200
+diff -Nur linux-3.9.9/arch/arm/configs/bcmrpi_emergency_defconfig linux-rpi/arch/arm/configs/bcmrpi_emergency_defconfig
+--- linux-3.9.9/arch/arm/configs/bcmrpi_emergency_defconfig 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/arch/arm/configs/bcmrpi_emergency_defconfig 2013-07-08 13:33:14.000000000 +0200
@@ -0,0 +1,533 @@
+CONFIG_EXPERIMENTAL=y
+# CONFIG_LOCALVERSION_AUTO is not set
@@ -1571,137 +1573,91 @@ diff -Nur linux-3.8.10.orig/arch/arm/configs/bcmrpi_emergency_defconfig linux-3.
+CONFIG_CRC_ITU_T=y
+CONFIG_LIBCRC32C=y
+CONFIG_F2FS=y
-diff -Nur linux-3.8.10.orig/arch/arm/configs/bcmrpi_quick_defconfig linux-3.8.10/arch/arm/configs/bcmrpi_quick_defconfig
---- linux-3.8.10.orig/arch/arm/configs/bcmrpi_quick_defconfig 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/arch/arm/configs/bcmrpi_quick_defconfig 2013-05-06 12:49:35.000000000 +0200
-@@ -0,0 +1,298 @@
+diff -Nur linux-3.9.9/arch/arm/configs/bcmrpi_quick_defconfig linux-rpi/arch/arm/configs/bcmrpi_quick_defconfig
+--- linux-3.9.9/arch/arm/configs/bcmrpi_quick_defconfig 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/arch/arm/configs/bcmrpi_quick_defconfig 2013-07-08 13:33:14.000000000 +0200
+@@ -0,0 +1,197 @@
+# CONFIG_ARM_PATCH_PHYS_VIRT is not set
-+CONFIG_EXPERIMENTAL=y
+CONFIG_LOCALVERSION="-quick"
+# CONFIG_LOCALVERSION_AUTO is not set
++# CONFIG_SWAP is not set
+CONFIG_SYSVIPC=y
+CONFIG_POSIX_MQUEUE=y
-+CONFIG_BSD_PROCESS_ACCT=y
-+CONFIG_BSD_PROCESS_ACCT_V3=y
-+CONFIG_FHANDLE=y
-+CONFIG_TASKSTATS=y
-+CONFIG_TASK_DELAY_ACCT=y
-+CONFIG_TASK_XACCT=y
-+CONFIG_TASK_IO_ACCOUNTING=y
-+CONFIG_AUDIT=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
-+CONFIG_CGROUP_FREEZER=y
-+CONFIG_CGROUP_DEVICE=y
-+CONFIG_CGROUP_CPUACCT=y
-+CONFIG_RESOURCE_COUNTERS=y
-+CONFIG_BLK_CGROUP=y
-+CONFIG_NAMESPACES=y
-+CONFIG_SCHED_AUTOGROUP=y
-+CONFIG_RELAY=y
++CONFIG_KALLSYMS_ALL=y
+CONFIG_EMBEDDED=y
++CONFIG_PERF_EVENTS=y
+# CONFIG_COMPAT_BRK is not set
+CONFIG_SLAB=y
-+CONFIG_PROFILING=y
-+CONFIG_OPROFILE=m
-+CONFIG_KPROBES=y
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODVERSIONS=y
+CONFIG_MODULE_SRCVERSION_ALL=y
+# CONFIG_BLK_DEV_BSG is not set
-+CONFIG_BLK_DEV_THROTTLING=y
-+CONFIG_PARTITION_ADVANCED=y
-+CONFIG_MAC_PARTITION=y
-+CONFIG_EFI_PARTITION=y
-+CONFIG_CFQ_GROUP_IOSCHED=y
+CONFIG_ARCH_BCM2708=y
-+# CONFIG_BCM2708_GPIO is not set
-+# CONFIG_BCM2708_VCMEM is not set
+CONFIG_PREEMPT=y
+CONFIG_AEABI=y
+CONFIG_UACCESS_WITH_MEMCPY=y
-+CONFIG_SECCOMP=y
-+CONFIG_CC_STACKPROTECTOR=y
+CONFIG_ZBOOT_ROM_TEXT=0x0
+CONFIG_ZBOOT_ROM_BSS=0x0
+CONFIG_CMDLINE="dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait"
-+CONFIG_KEXEC=y
+CONFIG_CPU_FREQ=y
-+CONFIG_CPU_FREQ_STAT=m
+CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE=y
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
+CONFIG_CPU_FREQ_GOV_USERSPACE=y
+CONFIG_CPU_FREQ_GOV_ONDEMAND=y
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
-+# CONFIG_ARM_BCM2835_CPUFREQ is not set
+CONFIG_CPU_IDLE=y
+CONFIG_VFP=y
-+CONFIG_BINFMT_MISC=m
++CONFIG_BINFMT_MISC=y
+CONFIG_NET=y
+CONFIG_PACKET=y
+CONFIG_UNIX=y
-+CONFIG_XFRM_USER=y
-+CONFIG_NET_KEY=m
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
-+CONFIG_IP_ADVANCED_ROUTER=y
-+CONFIG_IP_MULTIPLE_TABLES=y
-+CONFIG_IP_ROUTE_MULTIPATH=y
-+CONFIG_IP_ROUTE_VERBOSE=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+CONFIG_IP_PNP_RARP=y
-+CONFIG_NET_IPIP=m
+CONFIG_SYN_COOKIES=y
-+CONFIG_INET_AH=m
-+CONFIG_INET_ESP=m
-+CONFIG_INET_IPCOMP=m
-+CONFIG_INET_XFRM_MODE_TRANSPORT=m
-+CONFIG_INET_XFRM_MODE_TUNNEL=m
-+CONFIG_INET_XFRM_MODE_BEET=m
-+CONFIG_INET_LRO=m
-+CONFIG_INET_DIAG=m
++# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
++# CONFIG_INET_XFRM_MODE_TUNNEL is not set
++# CONFIG_INET_XFRM_MODE_BEET is not set
++# CONFIG_INET_LRO is not set
++# CONFIG_INET_DIAG is not set
+# CONFIG_IPV6 is not set
-+CONFIG_L2TP=m
-+CONFIG_NET_PKTGEN=m
+# CONFIG_WIRELESS is not set
-+CONFIG_WIMAX=m
-+CONFIG_NET_9P=m
-+CONFIG_NFC=m
-+CONFIG_NFC_PN533=m
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+CONFIG_BLK_DEV_LOOP=y
-+CONFIG_BLK_DEV_CRYPTOLOOP=m
-+CONFIG_BLK_DEV_NBD=m
+CONFIG_BLK_DEV_RAM=y
-+CONFIG_CDROM_PKTCDVD=m
-+CONFIG_EEPROM_93CX6=m
-+# CONFIG_BCM2708_VCHIQ is not set
+CONFIG_SCSI=y
+# CONFIG_SCSI_PROC_FS is not set
-+CONFIG_BLK_DEV_SD=y
-+CONFIG_CHR_DEV_ST=m
-+CONFIG_CHR_DEV_OSST=m
-+CONFIG_BLK_DEV_SR=m
-+CONFIG_SCSI_MULTI_LUN=y
+# CONFIG_SCSI_LOWLEVEL is not set
+CONFIG_NETDEVICES=y
-+CONFIG_MII=y
-+CONFIG_NETCONSOLE=m
-+CONFIG_TUN=m
-+CONFIG_PHYLIB=m
-+CONFIG_MDIO_BITBANG=m
-+CONFIG_SLIP=m
-+CONFIG_SLIP_COMPRESSED=y
++# CONFIG_NET_VENDOR_BROADCOM is not set
++# CONFIG_NET_VENDOR_CIRRUS is not set
++# CONFIG_NET_VENDOR_FARADAY is not set
++# CONFIG_NET_VENDOR_INTEL is not set
++# CONFIG_NET_VENDOR_MARVELL is not set
++# CONFIG_NET_VENDOR_MICREL is not set
++# CONFIG_NET_VENDOR_NATSEMI is not set
++# CONFIG_NET_VENDOR_SEEQ is not set
++# CONFIG_NET_VENDOR_STMICRO is not set
++# CONFIG_NET_VENDOR_WIZNET is not set
++CONFIG_USB_USBNET=y
++# CONFIG_USB_NET_AX8817X is not set
++# CONFIG_USB_NET_CDCETHER is not set
++# CONFIG_USB_NET_CDC_NCM is not set
++CONFIG_USB_NET_SMSC95XX=y
++# CONFIG_USB_NET_NET1080 is not set
++# CONFIG_USB_NET_CDC_SUBSET is not set
++# CONFIG_USB_NET_ZAURUS is not set
+# CONFIG_WLAN is not set
-+CONFIG_INPUT_FF_MEMLESS=m
-+CONFIG_INPUT_POLLDEV=m
-+# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
-+CONFIG_INPUT_EVDEV=m
++# CONFIG_INPUT_MOUSEDEV is not set
++CONFIG_INPUT_EVDEV=y
+# CONFIG_INPUT_KEYBOARD is not set
+# CONFIG_INPUT_MOUSE is not set
+# CONFIG_SERIO is not set
@@ -1711,171 +1667,116 @@ diff -Nur linux-3.8.10.orig/arch/arm/configs/bcmrpi_quick_defconfig linux-3.8.10
+CONFIG_SERIAL_AMBA_PL011=y
+CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
+CONFIG_TTY_PRINTK=y
-+# CONFIG_HW_RANDOM is not set
++CONFIG_HW_RANDOM=y
++CONFIG_HW_RANDOM_BCM2708=y
+CONFIG_RAW_DRIVER=y
-+# CONFIG_HWMON is not set
++CONFIG_THERMAL=y
++CONFIG_THERMAL_BCM2835=y
++CONFIG_WATCHDOG=y
++CONFIG_BCM2708_WDT=y
++CONFIG_REGULATOR=y
++CONFIG_REGULATOR_DEBUG=y
++CONFIG_REGULATOR_FIXED_VOLTAGE=y
++CONFIG_REGULATOR_VIRTUAL_CONSUMER=y
++CONFIG_REGULATOR_USERSPACE_CONSUMER=y
+CONFIG_FB=y
+CONFIG_FB_BCM2708=y
-+CONFIG_BACKLIGHT_LCD_SUPPORT=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_LOGO=y
+# CONFIG_LOGO_LINUX_MONO is not set
+# CONFIG_LOGO_LINUX_VGA16 is not set
+CONFIG_SOUND=y
-+# CONFIG_USB_HID is not set
++CONFIG_SND=y
++CONFIG_SND_BCM2835=y
++# CONFIG_SND_USB is not set
+CONFIG_USB=y
+CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
+CONFIG_USB_DWCOTG=y
-+CONFIG_USB_ACM=m
-+CONFIG_USB_MDC800=m
-+CONFIG_USB_MICROTEK=m
+CONFIG_MMC=y
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_PLTFM=y
+CONFIG_MMC_SDHCI_BCM2708=y
+CONFIG_MMC_SDHCI_BCM2708_DMA=y
+CONFIG_NEW_LEDS=y
-+CONFIG_LEDS_CLASS=m
++CONFIG_LEDS_CLASS=y
+CONFIG_LEDS_TRIGGERS=y
-+CONFIG_LEDS_TRIGGER_TIMER=m
-+CONFIG_LEDS_TRIGGER_HEARTBEAT=m
-+CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
-+CONFIG_UIO=m
-+CONFIG_UIO_PDRV=m
-+CONFIG_UIO_PDRV_GENIRQ=m
+# CONFIG_IOMMU_SUPPORT is not set
+CONFIG_EXT4_FS=y
+CONFIG_EXT4_FS_POSIX_ACL=y
+CONFIG_EXT4_FS_SECURITY=y
-+CONFIG_REISERFS_FS=m
-+CONFIG_REISERFS_FS_XATTR=y
-+CONFIG_REISERFS_FS_POSIX_ACL=y
-+CONFIG_REISERFS_FS_SECURITY=y
-+CONFIG_JFS_FS=m
-+CONFIG_JFS_POSIX_ACL=y
-+CONFIG_JFS_SECURITY=y
-+CONFIG_XFS_FS=m
-+CONFIG_XFS_QUOTA=y
-+CONFIG_XFS_POSIX_ACL=y
-+CONFIG_XFS_RT=y
-+CONFIG_GFS2_FS=m
-+CONFIG_OCFS2_FS=m
-+CONFIG_BTRFS_FS=m
-+CONFIG_BTRFS_FS_POSIX_ACL=y
-+CONFIG_NILFS2_FS=m
+CONFIG_AUTOFS4_FS=y
-+CONFIG_FUSE_FS=m
-+CONFIG_CUSE=m
+CONFIG_FSCACHE=y
+CONFIG_CACHEFILES=y
-+CONFIG_ISO9660_FS=m
-+CONFIG_JOLIET=y
-+CONFIG_ZISOFS=y
-+CONFIG_UDF_FS=m
+CONFIG_MSDOS_FS=y
+CONFIG_VFAT_FS=y
+CONFIG_FAT_DEFAULT_IOCHARSET="ascii"
-+CONFIG_NTFS_FS=m
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
+CONFIG_CONFIGFS_FS=y
-+CONFIG_SQUASHFS=m
-+CONFIG_SQUASHFS_XATTR=y
-+CONFIG_SQUASHFS_LZO=y
-+CONFIG_SQUASHFS_XZ=y
++# CONFIG_MISC_FILESYSTEMS is not set
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3_ACL=y
+CONFIG_NFS_V4=y
+CONFIG_ROOT_NFS=y
+CONFIG_NFS_FSCACHE=y
-+CONFIG_NFSD=m
-+CONFIG_NFSD_V3_ACL=y
-+CONFIG_NFSD_V4=y
-+CONFIG_CIFS=m
-+CONFIG_CIFS_WEAK_PW_HASH=y
-+CONFIG_CIFS_XATTR=y
-+CONFIG_CIFS_POSIX=y
-+CONFIG_9P_FS=m
-+CONFIG_9P_FS_POSIX_ACL=y
+CONFIG_NLS_DEFAULT="utf8"
+CONFIG_NLS_CODEPAGE_437=y
-+CONFIG_NLS_CODEPAGE_737=m
-+CONFIG_NLS_CODEPAGE_775=m
-+CONFIG_NLS_CODEPAGE_850=m
-+CONFIG_NLS_CODEPAGE_852=m
-+CONFIG_NLS_CODEPAGE_855=m
-+CONFIG_NLS_CODEPAGE_857=m
-+CONFIG_NLS_CODEPAGE_860=m
-+CONFIG_NLS_CODEPAGE_861=m
-+CONFIG_NLS_CODEPAGE_862=m
-+CONFIG_NLS_CODEPAGE_863=m
-+CONFIG_NLS_CODEPAGE_864=m
-+CONFIG_NLS_CODEPAGE_865=m
-+CONFIG_NLS_CODEPAGE_866=m
-+CONFIG_NLS_CODEPAGE_869=m
-+CONFIG_NLS_CODEPAGE_936=m
-+CONFIG_NLS_CODEPAGE_950=m
-+CONFIG_NLS_CODEPAGE_932=m
-+CONFIG_NLS_CODEPAGE_949=m
-+CONFIG_NLS_CODEPAGE_874=m
-+CONFIG_NLS_ISO8859_8=m
-+CONFIG_NLS_CODEPAGE_1250=m
-+CONFIG_NLS_CODEPAGE_1251=m
++CONFIG_NLS_CODEPAGE_737=y
++CONFIG_NLS_CODEPAGE_775=y
++CONFIG_NLS_CODEPAGE_850=y
++CONFIG_NLS_CODEPAGE_852=y
++CONFIG_NLS_CODEPAGE_855=y
++CONFIG_NLS_CODEPAGE_857=y
++CONFIG_NLS_CODEPAGE_860=y
++CONFIG_NLS_CODEPAGE_861=y
++CONFIG_NLS_CODEPAGE_862=y
++CONFIG_NLS_CODEPAGE_863=y
++CONFIG_NLS_CODEPAGE_864=y
++CONFIG_NLS_CODEPAGE_865=y
++CONFIG_NLS_CODEPAGE_866=y
++CONFIG_NLS_CODEPAGE_869=y
++CONFIG_NLS_CODEPAGE_936=y
++CONFIG_NLS_CODEPAGE_950=y
++CONFIG_NLS_CODEPAGE_932=y
++CONFIG_NLS_CODEPAGE_949=y
++CONFIG_NLS_CODEPAGE_874=y
++CONFIG_NLS_ISO8859_8=y
++CONFIG_NLS_CODEPAGE_1250=y
++CONFIG_NLS_CODEPAGE_1251=y
+CONFIG_NLS_ASCII=y
-+CONFIG_NLS_ISO8859_1=m
-+CONFIG_NLS_ISO8859_2=m
-+CONFIG_NLS_ISO8859_3=m
-+CONFIG_NLS_ISO8859_4=m
-+CONFIG_NLS_ISO8859_5=m
-+CONFIG_NLS_ISO8859_6=m
-+CONFIG_NLS_ISO8859_7=m
-+CONFIG_NLS_ISO8859_9=m
-+CONFIG_NLS_ISO8859_13=m
-+CONFIG_NLS_ISO8859_14=m
-+CONFIG_NLS_ISO8859_15=m
-+CONFIG_NLS_KOI8_R=m
-+CONFIG_NLS_KOI8_U=m
++CONFIG_NLS_ISO8859_1=y
++CONFIG_NLS_ISO8859_2=y
++CONFIG_NLS_ISO8859_3=y
++CONFIG_NLS_ISO8859_4=y
++CONFIG_NLS_ISO8859_5=y
++CONFIG_NLS_ISO8859_6=y
++CONFIG_NLS_ISO8859_7=y
++CONFIG_NLS_ISO8859_9=y
++CONFIG_NLS_ISO8859_13=y
++CONFIG_NLS_ISO8859_14=y
++CONFIG_NLS_ISO8859_15=y
++CONFIG_NLS_UTF8=y
+CONFIG_PRINTK_TIME=y
+CONFIG_DEBUG_FS=y
+CONFIG_DETECT_HUNG_TASK=y
-+CONFIG_TIMER_STATS=y
+# CONFIG_DEBUG_PREEMPT is not set
-+CONFIG_DEBUG_MEMORY_INIT=y
-+CONFIG_BOOT_PRINTK_DELAY=y
-+CONFIG_LATENCYTOP=y
-+# CONFIG_KPROBE_EVENT is not set
++# CONFIG_DEBUG_BUGVERBOSE is not set
++# CONFIG_FTRACE is not set
+CONFIG_KGDB=y
+CONFIG_KGDB_KDB=y
-+CONFIG_KDB_KEYBOARD=y
-+CONFIG_STRICT_DEVMEM=y
-+CONFIG_DEBUG_LL=y
-+CONFIG_DEBUG_BCM2708_UART0=y
-+CONFIG_EARLY_PRINTK=y
-+CONFIG_CRYPTO_SEQIV=m
++# CONFIG_ARM_UNWIND is not set
+CONFIG_CRYPTO_CBC=y
-+CONFIG_CRYPTO_XTS=m
+CONFIG_CRYPTO_HMAC=y
-+CONFIG_CRYPTO_XCBC=m
+CONFIG_CRYPTO_MD5=y
-+CONFIG_CRYPTO_MICHAEL_MIC=m
+CONFIG_CRYPTO_SHA1=y
-+CONFIG_CRYPTO_SHA256=m
-+CONFIG_CRYPTO_SHA512=m
-+CONFIG_CRYPTO_TGR192=m
-+CONFIG_CRYPTO_WP512=m
-+CONFIG_CRYPTO_AES=m
-+CONFIG_CRYPTO_CAST5=m
+CONFIG_CRYPTO_DES=y
+# CONFIG_CRYPTO_ANSI_CPRNG is not set
+# CONFIG_CRYPTO_HW is not set
-+CONFIG_CRC_CCITT=m
+CONFIG_CRC_ITU_T=y
-+CONFIG_CRC7=m
+CONFIG_LIBCRC32C=y
-+CONFIG_AVERAGE=y
-diff -Nur linux-3.8.10.orig/arch/arm/include/asm/fiq.h linux-3.8.10/arch/arm/include/asm/fiq.h
---- linux-3.8.10.orig/arch/arm/include/asm/fiq.h 2013-04-26 21:18:32.000000000 +0200
-+++ linux-3.8.10/arch/arm/include/asm/fiq.h 2013-05-06 12:49:35.000000000 +0200
+diff -Nur linux-3.9.9/arch/arm/include/asm/fiq.h linux-rpi/arch/arm/include/asm/fiq.h
+--- linux-3.9.9/arch/arm/include/asm/fiq.h 2013-07-03 19:56:36.000000000 +0200
++++ linux-rpi/arch/arm/include/asm/fiq.h 2013-07-08 13:33:14.000000000 +0200
@@ -42,6 +42,7 @@
/* helpers defined in fiqasm.S: */
extern void __set_fiq_regs(unsigned long const *regs);
@@ -1884,12 +1785,12 @@ diff -Nur linux-3.8.10.orig/arch/arm/include/asm/fiq.h linux-3.8.10/arch/arm/inc
static inline void set_fiq_regs(struct pt_regs const *regs)
{
-diff -Nur linux-3.8.10.orig/arch/arm/Kconfig linux-3.8.10/arch/arm/Kconfig
---- linux-3.8.10.orig/arch/arm/Kconfig 2013-04-26 21:18:32.000000000 +0200
-+++ linux-3.8.10/arch/arm/Kconfig 2013-05-06 12:49:35.000000000 +0200
-@@ -949,6 +949,23 @@
- help
- Support for TI's OMAP platform (OMAP1/2/3/4).
+diff -Nur linux-3.9.9/arch/arm/Kconfig linux-rpi/arch/arm/Kconfig
+--- linux-3.9.9/arch/arm/Kconfig 2013-07-03 19:56:36.000000000 +0200
++++ linux-rpi/arch/arm/Kconfig 2013-07-08 13:33:14.000000000 +0200
+@@ -361,6 +361,23 @@
+ This enables support for systems based on Atmel
+ AT91RM9200 and AT91SAM9* processors.
+config ARCH_BCM2708
+ bool "Broadcom BCM2708 family"
@@ -1908,10 +1809,10 @@ diff -Nur linux-3.8.10.orig/arch/arm/Kconfig linux-3.8.10/arch/arm/Kconfig
+ help
+ This enables support for Broadcom BCM2708 boards.
+
- config ARCH_VT8500_SINGLE
- bool "VIA/WonderMedia 85xx"
- select ARCH_HAS_CPUFREQ
-@@ -1130,6 +1147,7 @@
+ config ARCH_BCM2835
+ bool "Broadcom BCM2835 family"
+ select ARCH_REQUIRE_GPIOLIB
+@@ -1142,6 +1159,7 @@
source "arch/arm/mach-vt8500/Kconfig"
source "arch/arm/mach-w90x900/Kconfig"
@@ -1919,10 +1820,10 @@ diff -Nur linux-3.8.10.orig/arch/arm/Kconfig linux-3.8.10/arch/arm/Kconfig
source "arch/arm/mach-zynq/Kconfig"
-diff -Nur linux-3.8.10.orig/arch/arm/Kconfig.debug linux-3.8.10/arch/arm/Kconfig.debug
---- linux-3.8.10.orig/arch/arm/Kconfig.debug 2013-04-26 21:18:32.000000000 +0200
-+++ linux-3.8.10/arch/arm/Kconfig.debug 2013-05-06 12:49:35.000000000 +0200
-@@ -448,6 +448,14 @@
+diff -Nur linux-3.9.9/arch/arm/Kconfig.debug linux-rpi/arch/arm/Kconfig.debug
+--- linux-3.9.9/arch/arm/Kconfig.debug 2013-07-03 19:56:36.000000000 +0200
++++ linux-rpi/arch/arm/Kconfig.debug 2013-07-08 13:33:14.000000000 +0200
+@@ -483,6 +483,14 @@
For more details about semihosting, please see
chapter 8 of DUI0203I_rvct_developer_guide.pdf from ARM Ltd.
@@ -1936,10 +1837,10 @@ diff -Nur linux-3.8.10.orig/arch/arm/Kconfig.debug linux-3.8.10/arch/arm/Kconfig
+
endchoice
- config DEBUG_IMX6Q_UART_PORT
-diff -Nur linux-3.8.10.orig/arch/arm/kernel/armksyms.c linux-3.8.10/arch/arm/kernel/armksyms.c
---- linux-3.8.10.orig/arch/arm/kernel/armksyms.c 2013-04-26 21:18:32.000000000 +0200
-+++ linux-3.8.10/arch/arm/kernel/armksyms.c 2013-05-06 12:49:35.000000000 +0200
+ config DEBUG_IMX_UART_PORT
+diff -Nur linux-3.9.9/arch/arm/kernel/armksyms.c linux-rpi/arch/arm/kernel/armksyms.c
+--- linux-3.9.9/arch/arm/kernel/armksyms.c 2013-07-03 19:56:36.000000000 +0200
++++ linux-rpi/arch/arm/kernel/armksyms.c 2013-07-08 13:33:14.000000000 +0200
@@ -156,3 +156,7 @@
#ifdef CONFIG_ARM_PATCH_PHYS_VIRT
EXPORT_SYMBOL(__pv_phys_offset);
@@ -1948,10 +1849,20 @@ diff -Nur linux-3.8.10.orig/arch/arm/kernel/armksyms.c linux-3.8.10/arch/arm/ker
+extern void v6wbi_flush_kern_tlb_range(void);
+EXPORT_SYMBOL(v6wbi_flush_kern_tlb_range);
+
-diff -Nur linux-3.8.10.orig/arch/arm/kernel/fiqasm.S linux-3.8.10/arch/arm/kernel/fiqasm.S
---- linux-3.8.10.orig/arch/arm/kernel/fiqasm.S 2013-04-26 21:18:32.000000000 +0200
-+++ linux-3.8.10/arch/arm/kernel/fiqasm.S 2013-05-06 12:49:35.000000000 +0200
-@@ -47,3 +47,7 @@
+diff -Nur linux-3.9.9/arch/arm/kernel/fiqasm.S linux-rpi/arch/arm/kernel/fiqasm.S
+--- linux-3.9.9/arch/arm/kernel/fiqasm.S 2013-07-03 19:56:36.000000000 +0200
++++ linux-rpi/arch/arm/kernel/fiqasm.S 2013-07-08 13:33:14.000000000 +0200
+@@ -25,6 +25,9 @@
+ ENTRY(__set_fiq_regs)
+ mov r2, #PSR_I_BIT | PSR_F_BIT | FIQ_MODE
+ mrs r1, cpsr
++@@@@@@@@@@@@@@@ hack: enable the fiq here to keep usb driver happy
++ and r1, #~PSR_F_BIT
++@@@@@@@@@@@@@@@ endhack: (need to find better place for this to happen)
+ msr cpsr_c, r2 @ select FIQ mode
+ mov r0, r0 @ avoid hazard prior to ARMv4
+ ldmia r0!, {r8 - r12}
+@@ -47,3 +50,7 @@
mov r0, r0 @ avoid hazard prior to ARMv4
mov pc, lr
ENDPROC(__get_fiq_regs)
@@ -1959,9 +1870,9 @@ diff -Nur linux-3.8.10.orig/arch/arm/kernel/fiqasm.S linux-3.8.10/arch/arm/kerne
+ENTRY(__FIQ_Branch)
+ mov pc, r8
+ENDPROC(__FIQ_Branch)
-diff -Nur linux-3.8.10.orig/arch/arm/kernel/fiq.c linux-3.8.10/arch/arm/kernel/fiq.c
---- linux-3.8.10.orig/arch/arm/kernel/fiq.c 2013-04-26 21:18:32.000000000 +0200
-+++ linux-3.8.10/arch/arm/kernel/fiq.c 2013-05-06 12:49:35.000000000 +0200
+diff -Nur linux-3.9.9/arch/arm/kernel/fiq.c linux-rpi/arch/arm/kernel/fiq.c
+--- linux-3.9.9/arch/arm/kernel/fiq.c 2013-07-03 19:56:36.000000000 +0200
++++ linux-rpi/arch/arm/kernel/fiq.c 2013-07-08 13:33:14.000000000 +0200
@@ -137,6 +137,7 @@
EXPORT_SYMBOL(set_fiq_handler);
EXPORT_SYMBOL(__set_fiq_regs); /* defined in fiqasm.S */
@@ -1970,9 +1881,9 @@ diff -Nur linux-3.8.10.orig/arch/arm/kernel/fiq.c linux-3.8.10/arch/arm/kernel/f
EXPORT_SYMBOL(claim_fiq);
EXPORT_SYMBOL(release_fiq);
EXPORT_SYMBOL(enable_fiq);
-diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/armctrl.c linux-3.8.10/arch/arm/mach-bcm2708/armctrl.c
---- linux-3.8.10.orig/arch/arm/mach-bcm2708/armctrl.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/arch/arm/mach-bcm2708/armctrl.c 2013-05-06 12:49:35.000000000 +0200
+diff -Nur linux-3.9.9/arch/arm/mach-bcm2708/armctrl.c linux-rpi/arch/arm/mach-bcm2708/armctrl.c
+--- linux-3.9.9/arch/arm/mach-bcm2708/armctrl.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/arch/arm/mach-bcm2708/armctrl.c 2013-07-08 13:33:14.000000000 +0200
@@ -0,0 +1,219 @@
+/*
+ * linux/arch/arm/mach-bcm2708/armctrl.c
@@ -2022,9 +1933,9 @@ diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/armctrl.c linux-3.8.10/arch/ar
+static void armctrl_mask_irq(struct irq_data *d)
+{
+ static const unsigned int disables[4] = {
-+ IO_ADDRESS(ARM_IRQ_DIBL1),
-+ IO_ADDRESS(ARM_IRQ_DIBL2),
-+ IO_ADDRESS(ARM_IRQ_DIBL3),
++ ARM_IRQ_DIBL1,
++ ARM_IRQ_DIBL2,
++ ARM_IRQ_DIBL3,
+ 0
+ };
+
@@ -2032,16 +1943,16 @@ diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/armctrl.c linux-3.8.10/arch/ar
+ writel(0, __io_address(ARM_IRQ_FAST));
+ } else {
+ unsigned int data = (unsigned int)irq_get_chip_data(d->irq);
-+ writel(1 << (data & 0x1f), __io(disables[(data >> 5) & 0x3]));
++ writel(1 << (data & 0x1f), __io_address(disables[(data >> 5) & 0x3]));
+ }
+}
+
+static void armctrl_unmask_irq(struct irq_data *d)
+{
+ static const unsigned int enables[4] = {
-+ IO_ADDRESS(ARM_IRQ_ENBL1),
-+ IO_ADDRESS(ARM_IRQ_ENBL2),
-+ IO_ADDRESS(ARM_IRQ_ENBL3),
++ ARM_IRQ_ENBL1,
++ ARM_IRQ_ENBL2,
++ ARM_IRQ_ENBL3,
+ 0
+ };
+
@@ -2051,7 +1962,7 @@ diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/armctrl.c linux-3.8.10/arch/ar
+ writel(0x80 | data, __io_address(ARM_IRQ_FAST));
+ } else {
+ unsigned int data = (unsigned int)irq_get_chip_data(d->irq);
-+ writel(1 << (data & 0x1f), __io(enables[(data >> 5) & 0x3]));
++ writel(1 << (data & 0x1f), __io_address(enables[(data >> 5) & 0x3]));
+ }
+}
+
@@ -2193,9 +2104,9 @@ diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/armctrl.c linux-3.8.10/arch/ar
+ init_FIQ(FIQ_START);
+ return 0;
+}
-diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/armctrl.h linux-3.8.10/arch/arm/mach-bcm2708/armctrl.h
---- linux-3.8.10.orig/arch/arm/mach-bcm2708/armctrl.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/arch/arm/mach-bcm2708/armctrl.h 2013-05-06 12:49:35.000000000 +0200
+diff -Nur linux-3.9.9/arch/arm/mach-bcm2708/armctrl.h linux-rpi/arch/arm/mach-bcm2708/armctrl.h
+--- linux-3.9.9/arch/arm/mach-bcm2708/armctrl.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/arch/arm/mach-bcm2708/armctrl.h 2013-07-08 13:33:14.000000000 +0200
@@ -0,0 +1,27 @@
+/*
+ * linux/arch/arm/mach-bcm2708/armctrl.h
@@ -2224,10 +2135,10 @@ diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/armctrl.h linux-3.8.10/arch/ar
+ u32 armctrl_sources, u32 resume_sources);
+
+#endif
-diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/bcm2708.c linux-3.8.10/arch/arm/mach-bcm2708/bcm2708.c
---- linux-3.8.10.orig/arch/arm/mach-bcm2708/bcm2708.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/arch/arm/mach-bcm2708/bcm2708.c 2013-05-06 12:49:35.000000000 +0200
-@@ -0,0 +1,921 @@
+diff -Nur linux-3.9.9/arch/arm/mach-bcm2708/bcm2708.c linux-rpi/arch/arm/mach-bcm2708/bcm2708.c
+--- linux-3.9.9/arch/arm/mach-bcm2708/bcm2708.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/arch/arm/mach-bcm2708/bcm2708.c 2013-07-08 13:33:14.000000000 +0200
+@@ -0,0 +1,885 @@
+/*
+ * linux/arch/arm/mach-bcm2708/bcm2708.c
+ *
@@ -2337,13 +2248,6 @@ diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/bcm2708.c linux-3.8.10/arch/ar
+ .pfn = __phys_to_pfn(UART1_BASE),
+ .length = SZ_4K,
+ .type = MT_DEVICE},
-+#ifdef CONFIG_MMC_BCM2708 /* broadcom legacy SD */
-+ {
-+ .virtual = IO_ADDRESS(MMCI0_BASE),
-+ .pfn = __phys_to_pfn(MMCI0_BASE),
-+ .length = SZ_4K,
-+ .type = MT_DEVICE},
-+#endif
+ {
+ .virtual = IO_ADDRESS(DMA_BASE),
+ .pfn = __phys_to_pfn(DMA_BASE),
@@ -2460,12 +2364,6 @@ diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/bcm2708.c linux-3.8.10/arch/ar
+ { /* USB */
+ .dev_id = "bcm2708_usb",
+ .clk = &osc_clk,
-+#ifdef CONFIG_MMC_BCM2708
-+ },
-+ { /* MCI */
-+ .dev_id = "bcm2708_mci.0",
-+ .clk = &sdhost_clk,
-+#endif
+ }, { /* SPI */
+ .dev_id = "bcm2708_spi.0",
+ .clk = &sdhost_clk,
@@ -2502,31 +2400,6 @@ diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/bcm2708.c linux-3.8.10/arch/ar
+ .num_resources = ARRAY_SIZE(bcm2708_dmaman_resources),
+};
+
-+#ifdef CONFIG_MMC_BCM2708
-+static struct resource bcm2708_mci_resources[] = {
-+ {
-+ .start = MMCI0_BASE,
-+ .end = MMCI0_BASE + SZ_4K - 1,
-+ .flags = IORESOURCE_MEM,
-+ },
-+ {
-+ .start = IRQ_SDIO,
-+ .end = IRQ_SDIO,
-+ .flags = IORESOURCE_IRQ,
-+ }
-+};
-+
-+static struct platform_device bcm2708_mci_device = {
-+ .name = "bcm2708_mci",
-+ .id = 0, /* first bcm2708_mci */
-+ .resource = bcm2708_mci_resources,
-+ .num_resources = ARRAY_SIZE(bcm2708_mci_resources),
-+ .dev = {
-+ .coherent_dma_mask = DMA_BIT_MASK(DMA_MASK_BITS_COMMON),
-+ },
-+};
-+#endif /* CONFIG_MMC_BCM2708 */
-+
+#if defined(CONFIG_W1_MASTER_GPIO) || defined(CONFIG_W1_MASTER_GPIO_MODULE)
+static struct w1_gpio_platform_data w1_gpio_pdata = {
+ .pin = W1_GPIO,
@@ -2592,7 +2465,7 @@ diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/bcm2708.c linux-3.8.10/arch/ar
+ },
+};
+
-+bool fiq_fix_enable = false;
++bool fiq_fix_enable = true;
+
+static struct resource bcm2708_usb_resources_no_fiq_fix[] = {
+ [0] = {
@@ -2813,7 +2686,7 @@ diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/bcm2708.c linux-3.8.10/arch/ar
+ .resource = bcm2708_spi_resources,
+};
+
-+#ifdef CONFIG_SPI
++#ifdef CONFIG_BCM2708_SPIDEV
+static struct spi_board_info bcm2708_spi_devices[] = {
+#ifdef CONFIG_SPI_SPIDEV
+ {
@@ -2897,14 +2770,23 @@ diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/bcm2708.c linux-3.8.10/arch/ar
+ uint32_t pm_rstc, pm_wdog;
+ uint32_t timeout = 10;
+
++ /* For quick reset notification add reboot=q to cmdline
++ */
++ if(mode == 'q')
++ {
++ uint32_t pm_rsts = readl(__io_address(PM_RSTS));
++ pm_rsts = PM_PASSWORD | pm_rsts | PM_RSTS_HADWRQ_SET;
++ writel(pm_rsts, __io_address(PM_RSTS));
++ }
++
+ /* Setup watchdog for reset */
-+ pm_rstc = readl(IO_ADDRESS(PM_RSTC));
++ pm_rstc = readl(__io_address(PM_RSTC));
+
+ pm_wdog = PM_PASSWORD | (timeout & PM_WDOG_TIME_SET); // watchdog timer = timer clock / 16; need password (31:16) + value (11:0)
+ pm_rstc = PM_PASSWORD | (pm_rstc & PM_RSTC_WRCFG_CLR) | PM_RSTC_WRCFG_FULL_RESET;
+
-+ writel(pm_wdog, IO_ADDRESS(PM_WDOG));
-+ writel(pm_rstc, IO_ADDRESS(PM_RSTC));
++ writel(pm_wdog, __io_address(PM_WDOG));
++ writel(pm_rstc, __io_address(PM_RSTC));
+}
+
+/* We can't really power off, but if we do the normal reset scheme, and indicate to bootcode.bin not to reboot, then most of the chip will be powered off */
@@ -2943,9 +2825,6 @@ diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/bcm2708.c linux-3.8.10/arch/ar
+ platform_device_register(&w1_device);
+#endif
+ bcm_register_device(&bcm2708_systemtimer_device);
-+#ifdef CONFIG_MMC_BCM2708
-+ bcm_register_device(&bcm2708_mci_device);
-+#endif
+ bcm_register_device(&bcm2708_fb_device);
+ if (!fiq_fix_enable)
+ {
@@ -2977,7 +2856,7 @@ diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/bcm2708.c linux-3.8.10/arch/ar
+ system_rev = boardrev;
+ system_serial_low = serial;
+
-+#ifdef CONFIG_SPI
++#ifdef CONFIG_BCM2708_SPIDEV
+ spi_register_board_info(bcm2708_spi_devices,
+ ARRAY_SIZE(bcm2708_spi_devices));
+#endif
@@ -3079,10 +2958,6 @@ diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/bcm2708.c linux-3.8.10/arch/ar
+ register_current_timer_delay(&bcm2708_delay_timer);
+}
+
-+struct sys_timer bcm2708_timer = {
-+ .init = bcm2708_timer_init,
-+};
-+
+#if defined(CONFIG_LEDS_GPIO) || defined(CONFIG_LEDS_GPIO_MODULE)
+#include <linux/leds.h>
+
@@ -3139,7 +3014,7 @@ diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/bcm2708.c linux-3.8.10/arch/ar
+ /* Maintainer: Broadcom Europe Ltd. */
+ .map_io = bcm2708_map_io,
+ .init_irq = bcm2708_init_irq,
-+ .timer =&bcm2708_timer,
++ .init_time = bcm2708_timer_init,
+ .init_machine = bcm2708_init,
+ .init_early = bcm2708_init_early,
+ .reserve = board_reserve,
@@ -3149,9 +3024,9 @@ diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/bcm2708.c linux-3.8.10/arch/ar
+module_param(boardrev, uint, 0644);
+module_param(serial, uint, 0644);
+module_param(uart_clock, uint, 0644);
-diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/bcm2708_gpio.c linux-3.8.10/arch/arm/mach-bcm2708/bcm2708_gpio.c
---- linux-3.8.10.orig/arch/arm/mach-bcm2708/bcm2708_gpio.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/arch/arm/mach-bcm2708/bcm2708_gpio.c 2013-05-06 12:49:35.000000000 +0200
+diff -Nur linux-3.9.9/arch/arm/mach-bcm2708/bcm2708_gpio.c linux-rpi/arch/arm/mach-bcm2708/bcm2708_gpio.c
+--- linux-3.9.9/arch/arm/mach-bcm2708/bcm2708_gpio.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/arch/arm/mach-bcm2708/bcm2708_gpio.c 2013-07-08 13:33:14.000000000 +0200
@@ -0,0 +1,339 @@
+/*
+ * linux/arch/arm/mach-bcm2708/bcm2708_gpio.c
@@ -3492,9 +3367,9 @@ diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/bcm2708_gpio.c linux-3.8.10/ar
+
+MODULE_DESCRIPTION("Broadcom BCM2708 GPIO driver");
+MODULE_LICENSE("GPL");
-diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/bcm2708.h linux-3.8.10/arch/arm/mach-bcm2708/bcm2708.h
---- linux-3.8.10.orig/arch/arm/mach-bcm2708/bcm2708.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/arch/arm/mach-bcm2708/bcm2708.h 2013-05-06 12:49:35.000000000 +0200
+diff -Nur linux-3.9.9/arch/arm/mach-bcm2708/bcm2708.h linux-rpi/arch/arm/mach-bcm2708/bcm2708.h
+--- linux-3.9.9/arch/arm/mach-bcm2708/bcm2708.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/arch/arm/mach-bcm2708/bcm2708.h 2013-07-08 13:33:14.000000000 +0200
@@ -0,0 +1,51 @@
+/*
+ * linux/arch/arm/mach-bcm2708/bcm2708.h
@@ -3547,9 +3422,9 @@ diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/bcm2708.h linux-3.8.10/arch/ar
+}
+
+#endif
-diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/clock.c linux-3.8.10/arch/arm/mach-bcm2708/clock.c
---- linux-3.8.10.orig/arch/arm/mach-bcm2708/clock.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/arch/arm/mach-bcm2708/clock.c 2013-05-06 12:49:35.000000000 +0200
+diff -Nur linux-3.9.9/arch/arm/mach-bcm2708/clock.c linux-rpi/arch/arm/mach-bcm2708/clock.c
+--- linux-3.9.9/arch/arm/mach-bcm2708/clock.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/arch/arm/mach-bcm2708/clock.c 2013-07-08 13:33:14.000000000 +0200
@@ -0,0 +1,61 @@
+/*
+ * linux/arch/arm/mach-bcm2708/clock.c
@@ -3612,9 +3487,9 @@ diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/clock.c linux-3.8.10/arch/arm/
+ return -EIO;
+}
+EXPORT_SYMBOL(clk_set_rate);
-diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/clock.h linux-3.8.10/arch/arm/mach-bcm2708/clock.h
---- linux-3.8.10.orig/arch/arm/mach-bcm2708/clock.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/arch/arm/mach-bcm2708/clock.h 2013-05-06 12:49:35.000000000 +0200
+diff -Nur linux-3.9.9/arch/arm/mach-bcm2708/clock.h linux-rpi/arch/arm/mach-bcm2708/clock.h
+--- linux-3.9.9/arch/arm/mach-bcm2708/clock.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/arch/arm/mach-bcm2708/clock.h 2013-07-08 13:33:14.000000000 +0200
@@ -0,0 +1,24 @@
+/*
+ * linux/arch/arm/mach-bcm2708/clock.h
@@ -3640,10 +3515,10 @@ diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/clock.h linux-3.8.10/arch/arm/
+struct clk {
+ unsigned long rate;
+};
-diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/dma.c linux-3.8.10/arch/arm/mach-bcm2708/dma.c
---- linux-3.8.10.orig/arch/arm/mach-bcm2708/dma.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/arch/arm/mach-bcm2708/dma.c 2013-05-06 12:49:35.000000000 +0200
-@@ -0,0 +1,397 @@
+diff -Nur linux-3.9.9/arch/arm/mach-bcm2708/dma.c linux-rpi/arch/arm/mach-bcm2708/dma.c
+--- linux-3.9.9/arch/arm/mach-bcm2708/dma.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/arch/arm/mach-bcm2708/dma.c 2013-07-08 13:33:14.000000000 +0200
+@@ -0,0 +1,399 @@
+/*
+ * linux/arch/arm/mach-bcm2708/dma.c
+ *
@@ -3723,7 +3598,8 @@ diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/dma.c linux-3.8.10/arch/arm/ma
+ dsb();
+
+ /* ugly busy wait only option for now */
-+ while (readl(dma_chan_base + BCM2708_DMA_CS) & BCM2708_DMA_ACTIVE);
++ while (readl(dma_chan_base + BCM2708_DMA_CS) & BCM2708_DMA_ACTIVE)
++ cpu_relax();
+}
+
+EXPORT_SYMBOL_GPL(bcm_dma_start);
@@ -3792,6 +3668,7 @@ diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/dma.c linux-3.8.10/arch/arm/ma
+ dmaman->dma_base = dma_base;
+ dmaman->chan_available = chans_available;
+ dmaman->has_feature[BCM_DMA_FEATURE_FAST_ORD] = 0x0c; /* chans 2 & 3 */
++ dmaman->has_feature[BCM_DMA_FEATURE_BULK_ORD] = 0x01; /* chan 0 */
+}
+
+static int vc_dmaman_chan_alloc(struct vc_dmaman *dmaman,
@@ -4041,9 +3918,9 @@ diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/dma.c linux-3.8.10/arch/arm/ma
+MODULE_LICENSE("GPL");
+
+MODULE_PARM_DESC(dmachans, "Bitmap of DMA channels available to the ARM");
-diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/dmaer.c linux-3.8.10/arch/arm/mach-bcm2708/dmaer.c
---- linux-3.8.10.orig/arch/arm/mach-bcm2708/dmaer.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/arch/arm/mach-bcm2708/dmaer.c 2013-05-06 12:49:35.000000000 +0200
+diff -Nur linux-3.9.9/arch/arm/mach-bcm2708/dmaer.c linux-rpi/arch/arm/mach-bcm2708/dmaer.c
+--- linux-3.9.9/arch/arm/mach-bcm2708/dmaer.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/arch/arm/mach-bcm2708/dmaer.c 2013-07-08 13:33:14.000000000 +0200
@@ -0,0 +1,887 @@
+#include <linux/init.h>
+#include <linux/sched.h>
@@ -4932,9 +4809,9 @@ diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/dmaer.c linux-3.8.10/arch/arm/
+module_init(dmaer_init);
+module_exit(dmaer_exit);
+
-diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/include/mach/arm_control.h linux-3.8.10/arch/arm/mach-bcm2708/include/mach/arm_control.h
---- linux-3.8.10.orig/arch/arm/mach-bcm2708/include/mach/arm_control.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/arch/arm/mach-bcm2708/include/mach/arm_control.h 2013-05-06 12:49:35.000000000 +0200
+diff -Nur linux-3.9.9/arch/arm/mach-bcm2708/include/mach/arm_control.h linux-rpi/arch/arm/mach-bcm2708/include/mach/arm_control.h
+--- linux-3.9.9/arch/arm/mach-bcm2708/include/mach/arm_control.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/arch/arm/mach-bcm2708/include/mach/arm_control.h 2013-07-08 13:33:14.000000000 +0200
@@ -0,0 +1,419 @@
+/*
+ * linux/arch/arm/mach-bcm2708/arm_control.h
@@ -5355,9 +5232,9 @@ diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/include/mach/arm_control.h lin
+#define AJBTDO HW_REGISTER_RW(AJB_BASE+0x0c)
+
+#endif
-diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/include/mach/arm_power.h linux-3.8.10/arch/arm/mach-bcm2708/include/mach/arm_power.h
---- linux-3.8.10.orig/arch/arm/mach-bcm2708/include/mach/arm_power.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/arch/arm/mach-bcm2708/include/mach/arm_power.h 2013-05-06 12:49:35.000000000 +0200
+diff -Nur linux-3.9.9/arch/arm/mach-bcm2708/include/mach/arm_power.h linux-rpi/arch/arm/mach-bcm2708/include/mach/arm_power.h
+--- linux-3.9.9/arch/arm/mach-bcm2708/include/mach/arm_power.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/arch/arm/mach-bcm2708/include/mach/arm_power.h 2013-07-08 13:33:14.000000000 +0200
@@ -0,0 +1,60 @@
+/*
+ * linux/arch/arm/mach-bcm2708/include/mach/arm_power.h
@@ -5419,9 +5296,9 @@ diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/include/mach/arm_power.h linux
+};
+
+#endif
-diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/include/mach/clkdev.h linux-3.8.10/arch/arm/mach-bcm2708/include/mach/clkdev.h
---- linux-3.8.10.orig/arch/arm/mach-bcm2708/include/mach/clkdev.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/arch/arm/mach-bcm2708/include/mach/clkdev.h 2013-05-06 12:49:35.000000000 +0200
+diff -Nur linux-3.9.9/arch/arm/mach-bcm2708/include/mach/clkdev.h linux-rpi/arch/arm/mach-bcm2708/include/mach/clkdev.h
+--- linux-3.9.9/arch/arm/mach-bcm2708/include/mach/clkdev.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/arch/arm/mach-bcm2708/include/mach/clkdev.h 2013-07-08 13:33:14.000000000 +0200
@@ -0,0 +1,7 @@
+#ifndef __ASM_MACH_CLKDEV_H
+#define __ASM_MACH_CLKDEV_H
@@ -5430,9 +5307,9 @@ diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/include/mach/clkdev.h linux-3.
+#define __clk_put(clk) do { } while (0)
+
+#endif
-diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/include/mach/debug-macro.S linux-3.8.10/arch/arm/mach-bcm2708/include/mach/debug-macro.S
---- linux-3.8.10.orig/arch/arm/mach-bcm2708/include/mach/debug-macro.S 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/arch/arm/mach-bcm2708/include/mach/debug-macro.S 2013-05-06 12:49:35.000000000 +0200
+diff -Nur linux-3.9.9/arch/arm/mach-bcm2708/include/mach/debug-macro.S linux-rpi/arch/arm/mach-bcm2708/include/mach/debug-macro.S
+--- linux-3.9.9/arch/arm/mach-bcm2708/include/mach/debug-macro.S 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/arch/arm/mach-bcm2708/include/mach/debug-macro.S 2013-07-08 13:33:14.000000000 +0200
@@ -0,0 +1,22 @@
+/* arch/arm/mach-bcm2708/include/mach/debug-macro.S
+ *
@@ -5456,10 +5333,10 @@ diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/include/mach/debug-macro.S lin
+ .endm
+
+#include <asm/hardware/debug-pl01x.S>
-diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/include/mach/dma.h linux-3.8.10/arch/arm/mach-bcm2708/include/mach/dma.h
---- linux-3.8.10.orig/arch/arm/mach-bcm2708/include/mach/dma.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/arch/arm/mach-bcm2708/include/mach/dma.h 2013-05-06 12:49:35.000000000 +0200
-@@ -0,0 +1,84 @@
+diff -Nur linux-3.9.9/arch/arm/mach-bcm2708/include/mach/dma.h linux-rpi/arch/arm/mach-bcm2708/include/mach/dma.h
+--- linux-3.9.9/arch/arm/mach-bcm2708/include/mach/dma.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/arch/arm/mach-bcm2708/include/mach/dma.h 2013-07-08 13:33:14.000000000 +0200
+@@ -0,0 +1,86 @@
+/*
+ * linux/arch/arm/mach-bcm2708/include/mach/dma.h
+ *
@@ -5534,8 +5411,10 @@ diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/include/mach/dma.h linux-3.8.1
+/* When listing features we can ask for when allocating DMA channels give
+ those with higher priority smaller ordinal numbers */
+#define BCM_DMA_FEATURE_FAST_ORD 0
++#define BCM_DMA_FEATURE_BULK_ORD 1
+#define BCM_DMA_FEATURE_FAST (1<<BCM_DMA_FEATURE_FAST_ORD)
-+#define BCM_DMA_FEATURE_COUNT 1
++#define BCM_DMA_FEATURE_BULK (1<<BCM_DMA_FEATURE_BULK_ORD)
++#define BCM_DMA_FEATURE_COUNT 2
+
+/* return channel no or -ve error */
+extern int bcm_dma_chan_alloc(unsigned preferred_feature_set,
@@ -5544,9 +5423,9 @@ diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/include/mach/dma.h linux-3.8.1
+
+
+#endif /* _MACH_BCM2708_DMA_H */
-diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/include/mach/entry-macro.S linux-3.8.10/arch/arm/mach-bcm2708/include/mach/entry-macro.S
---- linux-3.8.10.orig/arch/arm/mach-bcm2708/include/mach/entry-macro.S 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/arch/arm/mach-bcm2708/include/mach/entry-macro.S 2013-05-06 12:49:35.000000000 +0200
+diff -Nur linux-3.9.9/arch/arm/mach-bcm2708/include/mach/entry-macro.S linux-rpi/arch/arm/mach-bcm2708/include/mach/entry-macro.S
+--- linux-3.9.9/arch/arm/mach-bcm2708/include/mach/entry-macro.S 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/arch/arm/mach-bcm2708/include/mach/entry-macro.S 2013-07-08 13:33:14.000000000 +0200
@@ -0,0 +1,69 @@
+/*
+ * arch/arm/mach-bcm2708/include/mach/entry-macro.S
@@ -5617,9 +5496,9 @@ diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/include/mach/entry-macro.S lin
+1020: @ EQ will be set if no irqs pending
+
+ .endm
-diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/include/mach/frc.h linux-3.8.10/arch/arm/mach-bcm2708/include/mach/frc.h
---- linux-3.8.10.orig/arch/arm/mach-bcm2708/include/mach/frc.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/arch/arm/mach-bcm2708/include/mach/frc.h 2013-05-06 12:49:35.000000000 +0200
+diff -Nur linux-3.9.9/arch/arm/mach-bcm2708/include/mach/frc.h linux-rpi/arch/arm/mach-bcm2708/include/mach/frc.h
+--- linux-3.9.9/arch/arm/mach-bcm2708/include/mach/frc.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/arch/arm/mach-bcm2708/include/mach/frc.h 2013-07-08 13:33:14.000000000 +0200
@@ -0,0 +1,38 @@
+/*
+ * arch/arm/mach-bcm2708/include/mach/timex.h
@@ -5659,9 +5538,9 @@ diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/include/mach/frc.h linux-3.8.1
+extern unsigned long long frc_clock_ticks63(void);
+
+#endif
-diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/include/mach/gpio.h linux-3.8.10/arch/arm/mach-bcm2708/include/mach/gpio.h
---- linux-3.8.10.orig/arch/arm/mach-bcm2708/include/mach/gpio.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/arch/arm/mach-bcm2708/include/mach/gpio.h 2013-05-06 12:49:35.000000000 +0200
+diff -Nur linux-3.9.9/arch/arm/mach-bcm2708/include/mach/gpio.h linux-rpi/arch/arm/mach-bcm2708/include/mach/gpio.h
+--- linux-3.9.9/arch/arm/mach-bcm2708/include/mach/gpio.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/arch/arm/mach-bcm2708/include/mach/gpio.h 2013-07-08 13:33:14.000000000 +0200
@@ -0,0 +1,18 @@
+/*
+ * arch/arm/mach-bcm2708/include/mach/gpio.h
@@ -5681,9 +5560,9 @@ diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/include/mach/gpio.h linux-3.8.
+
+#endif
+
-diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/include/mach/hardware.h linux-3.8.10/arch/arm/mach-bcm2708/include/mach/hardware.h
---- linux-3.8.10.orig/arch/arm/mach-bcm2708/include/mach/hardware.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/arch/arm/mach-bcm2708/include/mach/hardware.h 2013-05-06 12:49:35.000000000 +0200
+diff -Nur linux-3.9.9/arch/arm/mach-bcm2708/include/mach/hardware.h linux-rpi/arch/arm/mach-bcm2708/include/mach/hardware.h
+--- linux-3.9.9/arch/arm/mach-bcm2708/include/mach/hardware.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/arch/arm/mach-bcm2708/include/mach/hardware.h 2013-07-08 13:33:14.000000000 +0200
@@ -0,0 +1,28 @@
+/*
+ * arch/arm/mach-bcm2708/include/mach/hardware.h
@@ -5713,10 +5592,10 @@ diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/include/mach/hardware.h linux-
+#include <mach/platform.h>
+
+#endif
-diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/include/mach/io.h linux-3.8.10/arch/arm/mach-bcm2708/include/mach/io.h
---- linux-3.8.10.orig/arch/arm/mach-bcm2708/include/mach/io.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/arch/arm/mach-bcm2708/include/mach/io.h 2013-05-06 12:49:35.000000000 +0200
-@@ -0,0 +1,28 @@
+diff -Nur linux-3.9.9/arch/arm/mach-bcm2708/include/mach/io.h linux-rpi/arch/arm/mach-bcm2708/include/mach/io.h
+--- linux-3.9.9/arch/arm/mach-bcm2708/include/mach/io.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/arch/arm/mach-bcm2708/include/mach/io.h 2013-07-08 13:33:14.000000000 +0200
+@@ -0,0 +1,27 @@
+/*
+ * arch/arm/mach-bcm2708/include/mach/io.h
+ *
@@ -5742,12 +5621,11 @@ diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/include/mach/io.h linux-3.8.10
+#define IO_SPACE_LIMIT 0xffffffff
+
+#define __io(a) __typesafe_io(a)
-+#define __mem_pci(a) (a)
+
+#endif
-diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/include/mach/irqs.h linux-3.8.10/arch/arm/mach-bcm2708/include/mach/irqs.h
---- linux-3.8.10.orig/arch/arm/mach-bcm2708/include/mach/irqs.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/arch/arm/mach-bcm2708/include/mach/irqs.h 2013-05-06 12:49:35.000000000 +0200
+diff -Nur linux-3.9.9/arch/arm/mach-bcm2708/include/mach/irqs.h linux-rpi/arch/arm/mach-bcm2708/include/mach/irqs.h
+--- linux-3.9.9/arch/arm/mach-bcm2708/include/mach/irqs.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/arch/arm/mach-bcm2708/include/mach/irqs.h 2013-07-08 13:33:14.000000000 +0200
@@ -0,0 +1,199 @@
+/*
+ * arch/arm/mach-bcm2708/include/mach/irqs.h
@@ -5948,9 +5826,9 @@ diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/include/mach/irqs.h linux-3.8.
+
+
+#endif /* _BCM2708_IRQS_H_ */
-diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/include/mach/memory.h linux-3.8.10/arch/arm/mach-bcm2708/include/mach/memory.h
---- linux-3.8.10.orig/arch/arm/mach-bcm2708/include/mach/memory.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/arch/arm/mach-bcm2708/include/mach/memory.h 2013-05-06 12:49:35.000000000 +0200
+diff -Nur linux-3.9.9/arch/arm/mach-bcm2708/include/mach/memory.h linux-rpi/arch/arm/mach-bcm2708/include/mach/memory.h
+--- linux-3.9.9/arch/arm/mach-bcm2708/include/mach/memory.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/arch/arm/mach-bcm2708/include/mach/memory.h 2013-07-08 13:33:14.000000000 +0200
@@ -0,0 +1,57 @@
+/*
+ * arch/arm/mach-bcm2708/include/mach/memory.h
@@ -6009,9 +5887,9 @@ diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/include/mach/memory.h linux-3.
+#define __bus_to_pfn(x) __phys_to_pfn((x) - (BUS_OFFSET - PLAT_PHYS_OFFSET))
+
+#endif
-diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/include/mach/platform.h linux-3.8.10/arch/arm/mach-bcm2708/include/mach/platform.h
---- linux-3.8.10.orig/arch/arm/mach-bcm2708/include/mach/platform.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/arch/arm/mach-bcm2708/include/mach/platform.h 2013-05-06 12:49:35.000000000 +0200
+diff -Nur linux-3.9.9/arch/arm/mach-bcm2708/include/mach/platform.h linux-rpi/arch/arm/mach-bcm2708/include/mach/platform.h
+--- linux-3.9.9/arch/arm/mach-bcm2708/include/mach/platform.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/arch/arm/mach-bcm2708/include/mach/platform.h 2013-07-08 13:33:14.000000000 +0200
@@ -0,0 +1,226 @@
+/*
+ * arch/arm/mach-bcm2708/include/mach/platform.h
@@ -6040,7 +5918,7 @@ diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/include/mach/platform.h linux-
+/* macros to get at IO space when running virtually */
+#define IO_ADDRESS(x) (((x) & 0x0fffffff) + (((x) >> 4) & 0x0f000000) + 0xf0000000)
+
-+#define __io_address(a) __io(IO_ADDRESS(a))
++#define __io_address(n) IOMEM(IO_ADDRESS(n))
+
+
+/*
@@ -6239,9 +6117,9 @@ diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/include/mach/platform.h linux-
+#endif
+
+/* END */
-diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/include/mach/power.h linux-3.8.10/arch/arm/mach-bcm2708/include/mach/power.h
---- linux-3.8.10.orig/arch/arm/mach-bcm2708/include/mach/power.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/arch/arm/mach-bcm2708/include/mach/power.h 2013-05-06 12:49:35.000000000 +0200
+diff -Nur linux-3.9.9/arch/arm/mach-bcm2708/include/mach/power.h linux-rpi/arch/arm/mach-bcm2708/include/mach/power.h
+--- linux-3.9.9/arch/arm/mach-bcm2708/include/mach/power.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/arch/arm/mach-bcm2708/include/mach/power.h 2013-07-08 13:33:14.000000000 +0200
@@ -0,0 +1,26 @@
+/*
+ * linux/arch/arm/mach-bcm2708/power.h
@@ -6269,9 +6147,9 @@ diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/include/mach/power.h linux-3.8
+extern int bcm_power_close(BCM_POWER_HANDLE_T handle);
+
+#endif
-diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/include/mach/system.h linux-3.8.10/arch/arm/mach-bcm2708/include/mach/system.h
---- linux-3.8.10.orig/arch/arm/mach-bcm2708/include/mach/system.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/arch/arm/mach-bcm2708/include/mach/system.h 2013-05-06 12:49:35.000000000 +0200
+diff -Nur linux-3.9.9/arch/arm/mach-bcm2708/include/mach/system.h linux-rpi/arch/arm/mach-bcm2708/include/mach/system.h
+--- linux-3.9.9/arch/arm/mach-bcm2708/include/mach/system.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/arch/arm/mach-bcm2708/include/mach/system.h 2013-07-08 13:33:14.000000000 +0200
@@ -0,0 +1,38 @@
+/*
+ * arch/arm/mach-bcm2708/include/mach/system.h
@@ -6311,9 +6189,9 @@ diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/include/mach/system.h linux-3.
+}
+
+#endif
-diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/include/mach/timex.h linux-3.8.10/arch/arm/mach-bcm2708/include/mach/timex.h
---- linux-3.8.10.orig/arch/arm/mach-bcm2708/include/mach/timex.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/arch/arm/mach-bcm2708/include/mach/timex.h 2013-05-06 12:49:35.000000000 +0200
+diff -Nur linux-3.9.9/arch/arm/mach-bcm2708/include/mach/timex.h linux-rpi/arch/arm/mach-bcm2708/include/mach/timex.h
+--- linux-3.9.9/arch/arm/mach-bcm2708/include/mach/timex.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/arch/arm/mach-bcm2708/include/mach/timex.h 2013-07-08 13:33:14.000000000 +0200
@@ -0,0 +1,23 @@
+/*
+ * arch/arm/mach-bcm2708/include/mach/timex.h
@@ -6338,9 +6216,9 @@ diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/include/mach/timex.h linux-3.8
+ */
+
+#define CLOCK_TICK_RATE (1000000)
-diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/include/mach/uncompress.h linux-3.8.10/arch/arm/mach-bcm2708/include/mach/uncompress.h
---- linux-3.8.10.orig/arch/arm/mach-bcm2708/include/mach/uncompress.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/arch/arm/mach-bcm2708/include/mach/uncompress.h 2013-05-06 12:49:35.000000000 +0200
+diff -Nur linux-3.9.9/arch/arm/mach-bcm2708/include/mach/uncompress.h linux-rpi/arch/arm/mach-bcm2708/include/mach/uncompress.h
+--- linux-3.9.9/arch/arm/mach-bcm2708/include/mach/uncompress.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/arch/arm/mach-bcm2708/include/mach/uncompress.h 2013-07-08 13:33:14.000000000 +0200
@@ -0,0 +1,85 @@
+/*
+ * arch/arm/mach-bcn2708/include/mach/uncompress.h
@@ -6369,12 +6247,12 @@ diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/include/mach/uncompress.h linu
+
+#define UART_BAUD 115200
+
-+#define BCM2708_UART_DR UART0_BASE + UART01x_DR
-+#define BCM2708_UART_FR UART0_BASE + UART01x_FR
-+#define BCM2708_UART_IBRD UART0_BASE + UART011_IBRD
-+#define BCM2708_UART_FBRD UART0_BASE + UART011_FBRD
-+#define BCM2708_UART_LCRH UART0_BASE + UART011_LCRH
-+#define BCM2708_UART_CR UART0_BASE + UART011_CR
++#define BCM2708_UART_DR __io(UART0_BASE + UART01x_DR)
++#define BCM2708_UART_FR __io(UART0_BASE + UART01x_FR)
++#define BCM2708_UART_IBRD __io(UART0_BASE + UART011_IBRD)
++#define BCM2708_UART_FBRD __io(UART0_BASE + UART011_FBRD)
++#define BCM2708_UART_LCRH __io(UART0_BASE + UART011_LCRH)
++#define BCM2708_UART_CR __io(UART0_BASE + UART011_CR)
+
+/*
+ * This does not append a newline
@@ -6427,9 +6305,9 @@ diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/include/mach/uncompress.h linu
+ */
+#define arch_decomp_wdog()
+
-diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/include/mach/vcio.h linux-3.8.10/arch/arm/mach-bcm2708/include/mach/vcio.h
---- linux-3.8.10.orig/arch/arm/mach-bcm2708/include/mach/vcio.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/arch/arm/mach-bcm2708/include/mach/vcio.h 2013-05-06 12:49:35.000000000 +0200
+diff -Nur linux-3.9.9/arch/arm/mach-bcm2708/include/mach/vcio.h linux-rpi/arch/arm/mach-bcm2708/include/mach/vcio.h
+--- linux-3.9.9/arch/arm/mach-bcm2708/include/mach/vcio.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/arch/arm/mach-bcm2708/include/mach/vcio.h 2013-07-08 13:33:14.000000000 +0200
@@ -0,0 +1,141 @@
+/*
+ * arch/arm/mach-bcm2708/include/mach/vcio.h
@@ -6572,9 +6450,9 @@ diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/include/mach/vcio.h linux-3.8.
+#define DEVICE_FILE_NAME "char_dev"
+
+#endif
-diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/include/mach/vc_mem.h linux-3.8.10/arch/arm/mach-bcm2708/include/mach/vc_mem.h
---- linux-3.8.10.orig/arch/arm/mach-bcm2708/include/mach/vc_mem.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/arch/arm/mach-bcm2708/include/mach/vc_mem.h 2013-05-06 12:49:35.000000000 +0200
+diff -Nur linux-3.9.9/arch/arm/mach-bcm2708/include/mach/vc_mem.h linux-rpi/arch/arm/mach-bcm2708/include/mach/vc_mem.h
+--- linux-3.9.9/arch/arm/mach-bcm2708/include/mach/vc_mem.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/arch/arm/mach-bcm2708/include/mach/vc_mem.h 2013-07-08 13:33:14.000000000 +0200
@@ -0,0 +1,36 @@
+/*****************************************************************************
+* Copyright 2010 - 2011 Broadcom Corporation. All rights reserved.
@@ -6612,9 +6490,9 @@ diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/include/mach/vc_mem.h linux-3.
+
+#endif /* VC_MEM_H */
+
-diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/include/mach/vc_support.h linux-3.8.10/arch/arm/mach-bcm2708/include/mach/vc_support.h
---- linux-3.8.10.orig/arch/arm/mach-bcm2708/include/mach/vc_support.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/arch/arm/mach-bcm2708/include/mach/vc_support.h 2013-05-06 12:49:35.000000000 +0200
+diff -Nur linux-3.9.9/arch/arm/mach-bcm2708/include/mach/vc_support.h linux-rpi/arch/arm/mach-bcm2708/include/mach/vc_support.h
+--- linux-3.9.9/arch/arm/mach-bcm2708/include/mach/vc_support.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/arch/arm/mach-bcm2708/include/mach/vc_support.h 2013-07-08 13:33:14.000000000 +0200
@@ -0,0 +1,69 @@
+#ifndef _VC_SUPPORT_H_
+#define _VC_SUPPORT_H_
@@ -6685,9 +6563,9 @@ diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/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-3.8.10.orig/arch/arm/mach-bcm2708/include/mach/vmalloc.h linux-3.8.10/arch/arm/mach-bcm2708/include/mach/vmalloc.h
---- linux-3.8.10.orig/arch/arm/mach-bcm2708/include/mach/vmalloc.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/arch/arm/mach-bcm2708/include/mach/vmalloc.h 2013-05-06 12:49:35.000000000 +0200
+diff -Nur linux-3.9.9/arch/arm/mach-bcm2708/include/mach/vmalloc.h linux-rpi/arch/arm/mach-bcm2708/include/mach/vmalloc.h
+--- linux-3.9.9/arch/arm/mach-bcm2708/include/mach/vmalloc.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/arch/arm/mach-bcm2708/include/mach/vmalloc.h 2013-07-08 13:33:14.000000000 +0200
@@ -0,0 +1,20 @@
+/*
+ * arch/arm/mach-bcm2708/include/mach/vmalloc.h
@@ -6709,10 +6587,10 @@ diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/include/mach/vmalloc.h linux-3
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+#define VMALLOC_END (0xe8000000)
-diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/Kconfig linux-3.8.10/arch/arm/mach-bcm2708/Kconfig
---- linux-3.8.10.orig/arch/arm/mach-bcm2708/Kconfig 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/arch/arm/mach-bcm2708/Kconfig 2013-05-06 12:49:35.000000000 +0200
-@@ -0,0 +1,41 @@
+diff -Nur linux-3.9.9/arch/arm/mach-bcm2708/Kconfig linux-rpi/arch/arm/mach-bcm2708/Kconfig
+--- linux-3.9.9/arch/arm/mach-bcm2708/Kconfig 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/arch/arm/mach-bcm2708/Kconfig 2013-07-08 13:33:14.000000000 +0200
+@@ -0,0 +1,48 @@
+menu "Broadcom BCM2708 Implementations"
+ depends on ARCH_BCM2708
+
@@ -6753,10 +6631,17 @@ diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/Kconfig linux-3.8.10/arch/arm/
+ help
+ Enable DMA helper for accelerating X composition
+
++config BCM2708_SPIDEV
++ bool "Bind spidev to SPI0 master"
++ depends on MACH_BCM2708
++ depends on SPI
++ default y
++ help
++ Binds spidev driver to the SPI0 master
+endmenu
-diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/Makefile linux-3.8.10/arch/arm/mach-bcm2708/Makefile
---- linux-3.8.10.orig/arch/arm/mach-bcm2708/Makefile 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/arch/arm/mach-bcm2708/Makefile 2013-05-06 12:49:35.000000000 +0200
+diff -Nur linux-3.9.9/arch/arm/mach-bcm2708/Makefile linux-rpi/arch/arm/mach-bcm2708/Makefile
+--- linux-3.9.9/arch/arm/mach-bcm2708/Makefile 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/arch/arm/mach-bcm2708/Makefile 2013-07-08 13:33:14.000000000 +0200
@@ -0,0 +1,11 @@
+#
+# Makefile for the linux kernel.
@@ -6769,16 +6654,16 @@ diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/Makefile linux-3.8.10/arch/arm
+obj-$(CONFIG_BCM2708_DMAER) += dmaer_master.o
+dmaer_master-objs := dmaer.o vc_support.o
+
-diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/Makefile.boot linux-3.8.10/arch/arm/mach-bcm2708/Makefile.boot
---- linux-3.8.10.orig/arch/arm/mach-bcm2708/Makefile.boot 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/arch/arm/mach-bcm2708/Makefile.boot 2013-05-06 12:49:35.000000000 +0200
+diff -Nur linux-3.9.9/arch/arm/mach-bcm2708/Makefile.boot linux-rpi/arch/arm/mach-bcm2708/Makefile.boot
+--- linux-3.9.9/arch/arm/mach-bcm2708/Makefile.boot 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/arch/arm/mach-bcm2708/Makefile.boot 2013-07-08 13:33:14.000000000 +0200
@@ -0,0 +1,3 @@
+ zreladdr-y := 0x00008000
+params_phys-y := 0x00000100
+initrd_phys-y := 0x00800000
-diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/power.c linux-3.8.10/arch/arm/mach-bcm2708/power.c
---- linux-3.8.10.orig/arch/arm/mach-bcm2708/power.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/arch/arm/mach-bcm2708/power.c 2013-05-06 12:49:35.000000000 +0200
+diff -Nur linux-3.9.9/arch/arm/mach-bcm2708/power.c linux-rpi/arch/arm/mach-bcm2708/power.c
+--- linux-3.9.9/arch/arm/mach-bcm2708/power.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/arch/arm/mach-bcm2708/power.c 2013-07-08 13:33:14.000000000 +0200
@@ -0,0 +1,194 @@
+/*
+ * linux/arch/arm/mach-bcm2708/power.c
@@ -6974,9 +6859,9 @@ diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/power.c linux-3.8.10/arch/arm/
+MODULE_AUTHOR("Phil Elwell");
+MODULE_DESCRIPTION("Interface to BCM2708 power management");
+MODULE_LICENSE("GPL");
-diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/vcio.c linux-3.8.10/arch/arm/mach-bcm2708/vcio.c
---- linux-3.8.10.orig/arch/arm/mach-bcm2708/vcio.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/arch/arm/mach-bcm2708/vcio.c 2013-05-06 12:49:35.000000000 +0200
+diff -Nur linux-3.9.9/arch/arm/mach-bcm2708/vcio.c linux-rpi/arch/arm/mach-bcm2708/vcio.c
+--- linux-3.9.9/arch/arm/mach-bcm2708/vcio.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/arch/arm/mach-bcm2708/vcio.c 2013-07-08 13:33:14.000000000 +0200
@@ -0,0 +1,474 @@
+/*
+ * linux/arch/arm/mach-bcm2708/vcio.c
@@ -7452,9 +7337,9 @@ diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/vcio.c linux-3.8.10/arch/arm/m
+MODULE_DESCRIPTION("ARM I/O to VideoCore processor");
+MODULE_LICENSE("GPL");
+MODULE_ALIAS("platform:bcm-mbox");
-diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/vc_mem.c linux-3.8.10/arch/arm/mach-bcm2708/vc_mem.c
---- linux-3.8.10.orig/arch/arm/mach-bcm2708/vc_mem.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/arch/arm/mach-bcm2708/vc_mem.c 2013-05-06 12:49:35.000000000 +0200
+diff -Nur linux-3.9.9/arch/arm/mach-bcm2708/vc_mem.c linux-rpi/arch/arm/mach-bcm2708/vc_mem.c
+--- linux-3.9.9/arch/arm/mach-bcm2708/vc_mem.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/arch/arm/mach-bcm2708/vc_mem.c 2013-07-08 13:33:14.000000000 +0200
@@ -0,0 +1,458 @@
+/*****************************************************************************
+* Copyright 2010 - 2011 Broadcom Corporation. All rights reserved.
@@ -7914,9 +7799,9 @@ diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/vc_mem.c linux-3.8.10/arch/arm
+module_param(mem_size, uint, 0644);
+module_param(mem_base, uint, 0644);
+
-diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/vc_support.c linux-3.8.10/arch/arm/mach-bcm2708/vc_support.c
---- linux-3.8.10.orig/arch/arm/mach-bcm2708/vc_support.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/arch/arm/mach-bcm2708/vc_support.c 2013-05-06 12:49:35.000000000 +0200
+diff -Nur linux-3.9.9/arch/arm/mach-bcm2708/vc_support.c linux-rpi/arch/arm/mach-bcm2708/vc_support.c
+--- linux-3.9.9/arch/arm/mach-bcm2708/vc_support.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/arch/arm/mach-bcm2708/vc_support.c 2013-07-08 13:33:14.000000000 +0200
@@ -0,0 +1,319 @@
+/*
+ * vc_support.c
@@ -8237,9 +8122,9 @@ diff -Nur linux-3.8.10.orig/arch/arm/mach-bcm2708/vc_support.c linux-3.8.10/arch
+ }
+}
+
-diff -Nur linux-3.8.10.orig/arch/arm/Makefile linux-3.8.10/arch/arm/Makefile
---- linux-3.8.10.orig/arch/arm/Makefile 2013-04-26 21:18:32.000000000 +0200
-+++ linux-3.8.10/arch/arm/Makefile 2013-05-06 12:54:16.000000000 +0200
+diff -Nur linux-3.9.9/arch/arm/Makefile linux-rpi/arch/arm/Makefile
+--- linux-3.9.9/arch/arm/Makefile 2013-07-03 19:56:36.000000000 +0200
++++ linux-rpi/arch/arm/Makefile 2013-07-08 13:33:14.000000000 +0200
@@ -139,6 +139,7 @@
# by CONFIG_* macro name.
machine-$(CONFIG_ARCH_AT91) += at91
@@ -8248,9 +8133,9 @@ diff -Nur linux-3.8.10.orig/arch/arm/Makefile linux-3.8.10/arch/arm/Makefile
machine-$(CONFIG_ARCH_BCM2835) += bcm2835
machine-$(CONFIG_ARCH_CLPS711X) += clps711x
machine-$(CONFIG_ARCH_CNS3XXX) += cns3xxx
-diff -Nur linux-3.8.10.orig/arch/arm/mm/Kconfig linux-3.8.10/arch/arm/mm/Kconfig
---- linux-3.8.10.orig/arch/arm/mm/Kconfig 2013-04-26 21:18:32.000000000 +0200
-+++ linux-3.8.10/arch/arm/mm/Kconfig 2013-05-06 12:54:16.000000000 +0200
+diff -Nur linux-3.9.9/arch/arm/mm/Kconfig linux-rpi/arch/arm/mm/Kconfig
+--- linux-3.9.9/arch/arm/mm/Kconfig 2013-07-03 19:56:36.000000000 +0200
++++ linux-rpi/arch/arm/mm/Kconfig 2013-07-08 13:33:15.000000000 +0200
@@ -358,7 +358,7 @@
# ARMv6
@@ -8260,9 +8145,9 @@ diff -Nur linux-3.8.10.orig/arch/arm/mm/Kconfig linux-3.8.10/arch/arm/mm/Kconfig
select CPU_32v6
select CPU_ABRT_EV6
select CPU_CACHE_V6
-diff -Nur linux-3.8.10.orig/arch/arm/mm/proc-v6.S linux-3.8.10/arch/arm/mm/proc-v6.S
---- linux-3.8.10.orig/arch/arm/mm/proc-v6.S 2013-04-26 21:18:32.000000000 +0200
-+++ linux-3.8.10/arch/arm/mm/proc-v6.S 2013-05-06 12:54:16.000000000 +0200
+diff -Nur linux-3.9.9/arch/arm/mm/proc-v6.S linux-rpi/arch/arm/mm/proc-v6.S
+--- linux-3.9.9/arch/arm/mm/proc-v6.S 2013-07-03 19:56:36.000000000 +0200
++++ linux-rpi/arch/arm/mm/proc-v6.S 2013-07-08 13:33:15.000000000 +0200
@@ -73,10 +73,19 @@
*
* IRQs are already disabled.
@@ -8286,9 +8171,9 @@ diff -Nur linux-3.8.10.orig/arch/arm/mm/proc-v6.S linux-3.8.10/arch/arm/mm/proc-
mov pc, lr
ENTRY(cpu_v6_dcache_clean_area)
-diff -Nur linux-3.8.10.orig/arch/arm/tools/mach-types linux-3.8.10/arch/arm/tools/mach-types
---- linux-3.8.10.orig/arch/arm/tools/mach-types 2013-04-26 21:18:32.000000000 +0200
-+++ linux-3.8.10/arch/arm/tools/mach-types 2013-05-06 12:54:16.000000000 +0200
+diff -Nur linux-3.9.9/arch/arm/tools/mach-types linux-rpi/arch/arm/tools/mach-types
+--- linux-3.9.9/arch/arm/tools/mach-types 2013-07-03 19:56:36.000000000 +0200
++++ linux-rpi/arch/arm/tools/mach-types 2013-07-08 13:33:15.000000000 +0200
@@ -517,6 +517,7 @@
prima2_evb MACH_PRIMA2_EVB PRIMA2_EVB 3103
paz00 MACH_PAZ00 PAZ00 3128
@@ -8297,9 +8182,616 @@ diff -Nur linux-3.8.10.orig/arch/arm/tools/mach-types linux-3.8.10/arch/arm/tool
ag5evm MACH_AG5EVM AG5EVM 3189
tsunagi MACH_TSUNAGI TSUNAGI 3197
ics_if_voip MACH_ICS_IF_VOIP ICS_IF_VOIP 3206
-diff -Nur linux-3.8.10.orig/drivers/char/broadcom/Kconfig linux-3.8.10/drivers/char/broadcom/Kconfig
---- linux-3.8.10.orig/drivers/char/broadcom/Kconfig 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/char/broadcom/Kconfig 2013-05-06 12:54:34.000000000 +0200
+diff -Nur linux-3.9.9/.bash_history linux-rpi/.bash_history
+--- linux-3.9.9/.bash_history 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/.bash_history 2013-05-29 09:31:16.000000000 +0200
+@@ -0,0 +1,489 @@
++cd trunk/
++make
++ls dl/netifd-2013-02-19-486aa750a164d41905beb61afec89268e3eb7f48.tar.gz
++cd trunk/
++ls
++svn up
++cd ..
++tar czvf openwrt.tgz trunk/
++cd trunk/
++make dirclean
++cd ..
++tar czvf openwrt.tgz trunk/
++cd trunk/
++cp feeds.conf.default feeds.conf
++vi feeds.conf
++make package/symlinks
++./scripts/feeds update -h
++./scripts/feeds update -a
++make package/symlinks
++cd ..
++mv trunk/ openwrt
++tar czvf openwrt.tgz openwrt
++cd openwrt
++svn up
++make V=s
++make menuconfig
++make V=s
++cd openwrt
++svn up
++make V=s
++make dirclean
++cd ..
++tar czvf openwrt.tgz openwrt
++cd openwrt
++make V=s
++sudo apt-get install flex
++su -
++grep -r flex include/*
++vi README
++make V=s
++less tools/flex/Makefile
++ls -la staging_dir/host/bin/flex
++git clone git://github.com/faiproject/fai.git
++cd openwrt
++svn up
++less tools/mkimage/patches/020-openbsd_fixes.patch
++make menuconfig
++make distclean
++make menuconfig
++make V=s
++make cleandir
++make -C scripts/config clean
++make dirclean
++cd ..
++tar czvf openwrt.tgz openwrt
++cd openwrt
++svn up
++git clone git://git.linux-mips.org/pub/scm/ralf/linux
++ls
++mail
++git clone git://git.kernel.org/pub/scm/boot/dracut/dracut.git
++cd dracut/
++ls
++less README
++#git clone https://github.com/haraldh/dracut
++rm -rf dracut/
++git clone https://github.com/haraldh/dracut
++cd openwrt
++ls
++make menuconfig
++make V=s
++make dirclean
++cd ..
++tar czvf openwrt.tgz openwrt
++cd openwrt
++svn up
++vi feeds.conf
++make package/symlinks
++cd feeds/packages
++svn up
++cd ..
++cd xorg
++svn up
++cd ..
++tar czvf openwrt.tgz openwrt
++ps axw
++su -
++ls
++echo "Checking out files from the git repository..."; mkdir -p /home/wbx/openwrt/tmp/dl && cd /home/wbx/openwrt/tmp/dl && rm -rf brcm2708-gpu-fw-20120529 && [ \! -d brcm2708-gpu-fw-20120529 ] && git clone git://github.com/raspberrypi/firmware.git brcm2708-gpu-fw-20120529 --recursive && (cd brcm2708-gpu-fw-20120529 && git checkout 29ce6bcf278e7e79cd8a2b84c6aa9db9864ca91d) && echo "Packing checkout..." && rm -rf brcm2708-gpu-fw-20120529/.git && /home/wbx/openwrt/staging_dir/host/bin/tar cjf /home/wbx/openwrt/tmp/dl/brcm2708-gpu-fw-20120529.tar.bz2 brcm2708-gpu-fw-20120529 && mv /home/wbx/openwrt/tmp/dl/brcm2708-gpu-fw-20120529.tar.bz2 /home/wbx/openwrt/dl/ && rm -rf brcm2708-gpu-fw-20120529;
++vi b.sh
++sh b.sh
++vi b.sh
++sh b.sh
++vi b.sh
++sh b.sh
++ls
++mail
++su -
++su -
++ssh -p 65000 192.168.199.98
++ssh -p 65000 root@192.168.199.98
++ls
++cd openwrt
++svn up
++make menuconfig
++make V0s
++make V=s
++ls
++cd openwrt
++ls
++svn checkout https://gnunet.org/svn/libmicrohttpd/
++ls
++cd openwrt
++ls
++cp -a feeds/packages/libs/libao/ feeds/packages/libs/libmicrohttpd
++vim feeds/packages/libs/libmicrohttpd/Makefile
++rm -rf feeds/packages/libs/libmicrohttpd/libao/
++svn co svn://svn.openwrt.org/openwrt/branches/attitude_adjustment
++cd attitude_adjustment/
++cp feeds.conf.default feeds.conf
++vi feeds.conf
++./scripts/feeds update
++patch -p0 < ../openjdk7-base.patch
++cd feeds/packages
++patch -p0 < ../../../openjdk7-packages.patch
++cd ../xorg
++patch -p0 < ../../../openjdk7-xorg.patch
++cd ../../
++make package/symlinks
++make menuconfig
++su -
++vim tools/classpath/Makefile
++vim tools/ant/Makefile
++make V=s
++su -
++make V=s
++git clone https://github.com/OpenELEC/OpenELEC.tv.git
++cd attitude_adjustment/
++make V=s
++su -
++make menuconfig
++make V=s
++ls -la staging_dir/host/bin/
++ls -la staging_dir/host/usr
++vim tools/ant/Makefile
++make tools/ant/{clean,compile} V=99
++vim tools/ant/Makefile
++make tools/ant/{clean,compile} V=99
++vim tools/Makefile
++make dirclean && make V=s
++su -
++make V=s
++find staging_dir/ -name fastjar
++vi tools/fastjar/Makefile
++make tools/fastjar/{clean,compile} V=99
++vi tools/fastjar/Makefile
++make tools/fastjar/{clean,compile} V=99
++make V=99
++fg
++vi tools/fastjar/Makefile
++make V=99
++vim tools/icedtea/Makefile
++make V=99
++less /home/vmadmin/attitude_adjustment/build_dir/host/icedtea-2.3.4/config.log
++vim /home/vmadmin/attitude_adjustment/build_dir/host/icedtea-2.3.4/configure
++make V=99
++/home/vmadmin/attitude_adjustment/staging_dir/host/usr/bin/ecj -cp . -source 5 -target 5 Test.java
++vim /home/vmadmin/attitude_adjustment/build_dir/host/icedtea-2.3.4/configure
++vi Test.java
++/home/vmadmin/attitude_adjustment/staging_dir/host/bin/ -cp . -source 5 -target 5 Test.java
++/home/vmadmin/attitude_adjustment/staging_dir/host/usr/bin/ecj -cp . -source 5 -target 5 Test.java
++strace -f /home/vmadmin/attitude_adjustment/staging_dir/host/usr/bin/ecj -cp . -source 5 -target 5 Test.java
++/home/vmadmin/attitude_adjustment/staging_dir/host/usr/bin/ecj
++/home/vmadmin/attitude_adjustment/staging_dir/host/usr/bin/ecj -cp staging_dir/host/usr/share/java/ecj.jar -source 5 -target 5 Test.java
++/home/vmadmin/attitude_adjustment/staging_dir/host/usr/bin/ecj -cp staging_dir/host/usr/share/java/libgcj-4.7.2.jar -source 5 -target 5 Test.java
++vim /home/vmadmin/attitude_adjustment/build_dir/host/icedtea-2.3.4/configure
++make V=99
++vim /home/vmadmin/attitude_adjustment/build_dir/host/icedtea-2.3.4/configure
++fg
++less tools/fastjar/Makefile
++make V=99
++/home/vmadmin/attitude_adjustment/staging_dir/host/usr/lib/jvm/bin/javah
++find staging_dir/ -name libgcj-tools.so.13
++file /home/vmadmin/attitude_adjustment/staging_dir/host/usr/lib/jvm/bin/javah
++/home/vmadmin/attitude_adjustment/staging_dir/host/usr/lib/jvm/bin/javah
++export export JAVACFLAGS="-cp /home/vmadmin/attitude_adjustment/staging_dir/host/usr/share/java/libgcj-4.7.2.jar" LD_LIBRARY_PATH=/home/vmadmin/attitude_adjustment/staging_dir/host/usr/lib:/home/vmadmin/attitude_adjustment/staging_dir/host/usr/lib64 PATH=$PATH:/home/vmadmin/attitude_adjustment/staging_dir/host/usr/bin BOOTCLASSPATH="/home/vmadmin/attitude_adjustment/staging_dir/host/usr/share/jamvm/classes.zip:/home/vmadmin/attitude_adjustment/staging_dir/host/usr/share/classpath/glibj.zip"; /home/vmadmin/attitude_adjustment/staging_dir/host/usr/lib/jvm/bin/javah
++less build_dir/host/icedtea-2.3.4/config.log
++vim build_dir/host/icedtea-2.3.4/configure
++export export JAVACFLAGS="-cp /home/vmadmin/attitude_adjustment/staging_dir/host/usr/share/java/libgcj-4.7.2.jar" LD_LIBRARY_PATH=/home/vmadmin/attitude_adjustment/staging_dir/host/usr/lib:/home/vmadmin/attitude_adjustment/staging_dir/host/usr/lib64 PATH=$PATH:/home/vmadmin/attitude_adjustment/staging_dir/host/usr/bin BOOTCLASSPATH="/home/vmadmin/attitude_adjustment/staging_dir/host/usr/share/jamvm/classes.zip:/home/vmadmin/attitude_adjustment/staging_dir/host/usr/share/classpath/glibj.zip"; /home/vmadmin/attitude_adjustment/staging_dir/host/usr/lib/jvm/bin/javah
++make V=s
++cd build_dir/host/icedtea-2.3.4/
++vi configure
++cd ..
++make V=s
++find . -name X.h
++vim /home/vmadmin/attitude_adjustment/build_dir/host/icedtea-2.3.4/configure
++make tools/icedtea/compile V=99
++w
++cd ..
++w
++ls
++w
++top
++ls
++w
++fg
++cd openwrt
++ls
++cd
++cd attitude_adjustment/
++vim tools/icedtea/Makefile
++vim tools/classpath/Makefile
++vim tools/icedtea/Makefile
++scp tools/icedtea/Makefile openadk.org:
++w
++cd
++ls
++rm -rf
++rm -rf *
++fg
++git clone https://github.com/raspberrypi/firmware
++ls firmware/
++cd firmware/
++ls
++git log -p
++git log
++ls
++less README
++cd ..
++mv firmware/ brcm2708-gpu-fw-20130326
++cd brcm2708-gpu-fw-20130326
++git log
++cd ..
++tar xjvf brcm2708-gpu-fw-20130326.tar.bz2 brcm2708-gpu-fw-20130326/
++tar cjvf brcm2708-gpu-fw-20130326.tar.bz2 brcm2708-gpu-fw-20130326/
++ls
++w
++svn co svn://svn.openwrt.org/openwrt/branches/attitude_adjustment
++rm -rf attitude_adjustment/
++ls
++rm -rf brcm2708-gpu-fw-20130326*
++svn co svn://svn.openwrt.org/openwrt/branches/attitude_adjustment
++cd attitude_adjustment/
++ls
++cp feeds.conf.default feeds.conf
++vi feeds.conf
++./scripts/feeds install -a
++./scripts/feeds update -a
++./scripts/feeds update
++cd attitude_adjustment/
++make menuconfig
++make V=s
++svn diff
++s
++ls
++svn co svn://svn.openwrt.org/openwrt/trunk/ openwrt
++less trunk/toolchain/uClibc/patches-0.9.33.2/980-mips64_fixes.patch
++less openwrt/toolchain/uClibc/patches-0.9.33.2/980-mips64_fixes.patch
++cd openwrt/
++make menuconfig
++svn log|łess
++svn log|less
++svn log r36204
++svn log -r36204
++svn diff -r36204
++ls
++cd openwrt/
++ls
++make menuconfig
++less target/linux/malta/le64/config-default
++make V=s
++cat target/linux/malta/README
++cd bin/malta/
++pwd
++cd ..
++file staging_dir/target-mips64el_uClibc-0.9.33.2/root-malta/bin/busybox
++make menuconfig
++make v
++make V=s
++file staging_dir/target-mips64el_uClibc-0.9.33.2/root-malta/bin/busybox
++less .config
++make clean && make v
++make clean && make V=s
++file staging_dir/target-mips64el_uClibc-0.9.33.2/root-malta/bin/busybox
++cd openwrt/
++ls
++vi feeds.conf.default
++cp feeds.conf.default feeds.conf
++vim feeds.conf
++./scripts/feeds
++./scripts/feeds install -a
++./scripts/feeds update -a
++./scripts/feeds install -a
++ls
++git
++git clone git://git.openwrt.org/12.09/openwrt.git attitude_adjustment
++ls
++rm -rf attitude_adjustment/
++git clone git://git.openwrt.org/12.09/openwrt.git attitude_adjustment
++cd attitude_adjustment/
++ls
++cp feeds.conf.default feeds.conf
++vi feeds.conf
++./scripts/./scripts/feeds update
++./scripts/feeds update
++cd ..
++scp wbx@openadk.org:openjdk7-* .
++cd attitude_adjustment/
++patch -p0 < ../openjdk7-base.patch
++cd feeds/packages
++patch -p0 < ../../../openjdk7-packages.patch
++cd ../xorg
++patch -p0 < ../../../openjdk7-xorg.patch
++cd ../../
++make package/symlinks
++make menuconfig
++vim tools/classpath/Makefile
++screen
++make V=s
++vim tools/ant/Makefile
++mail
++su -
++make dirclean && make V=s
++vim tools/icedtea/Makefile
++make tools/icedtea/install V=s
++su -
++make tools/icedtea/install V=s
++su -
++make tools/icedtea/install V=s
++dpkg -L gcj
++dpkg -L libgcj
++dpkg -L libgcj13
++dpkg -L libgcj12
++dpkg -l|grep gcj
++vim tools/icedtea/Makefile
++make tools/icedtea/install V=s
++ls build_dir/
++pwd
++cat tools/icedtea/patches/openwrt.patch
++tar xjvf dl/icedtea-2.3.4.tar.gz
++tar xzvf dl/icedtea-2.3.4.tar.gz
++cp -a icedtea-2.3.4/ icedtea-2.3.4.orig
++cd icedtea-2.3.4
++patch -p1 <../tools/icedtea/patches/openwrt.patch
++cd ..
++cd build_dir/host/icedtea-2.3.4/
++cp -a openjdk-boot/ openjdk-boot.orig
++vim openjdk-boot/hotspot/make/linux/makefiles/launcher.make
++diff -Nur openjdk-boot.orig/ openjdk-boot
++diff -Nur openjdk-boot.orig/ openjdk-boot >> ../../../icedtea-2.3.4/patches/topdir-openwrt.patch
++vim ../../../icedtea-2.3.4/patches/topdir-openwrt.patch
++cd ..
++diff -Nur icedtea-2.3.4.orig/ icedtea-2.3.4 > tools/icedtea/patches/openwrt.patch
++cat tools/icedtea/patches/openwrt.patch
++make tools/icedtea/{clean,install} V=s
++apt-cache search Intrinsic.h
++su -
++make tools/icedtea/install V=s
++rm /home/vmadmin/attitude_adjustment/build_dir/host/icedtea-2.3.4/openjdk.build-boot/hotspot/outputdir/linux_amd64_zero/product/libjvm.debuginfo
++make tools/icedtea/install V=s
++rm /home/vmadmin/attitude_adjustment/build_dir/host/icedtea-2.3.4/openjdk.build-boot/hotspot/outputdir/linux_amd64_zero/product/libjvm.debuginfo
++su -
++make tools/icedtea/install V=s
++make V=s
++df -h
++cd ..
++ls
++rm -rf openwrt/
++df -h
++ls
++cd attitude_adjustment/
++ls
++make V=s
++cd attitude_adjustment/
++ls
++screen
++make V=s
++less /home/vmadmin/attitude_adjustment/build_dir/target-i386_uClibc-0.9.33.2/icedtea-2.3.4/config.log
++su -
++make V=s
++svn diff
++ls ..
++git status
++git diff include/host-build.mk
++git status
++rm -rf icedtea-2.3.4/
++git add toolchain/uClibc/patches-0.9.33.2/999-ldso-origin.patch tools/alsa-lib/ tools/ant/ tools/bigreqsproto/ tools/classpath/ tools/ecj/ tools/fastjar/ tools/freetype/ tools/gcc/ tools/icedtea/ tools/inputproto/ tools/jamvm/ tools/jikes/ tools/kbproto/ tools/libice/ tools/libsm/ tools/libx11/ tools/libxau/ tools/libxext/ tools/libxi/ tools/libxinerama/ tools/libxt/ tools/libxtst/ tools/recordproto/ tools/xcmiscproto/ tools/xextproto/ tools/xineramaproto/ tools/xproto/ tools/xtrans/
++git status
++git commit -m "openjdk 7" -a
++git format-patch -s $origin
++ls
++git format-patch -s $ORIGIN
++ls
++git format-patches -s $ORIGIN
++git format-patch -s $ORIGIN
++ls
++rm -rf icedtea-2.3.4.orig/
++git format-patch -s $ORIGIN
++man git
++man git-format-patch
++git format-patch -s origin
++ls
++less 0001-openjdk-7.patch
++cd feeds/packages
++svn st
++svn add lang/openjdk/
++svn add libs/libffi/patches/
++svn diff
++svn diff > ../../../openjdk7-packages.patch
++cd ..
++cd xorg
++svn st
++svn add xorg/lib/libXinerama xorg/lib/libXp
++svn diff > ../../../openjdk7-xorg.patch
++cd ..
++cp 0001-openjdk-7.patch ../openjdk7-base.patch
++ls
++cd ..
++ls
++cd attitude_adjustment/
++ls
++ls -la bin/x86/packages/openjdk_2.3.4-1_x86.ipk
++chroot build_dir/target-i386_uClibc-0.9.33.2/root-x86/
++sudo chroot build_dir/target-i386_uClibc-0.9.33.2/root-x86/
++cd ..
++ls
++cd attitude_adjustment/
++ls -la /usr/lib/libffi.so.*
++git clone http://git.joshuawise.com/git/patchfork.git
++cd patchfork/
++ls
++less README
++less index.php
++less player/index.php
++less player/nowplaying.php
++git log -p
++ls
++git init
++git fetch git://github.com/raspberrypi/linux.git rpi-3.8.y:refs/remotes/origin/rpi-3.8.y
++mkdir raspberry
++cd raspberry
++git init
++git fetch git://github.com/raspberrypi/linux.git rpi-3.8.y:refs/remotes/origin/rpi-3.8.y
++git checkout rpi-3.8.y
++df -h
++cd ..
++ls
++rm -rf attitude_adjustment/
++cd raspberry/
++git checkout rpi-3.8.y
++rm .gitignore
++git checkout rpi-3.8.y
++ls
++git diff
++ls
++rm -rf *
++ls
++git init
++git fetch git://github.com/raspberrypi/linux.git rpi-3.8.y:refs/remotes/origin/rpi-3.8.y
++ls
++ls
++cd ..
++rm -rf raspberry/
++mkdir rasp
++cd rasp/
++git init
++git fetch git://github.com/raspberrypi/linux.git rpi-3.8.y:refs/remotes/origin/rpi-3.8.y
++git checkout rpi-3.8.y
++ls
++git clone https://github.com/raspberrypi/firmware.git
++du -chs firmware/
++ps
++ps axw
++ps axw|grep squi
++ls
++rm -rf *
++ls
++svn co svn://svn.eglibc.org/branches/eglibc-2_17 eglibc-2.17
++tar czvf eglibc-2.17.tar.gz eglibc-2.17/
++find eglibc-2.17 -name .svn
++find eglibc-2.17 -name .svn -delete
++find eglibc-2.17 -name .svn -exec rm -rf {} \;
++find eglibc-2.17 -name .svn -delete
++tar czvf eglibc-2.17.tar.gz eglibc-2.17/
++scp eglibc-2.17.tar.gz wbx@openadk.org:/srv/www/openadk.org/htdocs/distfiles/
++ls
++rm -rf eglibc-2.17*
++apt-cache search tomcat
++su -
+diff -Nur linux-3.9.9/.bash_logout linux-rpi/.bash_logout
+--- linux-3.9.9/.bash_logout 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/.bash_logout 2013-02-14 18:10:26.000000000 +0100
+@@ -0,0 +1,7 @@
++# ~/.bash_logout: executed by bash(1) when login shell exits.
++
++# when leaving the console clear the screen to increase privacy
++
++if [ "$SHLVL" = 1 ]; then
++ [ -x /usr/bin/clear_console ] && /usr/bin/clear_console -q
++fi
+diff -Nur linux-3.9.9/.bashrc linux-rpi/.bashrc
+--- linux-3.9.9/.bashrc 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/.bashrc 2013-02-14 18:10:26.000000000 +0100
+@@ -0,0 +1,99 @@
++# ~/.bashrc: executed by bash(1) for non-login shells.
++# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
++# for examples
++
++# If not running interactively, don't do anything
++[ -z "$PS1" ] && return
++
++# don't put duplicate lines in the history. See bash(1) for more options
++# don't overwrite GNU Midnight Commander's setting of `ignorespace'.
++HISTCONTROL=$HISTCONTROL${HISTCONTROL+:}ignoredups
++# ... or force ignoredups and ignorespace
++HISTCONTROL=ignoreboth
++
++# append to the history file, don't overwrite it
++shopt -s histappend
++
++# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
++
++# check the window size after each command and, if necessary,
++# update the values of LINES and COLUMNS.
++shopt -s checkwinsize
++
++# make less more friendly for non-text input files, see lesspipe(1)
++#[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
++
++# set variable identifying the chroot you work in (used in the prompt below)
++if [ -z "$debian_chroot" ] && [ -r /etc/debian_chroot ]; then
++ debian_chroot=$(cat /etc/debian_chroot)
++fi
++
++# set a fancy prompt (non-color, unless we know we "want" color)
++case "$TERM" in
++ xterm-color) color_prompt=yes;;
++esac
++
++# uncomment for a colored prompt, if the terminal has the capability; turned
++# off by default to not distract the user: the focus in a terminal window
++# should be on the output of commands, not on the prompt
++#force_color_prompt=yes
++
++if [ -n "$force_color_prompt" ]; then
++ if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
++ # We have color support; assume it's compliant with Ecma-48
++ # (ISO/IEC-6429). (Lack of such support is extremely rare, and such
++ # a case would tend to support setf rather than setaf.)
++ color_prompt=yes
++ else
++ color_prompt=
++ fi
++fi
++
++if [ "$color_prompt" = yes ]; then
++ PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
++else
++ PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
++fi
++unset color_prompt force_color_prompt
++
++# If this is an xterm set the title to user@host:dir
++case "$TERM" in
++xterm*|rxvt*)
++ PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
++ ;;
++*)
++ ;;
++esac
++
++# enable color support of ls and also add handy aliases
++if [ -x /usr/bin/dircolors ]; then
++ test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
++ alias ls='ls --color=auto'
++ #alias dir='dir --color=auto'
++ #alias vdir='vdir --color=auto'
++
++ #alias grep='grep --color=auto'
++ #alias fgrep='fgrep --color=auto'
++ #alias egrep='egrep --color=auto'
++fi
++
++# some more ls aliases
++#alias ll='ls -l'
++#alias la='ls -A'
++#alias l='ls -CF'
++
++# Alias definitions.
++# You may want to put all your additions into a separate file like
++# ~/.bash_aliases, instead of adding them here directly.
++# See /usr/share/doc/bash-doc/examples in the bash-doc package.
++
++if [ -f ~/.bash_aliases ]; then
++ . ~/.bash_aliases
++fi
++
++# enable programmable completion features (you don't need to enable
++# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
++# sources /etc/bash.bashrc).
++if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
++ . /etc/bash_completion
++fi
+diff -Nur linux-3.9.9/drivers/char/broadcom/Kconfig linux-rpi/drivers/char/broadcom/Kconfig
+--- linux-3.9.9/drivers/char/broadcom/Kconfig 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/char/broadcom/Kconfig 2013-07-08 13:33:15.000000000 +0200
@@ -0,0 +1,17 @@
+#
+# Broadcom char driver config
@@ -8318,15 +8810,15 @@ diff -Nur linux-3.8.10.orig/drivers/char/broadcom/Kconfig linux-3.8.10/drivers/c
+ help
+ Helper for videocore CMA access.
+
-diff -Nur linux-3.8.10.orig/drivers/char/broadcom/Makefile linux-3.8.10/drivers/char/broadcom/Makefile
---- linux-3.8.10.orig/drivers/char/broadcom/Makefile 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/char/broadcom/Makefile 2013-05-06 12:54:34.000000000 +0200
+diff -Nur linux-3.9.9/drivers/char/broadcom/Makefile linux-rpi/drivers/char/broadcom/Makefile
+--- linux-3.9.9/drivers/char/broadcom/Makefile 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/char/broadcom/Makefile 2013-07-08 13:33:15.000000000 +0200
@@ -0,0 +1,2 @@
+obj-$(CONFIG_BCM_VC_CMA) += vc_cma/
+
-diff -Nur linux-3.8.10.orig/drivers/char/broadcom/vc_cma/Makefile linux-3.8.10/drivers/char/broadcom/vc_cma/Makefile
---- linux-3.8.10.orig/drivers/char/broadcom/vc_cma/Makefile 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/char/broadcom/vc_cma/Makefile 2013-05-06 12:54:34.000000000 +0200
+diff -Nur linux-3.9.9/drivers/char/broadcom/vc_cma/Makefile linux-rpi/drivers/char/broadcom/vc_cma/Makefile
+--- linux-3.9.9/drivers/char/broadcom/vc_cma/Makefile 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/char/broadcom/vc_cma/Makefile 2013-07-08 13:33:15.000000000 +0200
@@ -0,0 +1,15 @@
+EXTRA_CFLAGS += -Wall -Wstrict-prototypes -Wno-trigraphs
+EXTRA_CFLAGS += -Werror
@@ -8343,9 +8835,9 @@ diff -Nur linux-3.8.10.orig/drivers/char/broadcom/vc_cma/Makefile linux-3.8.10/d
+
+vc-cma-objs := vc_cma.o
+
-diff -Nur linux-3.8.10.orig/drivers/char/broadcom/vc_cma/vc_cma.c linux-3.8.10/drivers/char/broadcom/vc_cma/vc_cma.c
---- linux-3.8.10.orig/drivers/char/broadcom/vc_cma/vc_cma.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/char/broadcom/vc_cma/vc_cma.c 2013-05-06 12:54:34.000000000 +0200
+diff -Nur linux-3.9.9/drivers/char/broadcom/vc_cma/vc_cma.c linux-rpi/drivers/char/broadcom/vc_cma/vc_cma.c
+--- linux-3.9.9/drivers/char/broadcom/vc_cma/vc_cma.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/char/broadcom/vc_cma/vc_cma.c 2013-07-08 13:33:15.000000000 +0200
@@ -0,0 +1,1145 @@
+/**
+ * Copyright (c) 2010-2012 Broadcom. All rights reserved.
@@ -9492,9 +9984,9 @@ diff -Nur linux-3.8.10.orig/drivers/char/broadcom/vc_cma/vc_cma.c linux-3.8.10/d
+module_exit(vc_cma_exit);
+MODULE_LICENSE("GPL");
+MODULE_AUTHOR("Broadcom Corporation");
-diff -Nur linux-3.8.10.orig/drivers/char/hw_random/bcm2708-rng.c linux-3.8.10/drivers/char/hw_random/bcm2708-rng.c
---- linux-3.8.10.orig/drivers/char/hw_random/bcm2708-rng.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/char/hw_random/bcm2708-rng.c 2013-05-06 12:54:34.000000000 +0200
+diff -Nur linux-3.9.9/drivers/char/hw_random/bcm2708-rng.c linux-rpi/drivers/char/hw_random/bcm2708-rng.c
+--- linux-3.9.9/drivers/char/hw_random/bcm2708-rng.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/char/hw_random/bcm2708-rng.c 2013-07-08 13:33:15.000000000 +0200
@@ -0,0 +1,117 @@
+/**
+ * Copyright (c) 2010-2012 Broadcom. All rights reserved.
@@ -9613,9 +10105,9 @@ diff -Nur linux-3.8.10.orig/drivers/char/hw_random/bcm2708-rng.c linux-3.8.10/dr
+
+MODULE_DESCRIPTION("BCM2708 H/W Random Number Generator (RNG) driver");
+MODULE_LICENSE("GPL and additional rights");
-diff -Nur linux-3.8.10.orig/drivers/char/hw_random/Kconfig linux-3.8.10/drivers/char/hw_random/Kconfig
---- linux-3.8.10.orig/drivers/char/hw_random/Kconfig 2013-04-26 21:18:32.000000000 +0200
-+++ linux-3.8.10/drivers/char/hw_random/Kconfig 2013-05-06 12:54:34.000000000 +0200
+diff -Nur linux-3.9.9/drivers/char/hw_random/Kconfig linux-rpi/drivers/char/hw_random/Kconfig
+--- linux-3.9.9/drivers/char/hw_random/Kconfig 2013-07-03 19:56:36.000000000 +0200
++++ linux-rpi/drivers/char/hw_random/Kconfig 2013-07-08 13:33:15.000000000 +0200
@@ -302,3 +302,15 @@
module will be called tpm-rng.
@@ -9632,19 +10124,19 @@ diff -Nur linux-3.8.10.orig/drivers/char/hw_random/Kconfig linux-3.8.10/drivers/
+
+ If unsure, say N.
+
-diff -Nur linux-3.8.10.orig/drivers/char/hw_random/Makefile linux-3.8.10/drivers/char/hw_random/Makefile
---- linux-3.8.10.orig/drivers/char/hw_random/Makefile 2013-04-26 21:18:32.000000000 +0200
-+++ linux-3.8.10/drivers/char/hw_random/Makefile 2013-05-06 12:54:34.000000000 +0200
+diff -Nur linux-3.9.9/drivers/char/hw_random/Makefile linux-rpi/drivers/char/hw_random/Makefile
+--- linux-3.9.9/drivers/char/hw_random/Makefile 2013-07-03 19:56:36.000000000 +0200
++++ linux-rpi/drivers/char/hw_random/Makefile 2013-07-08 13:33:15.000000000 +0200
@@ -26,3 +26,5 @@
obj-$(CONFIG_HW_RANDOM_PSERIES) += pseries-rng.o
obj-$(CONFIG_HW_RANDOM_EXYNOS) += exynos-rng.o
obj-$(CONFIG_HW_RANDOM_TPM) += tpm-rng.o
+obj-$(CONFIG_HW_RANDOM_BCM2708) += bcm2708-rng.o
+
-diff -Nur linux-3.8.10.orig/drivers/char/Kconfig linux-3.8.10/drivers/char/Kconfig
---- linux-3.8.10.orig/drivers/char/Kconfig 2013-04-26 21:18:32.000000000 +0200
-+++ linux-3.8.10/drivers/char/Kconfig 2013-05-06 12:54:34.000000000 +0200
-@@ -585,6 +585,8 @@
+diff -Nur linux-3.9.9/drivers/char/Kconfig linux-rpi/drivers/char/Kconfig
+--- linux-3.9.9/drivers/char/Kconfig 2013-07-03 19:56:36.000000000 +0200
++++ linux-rpi/drivers/char/Kconfig 2013-07-08 13:33:15.000000000 +0200
+@@ -586,6 +586,8 @@
source "drivers/s390/char/Kconfig"
@@ -9653,9 +10145,9 @@ diff -Nur linux-3.8.10.orig/drivers/char/Kconfig linux-3.8.10/drivers/char/Kconf
config MSM_SMD_PKT
bool "Enable device interface for some SMD packet ports"
default n
-diff -Nur linux-3.8.10.orig/drivers/char/Makefile linux-3.8.10/drivers/char/Makefile
---- linux-3.8.10.orig/drivers/char/Makefile 2013-04-26 21:18:32.000000000 +0200
-+++ linux-3.8.10/drivers/char/Makefile 2013-05-06 12:54:34.000000000 +0200
+diff -Nur linux-3.9.9/drivers/char/Makefile linux-rpi/drivers/char/Makefile
+--- linux-3.9.9/drivers/char/Makefile 2013-07-03 19:56:36.000000000 +0200
++++ linux-rpi/drivers/char/Makefile 2013-07-08 13:33:15.000000000 +0200
@@ -62,3 +62,6 @@
js-rtc-y = rtc.o
@@ -9663,9 +10155,9 @@ diff -Nur linux-3.8.10.orig/drivers/char/Makefile linux-3.8.10/drivers/char/Make
+
+obj-$(CONFIG_BRCM_CHAR_DRIVERS) += broadcom/
+
-diff -Nur linux-3.8.10.orig/drivers/cpufreq/bcm2835-cpufreq.c linux-3.8.10/drivers/cpufreq/bcm2835-cpufreq.c
---- linux-3.8.10.orig/drivers/cpufreq/bcm2835-cpufreq.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/cpufreq/bcm2835-cpufreq.c 2013-05-06 12:54:34.000000000 +0200
+diff -Nur linux-3.9.9/drivers/cpufreq/bcm2835-cpufreq.c linux-rpi/drivers/cpufreq/bcm2835-cpufreq.c
+--- linux-3.9.9/drivers/cpufreq/bcm2835-cpufreq.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/cpufreq/bcm2835-cpufreq.c 2013-07-08 13:33:15.000000000 +0200
@@ -0,0 +1,239 @@
+/*****************************************************************************
+* Copyright 2011 Broadcom Corporation. All rights reserved.
@@ -9906,13 +10398,13 @@ diff -Nur linux-3.8.10.orig/drivers/cpufreq/bcm2835-cpufreq.c linux-3.8.10/drive
+module_init(bcm2835_cpufreq_module_init);
+module_exit(bcm2835_cpufreq_module_exit);
+
-diff -Nur linux-3.8.10.orig/drivers/cpufreq/Kconfig.arm linux-3.8.10/drivers/cpufreq/Kconfig.arm
---- linux-3.8.10.orig/drivers/cpufreq/Kconfig.arm 2013-04-26 21:18:32.000000000 +0200
-+++ linux-3.8.10/drivers/cpufreq/Kconfig.arm 2013-05-06 12:54:40.000000000 +0200
-@@ -83,3 +83,12 @@
- default y
- help
- This adds the CPUFreq driver support for SPEAr SOCs.
+diff -Nur linux-3.9.9/drivers/cpufreq/Kconfig.arm linux-rpi/drivers/cpufreq/Kconfig.arm
+--- linux-3.9.9/drivers/cpufreq/Kconfig.arm 2013-07-03 19:56:36.000000000 +0200
++++ linux-rpi/drivers/cpufreq/Kconfig.arm 2013-07-08 13:33:15.000000000 +0200
+@@ -113,3 +113,12 @@
+ based boards.
+
+ If in doubt, say N.
+
+config ARM_BCM2835_CPUFREQ
+ bool "BCM2835 Driver"
@@ -9922,20 +10414,20 @@ diff -Nur linux-3.8.10.orig/drivers/cpufreq/Kconfig.arm linux-3.8.10/drivers/cpu
+
+ If in doubt, say N.
+
-diff -Nur linux-3.8.10.orig/drivers/cpufreq/Makefile linux-3.8.10/drivers/cpufreq/Makefile
---- linux-3.8.10.orig/drivers/cpufreq/Makefile 2013-04-26 21:18:32.000000000 +0200
-+++ linux-3.8.10/drivers/cpufreq/Makefile 2013-05-06 12:54:40.000000000 +0200
-@@ -52,6 +52,7 @@
- obj-$(CONFIG_ARM_EXYNOS5250_CPUFREQ) += exynos5250-cpufreq.o
- obj-$(CONFIG_ARM_OMAP2PLUS_CPUFREQ) += omap-cpufreq.o
+diff -Nur linux-3.9.9/drivers/cpufreq/Makefile linux-rpi/drivers/cpufreq/Makefile
+--- linux-3.9.9/drivers/cpufreq/Makefile 2013-07-03 19:56:36.000000000 +0200
++++ linux-rpi/drivers/cpufreq/Makefile 2013-07-08 13:33:15.000000000 +0200
+@@ -57,6 +57,7 @@
obj-$(CONFIG_ARM_SPEAR_CPUFREQ) += spear-cpufreq.o
+ obj-$(CONFIG_ARM_HIGHBANK_CPUFREQ) += highbank-cpufreq.o
+ obj-$(CONFIG_ARM_IMX6Q_CPUFREQ) += imx6q-cpufreq.o
+obj-$(CONFIG_ARM_BCM2835_CPUFREQ) += bcm2835-cpufreq.o
##################################################################################
# PowerPC platform drivers
-diff -Nur linux-3.8.10.orig/drivers/hwmon/bcm2835-hwmon.c linux-3.8.10/drivers/hwmon/bcm2835-hwmon.c
---- linux-3.8.10.orig/drivers/hwmon/bcm2835-hwmon.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/hwmon/bcm2835-hwmon.c 2013-05-06 12:54:52.000000000 +0200
+diff -Nur linux-3.9.9/drivers/hwmon/bcm2835-hwmon.c linux-rpi/drivers/hwmon/bcm2835-hwmon.c
+--- linux-3.9.9/drivers/hwmon/bcm2835-hwmon.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/hwmon/bcm2835-hwmon.c 2013-07-08 13:33:16.000000000 +0200
@@ -0,0 +1,219 @@
+/*****************************************************************************
+* Copyright 2011 Broadcom Corporation. All rights reserved.
@@ -10156,10 +10648,10 @@ diff -Nur linux-3.8.10.orig/drivers/hwmon/bcm2835-hwmon.c linux-3.8.10/drivers/h
+MODULE_DESCRIPTION("HW Monitor driver for bcm2835 chip");
+
+module_platform_driver(bcm2835_hwmon_driver);
-diff -Nur linux-3.8.10.orig/drivers/hwmon/Kconfig linux-3.8.10/drivers/hwmon/Kconfig
---- linux-3.8.10.orig/drivers/hwmon/Kconfig 2013-04-26 21:18:32.000000000 +0200
-+++ linux-3.8.10/drivers/hwmon/Kconfig 2013-05-06 12:54:52.000000000 +0200
-@@ -1440,6 +1440,16 @@
+diff -Nur linux-3.9.9/drivers/hwmon/Kconfig linux-rpi/drivers/hwmon/Kconfig
+--- linux-3.9.9/drivers/hwmon/Kconfig 2013-07-03 19:56:36.000000000 +0200
++++ linux-rpi/drivers/hwmon/Kconfig 2013-07-08 13:33:16.000000000 +0200
+@@ -1462,6 +1462,16 @@
help
Support for the A/D converter on MC13783 and MC13892 PMIC.
@@ -10176,10 +10668,10 @@ diff -Nur linux-3.8.10.orig/drivers/hwmon/Kconfig linux-3.8.10/drivers/hwmon/Kco
if ACPI
comment "ACPI drivers"
-diff -Nur linux-3.8.10.orig/drivers/hwmon/Makefile linux-3.8.10/drivers/hwmon/Makefile
---- linux-3.8.10.orig/drivers/hwmon/Makefile 2013-04-26 21:18:32.000000000 +0200
-+++ linux-3.8.10/drivers/hwmon/Makefile 2013-05-06 12:54:52.000000000 +0200
-@@ -132,6 +132,7 @@
+diff -Nur linux-3.9.9/drivers/hwmon/Makefile linux-rpi/drivers/hwmon/Makefile
+--- linux-3.9.9/drivers/hwmon/Makefile 2013-07-03 19:56:36.000000000 +0200
++++ linux-rpi/drivers/hwmon/Makefile 2013-07-08 13:33:16.000000000 +0200
+@@ -134,6 +134,7 @@
obj-$(CONFIG_SENSORS_W83L786NG) += w83l786ng.o
obj-$(CONFIG_SENSORS_WM831X) += wm831x-hwmon.o
obj-$(CONFIG_SENSORS_WM8350) += wm8350-hwmon.o
@@ -10187,10 +10679,10 @@ diff -Nur linux-3.8.10.orig/drivers/hwmon/Makefile linux-3.8.10/drivers/hwmon/Ma
obj-$(CONFIG_PMBUS) += pmbus/
-diff -Nur linux-3.8.10.orig/drivers/i2c/busses/i2c-bcm2708.c linux-3.8.10/drivers/i2c/busses/i2c-bcm2708.c
---- linux-3.8.10.orig/drivers/i2c/busses/i2c-bcm2708.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/i2c/busses/i2c-bcm2708.c 2013-05-06 12:54:52.000000000 +0200
-@@ -0,0 +1,400 @@
+diff -Nur linux-3.9.9/drivers/i2c/busses/i2c-bcm2708.c linux-rpi/drivers/i2c/busses/i2c-bcm2708.c
+--- linux-3.9.9/drivers/i2c/busses/i2c-bcm2708.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/i2c/busses/i2c-bcm2708.c 2013-07-08 13:33:16.000000000 +0200
+@@ -0,0 +1,408 @@
+/*
+ * Driver for Broadcom BCM2708 BSC Controllers
+ *
@@ -10290,7 +10782,7 @@ diff -Nur linux-3.8.10.orig/drivers/i2c/busses/i2c-bcm2708.c linux-3.8.10/driver
+ *
+ * FIXME: This is a hack. Use pinmux / pinctrl.
+ */
-+static void bcm2708_i2c_init_pinmode(void)
++static void bcm2708_i2c_init_pinmode(int id)
+{
+#define INP_GPIO(g) *(gpio+((g)/10)) &= ~(7<<(((g)%10)*3))
+#define SET_GPIO_ALT(g,a) *(gpio+(((g)/10))) |= (((a)<=3?(a)+4:(a)==4?3:2)<<(((g)%10)*3))
@@ -10298,8 +10790,10 @@ diff -Nur linux-3.8.10.orig/drivers/i2c/busses/i2c-bcm2708.c linux-3.8.10/driver
+ int pin;
+ u32 *gpio = ioremap(0x20200000, SZ_16K);
+
++ BUG_ON(id != 0 && id != 1);
+ /* BSC0 is on GPIO 0 & 1, BSC1 is on GPIO 2 & 3 */
-+ for (pin = 0; pin <= 3; pin++) {
++ for (pin = id*2+0; pin <= id*2+1; pin++) {
++printk("bcm2708_i2c_init_pinmode(%d,%d)\n", id, pin);
+ INP_GPIO(pin); /* set mode to GPIO input first */
+ SET_GPIO_ALT(pin, 0); /* set mode to ALT 0 */
+ }
@@ -10366,6 +10860,11 @@ diff -Nur linux-3.8.10.orig/drivers/i2c/busses/i2c-bcm2708.c linux-3.8.10/driver
+
+ spin_lock(&bi->lock);
+
++ /* we may see camera interrupts on the "other" I2C channel
++ Just return if we've not sent anything */
++ if (!bi->nmsgs || !bi->msg )
++ goto early_exit;
++
+ s = bcm2708_rd(bi, BSC_S);
+
+ if (s & (BSC_S_CLKT | BSC_S_ERR)) {
@@ -10399,6 +10898,7 @@ diff -Nur linux-3.8.10.orig/drivers/i2c/busses/i2c-bcm2708.c linux-3.8.10/driver
+ handled = false;
+ }
+
++early_exit:
+ spin_unlock(&bi->lock);
+
+ return handled ? IRQ_HANDLED : IRQ_NONE;
@@ -10472,7 +10972,7 @@ diff -Nur linux-3.8.10.orig/drivers/i2c/busses/i2c-bcm2708.c linux-3.8.10/driver
+ return PTR_ERR(clk);
+ }
+
-+ bcm2708_i2c_init_pinmode();
++ bcm2708_i2c_init_pinmode(pdev->id);
+
+ bi = kzalloc(sizeof(*bi), GFP_KERNEL);
+ if (!bi)
@@ -10591,12 +11091,12 @@ diff -Nur linux-3.8.10.orig/drivers/i2c/busses/i2c-bcm2708.c linux-3.8.10/driver
+MODULE_AUTHOR("Chris Boot <bootc@bootc.net>");
+MODULE_LICENSE("GPL v2");
+MODULE_ALIAS("platform:" DRV_NAME);
-diff -Nur linux-3.8.10.orig/drivers/i2c/busses/Kconfig linux-3.8.10/drivers/i2c/busses/Kconfig
---- linux-3.8.10.orig/drivers/i2c/busses/Kconfig 2013-04-26 21:18:32.000000000 +0200
-+++ linux-3.8.10/drivers/i2c/busses/Kconfig 2013-05-06 12:54:52.000000000 +0200
-@@ -319,6 +319,25 @@
- This driver can also be built as a module. If so, the module
- will be called i2c-au1550.
+diff -Nur linux-3.9.9/drivers/i2c/busses/Kconfig linux-rpi/drivers/i2c/busses/Kconfig
+--- linux-3.9.9/drivers/i2c/busses/Kconfig 2013-07-03 19:56:36.000000000 +0200
++++ linux-rpi/drivers/i2c/busses/Kconfig 2013-07-08 13:33:16.000000000 +0200
+@@ -343,6 +343,25 @@
+ This support is also available as a module. If so, the module
+ will be called i2c-bcm2835.
+config I2C_BCM2708
+ tristate "BCM2708 BSC"
@@ -10620,50 +11120,53 @@ diff -Nur linux-3.8.10.orig/drivers/i2c/busses/Kconfig linux-3.8.10/drivers/i2c/
config I2C_BLACKFIN_TWI
tristate "Blackfin TWI I2C support"
depends on BLACKFIN
-diff -Nur linux-3.8.10.orig/drivers/i2c/busses/Makefile linux-3.8.10/drivers/i2c/busses/Makefile
---- linux-3.8.10.orig/drivers/i2c/busses/Makefile 2013-04-26 21:18:32.000000000 +0200
-+++ linux-3.8.10/drivers/i2c/busses/Makefile 2013-05-06 12:54:52.000000000 +0200
-@@ -30,6 +30,7 @@
- # Embedded system I2C/SMBus host controller drivers
+diff -Nur linux-3.9.9/drivers/i2c/busses/Makefile linux-rpi/drivers/i2c/busses/Makefile
+--- linux-3.9.9/drivers/i2c/busses/Makefile 2013-07-03 19:56:36.000000000 +0200
++++ linux-rpi/drivers/i2c/busses/Makefile 2013-07-08 13:33:16.000000000 +0200
+@@ -32,6 +32,7 @@
obj-$(CONFIG_I2C_AT91) += i2c-at91.o
obj-$(CONFIG_I2C_AU1550) += i2c-au1550.o
+ obj-$(CONFIG_I2C_BCM2835) += i2c-bcm2835.o
+obj-$(CONFIG_I2C_BCM2708) += i2c-bcm2708.o
obj-$(CONFIG_I2C_BLACKFIN_TWI) += i2c-bfin-twi.o
obj-$(CONFIG_I2C_CBUS_GPIO) += i2c-cbus-gpio.o
obj-$(CONFIG_I2C_CPM) += i2c-cpm.o
-diff -Nur linux-3.8.10.orig/drivers/media/usb/dvb-usb-v2/rtl28xxu.c linux-3.8.10/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
---- linux-3.8.10.orig/drivers/media/usb/dvb-usb-v2/rtl28xxu.c 2013-04-26 21:18:32.000000000 +0200
-+++ linux-3.8.10/drivers/media/usb/dvb-usb-v2/rtl28xxu.c 2013-05-06 12:54:52.000000000 +0200
-@@ -1352,6 +1352,8 @@
- &rtl2832u_props, "Dexatek DK mini DVB-T Dongle", NULL) },
- { DVB_USB_DEVICE(USB_VID_TERRATEC, 0x00d7,
- &rtl2832u_props, "TerraTec Cinergy T Stick+", NULL) },
+diff -Nur linux-3.9.9/drivers/media/usb/dvb-usb-v2/rtl28xxu.c linux-rpi/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
+--- linux-3.9.9/drivers/media/usb/dvb-usb-v2/rtl28xxu.c 2013-07-03 19:56:36.000000000 +0200
++++ linux-rpi/drivers/media/usb/dvb-usb-v2/rtl28xxu.c 2013-07-08 13:33:16.000000000 +0200
+@@ -1372,6 +1372,10 @@
+ &rtl2832u_props, "Digivox Micro Hd", NULL) },
+ { DVB_USB_DEVICE(USB_VID_COMPRO, 0x0620,
+ &rtl2832u_props, "Compro VideoMate U620F", NULL) },
+ { DVB_USB_DEVICE(USB_VID_GTEK, 0xb803 /*USB_PID_AUGUST_DVBT205*/,
+ &rtl2832u_props, "August DVB-T 205", NULL) },
++ { DVB_USB_DEVICE(USB_VID_GTEK, 0xa803 /*USB_PID_AUGUST_DVBT205*/,
++ &rtl2832u_props, "August DVB-T 205", NULL) },
{ }
};
MODULE_DEVICE_TABLE(usb, rtl28xxu_id_table);
-diff -Nur linux-3.8.10.orig/drivers/misc/Kconfig linux-3.8.10/drivers/misc/Kconfig
---- linux-3.8.10.orig/drivers/misc/Kconfig 2013-04-26 21:18:32.000000000 +0200
-+++ linux-3.8.10/drivers/misc/Kconfig 2013-05-06 12:54:52.000000000 +0200
-@@ -507,4 +507,6 @@
- source "drivers/misc/carma/Kconfig"
+diff -Nur linux-3.9.9/drivers/misc/Kconfig linux-rpi/drivers/misc/Kconfig
+--- linux-3.9.9/drivers/misc/Kconfig 2013-07-03 19:56:36.000000000 +0200
++++ linux-rpi/drivers/misc/Kconfig 2013-07-08 13:33:16.000000000 +0200
+@@ -519,4 +519,6 @@
source "drivers/misc/altera-stapl/Kconfig"
source "drivers/misc/mei/Kconfig"
+ source "drivers/misc/vmw_vmci/Kconfig"
+source "drivers/misc/vc04_services/Kconfig"
endmenu
+
-diff -Nur linux-3.8.10.orig/drivers/misc/Makefile linux-3.8.10/drivers/misc/Makefile
---- linux-3.8.10.orig/drivers/misc/Makefile 2013-04-26 21:18:32.000000000 +0200
-+++ linux-3.8.10/drivers/misc/Makefile 2013-05-06 12:54:52.000000000 +0200
-@@ -49,3 +49,4 @@
- obj-$(CONFIG_USB_SWITCH_FSA9480) += fsa9480.o
- obj-$(CONFIG_ALTERA_STAPL) +=altera-stapl/
- obj-$(CONFIG_INTEL_MEI) += mei/
+diff -Nur linux-3.9.9/drivers/misc/Makefile linux-rpi/drivers/misc/Makefile
+--- linux-3.9.9/drivers/misc/Makefile 2013-07-03 19:56:36.000000000 +0200
++++ linux-rpi/drivers/misc/Makefile 2013-07-08 13:33:16.000000000 +0200
+@@ -52,3 +52,5 @@
+ obj-$(CONFIG_MAX8997_MUIC) += max8997-muic.o
+ obj-$(CONFIG_VMWARE_VMCI) += vmw_vmci/
+ obj-$(CONFIG_LATTICE_ECP3_CONFIG) += lattice-ecp3-config.o
+obj-$(CONFIG_BCM2708_VCHIQ) += vc04_services/
-diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchi/connections/connection.h linux-3.8.10/drivers/misc/vc04_services/interface/vchi/connections/connection.h
---- linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchi/connections/connection.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/misc/vc04_services/interface/vchi/connections/connection.h 2013-05-06 12:54:52.000000000 +0200
++
+diff -Nur linux-3.9.9/drivers/misc/vc04_services/interface/vchi/connections/connection.h linux-rpi/drivers/misc/vc04_services/interface/vchi/connections/connection.h
+--- linux-3.9.9/drivers/misc/vc04_services/interface/vchi/connections/connection.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/misc/vc04_services/interface/vchi/connections/connection.h 2013-07-08 13:33:16.000000000 +0200
@@ -0,0 +1,328 @@
+/**
+ * Copyright (c) 2010-2012 Broadcom. All rights reserved.
@@ -10993,9 +11496,9 @@ diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchi/connection
+#endif /* CONNECTION_H_ */
+
+/****************************** End of file **********************************/
-diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchi/message_drivers/message.h linux-3.8.10/drivers/misc/vc04_services/interface/vchi/message_drivers/message.h
---- linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchi/message_drivers/message.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/misc/vc04_services/interface/vchi/message_drivers/message.h 2013-05-06 12:54:52.000000000 +0200
+diff -Nur linux-3.9.9/drivers/misc/vc04_services/interface/vchi/message_drivers/message.h linux-rpi/drivers/misc/vc04_services/interface/vchi/message_drivers/message.h
+--- linux-3.9.9/drivers/misc/vc04_services/interface/vchi/message_drivers/message.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/misc/vc04_services/interface/vchi/message_drivers/message.h 2013-07-08 13:33:16.000000000 +0200
@@ -0,0 +1,204 @@
+/**
+ * Copyright (c) 2010-2012 Broadcom. All rights reserved.
@@ -11201,9 +11704,9 @@ diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchi/message_dr
+#endif // _VCHI_MESSAGE_H_
+
+/****************************** End of file ***********************************/
-diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchi/vchi_cfg.h linux-3.8.10/drivers/misc/vc04_services/interface/vchi/vchi_cfg.h
---- linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchi/vchi_cfg.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/misc/vc04_services/interface/vchi/vchi_cfg.h 2013-05-06 12:54:52.000000000 +0200
+diff -Nur linux-3.9.9/drivers/misc/vc04_services/interface/vchi/vchi_cfg.h linux-rpi/drivers/misc/vc04_services/interface/vchi/vchi_cfg.h
+--- linux-3.9.9/drivers/misc/vc04_services/interface/vchi/vchi_cfg.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/misc/vc04_services/interface/vchi/vchi_cfg.h 2013-07-08 13:33:16.000000000 +0200
@@ -0,0 +1,224 @@
+/**
+ * Copyright (c) 2010-2012 Broadcom. All rights reserved.
@@ -11429,9 +11932,9 @@ diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchi/vchi_cfg.h
+#endif /* VCHI_CFG_H_ */
+
+/****************************** End of file **********************************/
-diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchi/vchi_cfg_internal.h linux-3.8.10/drivers/misc/vc04_services/interface/vchi/vchi_cfg_internal.h
---- linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchi/vchi_cfg_internal.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/misc/vc04_services/interface/vchi/vchi_cfg_internal.h 2013-05-06 12:54:52.000000000 +0200
+diff -Nur linux-3.9.9/drivers/misc/vc04_services/interface/vchi/vchi_cfg_internal.h linux-rpi/drivers/misc/vc04_services/interface/vchi/vchi_cfg_internal.h
+--- linux-3.9.9/drivers/misc/vc04_services/interface/vchi/vchi_cfg_internal.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/misc/vc04_services/interface/vchi/vchi_cfg_internal.h 2013-07-08 13:33:16.000000000 +0200
@@ -0,0 +1,71 @@
+/**
+ * Copyright (c) 2010-2012 Broadcom. All rights reserved.
@@ -11504,9 +12007,9 @@ diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchi/vchi_cfg_i
+//#define VCHI_RX_NANOLOCKS
+
+#endif /*VCHI_CFG_INTERNAL_H_*/
-diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchi/vchi_common.h linux-3.8.10/drivers/misc/vc04_services/interface/vchi/vchi_common.h
---- linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchi/vchi_common.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/misc/vc04_services/interface/vchi/vchi_common.h 2013-05-06 12:54:52.000000000 +0200
+diff -Nur linux-3.9.9/drivers/misc/vc04_services/interface/vchi/vchi_common.h linux-rpi/drivers/misc/vc04_services/interface/vchi/vchi_common.h
+--- linux-3.9.9/drivers/misc/vc04_services/interface/vchi/vchi_common.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/misc/vc04_services/interface/vchi/vchi_common.h 2013-07-08 13:33:16.000000000 +0200
@@ -0,0 +1,163 @@
+/**
+ * Copyright (c) 2010-2012 Broadcom. All rights reserved.
@@ -11671,9 +12174,9 @@ diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchi/vchi_commo
+
+
+#endif // VCHI_COMMON_H_
-diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchi/vchi.h linux-3.8.10/drivers/misc/vc04_services/interface/vchi/vchi.h
---- linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchi/vchi.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/misc/vc04_services/interface/vchi/vchi.h 2013-05-06 12:54:52.000000000 +0200
+diff -Nur linux-3.9.9/drivers/misc/vc04_services/interface/vchi/vchi.h linux-rpi/drivers/misc/vc04_services/interface/vchi/vchi.h
+--- linux-3.9.9/drivers/misc/vc04_services/interface/vchi/vchi.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/misc/vc04_services/interface/vchi/vchi.h 2013-07-08 13:33:16.000000000 +0200
@@ -0,0 +1,373 @@
+/**
+ * Copyright (c) 2010-2012 Broadcom. All rights reserved.
@@ -12048,9 +12551,9 @@ diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchi/vchi.h lin
+#endif /* VCHI_H_ */
+
+/****************************** End of file **********************************/
-diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchi/vchi_mh.h linux-3.8.10/drivers/misc/vc04_services/interface/vchi/vchi_mh.h
---- linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchi/vchi_mh.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/misc/vc04_services/interface/vchi/vchi_mh.h 2013-05-06 12:54:52.000000000 +0200
+diff -Nur linux-3.9.9/drivers/misc/vc04_services/interface/vchi/vchi_mh.h linux-rpi/drivers/misc/vc04_services/interface/vchi/vchi_mh.h
+--- linux-3.9.9/drivers/misc/vc04_services/interface/vchi/vchi_mh.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/misc/vc04_services/interface/vchi/vchi_mh.h 2013-07-08 13:33:16.000000000 +0200
@@ -0,0 +1,42 @@
+/**
+ * Copyright (c) 2010-2012 Broadcom. All rights reserved.
@@ -12094,9 +12597,9 @@ diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchi/vchi_mh.h
+#define VCHI_MEM_HANDLE_INVALID 0
+
+#endif
-diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c linux-3.8.10/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c
---- linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c 2013-05-06 12:54:52.000000000 +0200
+diff -Nur linux-3.9.9/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c
+--- linux-3.9.9/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c 2013-07-08 13:33:16.000000000 +0200
@@ -0,0 +1,538 @@
+/**
+ * Copyright (c) 2010-2012 Broadcom. All rights reserved.
@@ -12636,9 +13139,9 @@ diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq
+
+ kfree(pagelist);
+}
-diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835.h linux-3.8.10/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835.h
---- linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835.h 2013-05-06 12:54:52.000000000 +0200
+diff -Nur linux-3.9.9/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835.h linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835.h
+--- linux-3.9.9/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835.h 2013-07-08 13:33:16.000000000 +0200
@@ -0,0 +1,42 @@
+/**
+ * Copyright (c) 2010-2012 Broadcom. All rights reserved.
@@ -12682,9 +13185,9 @@ diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq
+#define VCHIQ_PLATFORM_FRAGMENTS_COUNT_IDX 1
+
+#endif /* VCHIQ_2835_H */
-diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c linux-3.8.10/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c
---- linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c 2013-05-06 12:54:52.000000000 +0200
+diff -Nur linux-3.9.9/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c
+--- linux-3.9.9/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c 2013-07-08 13:33:16.000000000 +0200
@@ -0,0 +1,2802 @@
+/**
+ * Copyright (c) 2010-2012 Broadcom. All rights reserved.
@@ -15488,9 +15991,9 @@ diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq
+module_exit(vchiq_exit);
+MODULE_LICENSE("GPL");
+MODULE_AUTHOR("Broadcom Corporation");
-diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.h linux-3.8.10/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.h
---- linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.h 2013-05-06 12:54:52.000000000 +0200
+diff -Nur linux-3.9.9/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.h linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.h
+--- linux-3.9.9/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.h 2013-07-08 13:33:16.000000000 +0200
@@ -0,0 +1,212 @@
+/**
+ * Copyright (c) 2010-2012 Broadcom. All rights reserved.
@@ -15704,9 +16207,9 @@ diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq
+
+
+#endif /* VCHIQ_ARM_H */
-diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_build_info.h linux-3.8.10/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_build_info.h
---- linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_build_info.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_build_info.h 2013-05-06 12:54:52.000000000 +0200
+diff -Nur linux-3.9.9/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_build_info.h linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_build_info.h
+--- linux-3.9.9/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_build_info.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_build_info.h 2013-07-08 13:33:16.000000000 +0200
@@ -0,0 +1,37 @@
+/**
+ * Copyright (c) 2010-2012 Broadcom. All rights reserved.
@@ -15745,9 +16248,9 @@ diff -Nur linux-3.8.10.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-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_cfg.h linux-3.8.10/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_cfg.h
---- linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_cfg.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_cfg.h 2013-05-06 12:54:52.000000000 +0200
+diff -Nur linux-3.9.9/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_cfg.h linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_cfg.h
+--- linux-3.9.9/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_cfg.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_cfg.h 2013-07-08 13:33:16.000000000 +0200
@@ -0,0 +1,60 @@
+/**
+ * Copyright (c) 2010-2012 Broadcom. All rights reserved.
@@ -15809,9 +16312,9 @@ diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq
+#endif
+
+#endif /* VCHIQ_CFG_H */
-diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.c linux-3.8.10/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.c
---- linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.c 2013-05-06 12:54:52.000000000 +0200
+diff -Nur linux-3.9.9/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.c linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.c
+--- linux-3.9.9/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.c 2013-07-08 13:33:16.000000000 +0200
@@ -0,0 +1,119 @@
+/**
+ * Copyright (c) 2010-2012 Broadcom. All rights reserved.
@@ -15932,9 +16435,9 @@ diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq
+ mutex_unlock(&g_connected_mutex);
+}
+EXPORT_SYMBOL(vchiq_add_connected_callback);
-diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.h linux-3.8.10/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.h
---- linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.h 2013-05-06 12:54:52.000000000 +0200
+diff -Nur linux-3.9.9/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.h linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.h
+--- linux-3.9.9/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.h 2013-07-08 13:33:16.000000000 +0200
@@ -0,0 +1,51 @@
+/**
+ * Copyright (c) 2010-2012 Broadcom. All rights reserved.
@@ -15987,9 +16490,9 @@ diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq
+
+#endif /* VCHIQ_CONNECTED_H */
+
-diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.c linux-3.8.10/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.c
---- linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.c 2013-05-06 12:54:52.000000000 +0200
+diff -Nur linux-3.9.9/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.c linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.c
+--- linux-3.9.9/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.c 2013-07-08 13:33:16.000000000 +0200
@@ -0,0 +1,3818 @@
+/**
+ * Copyright (c) 2010-2012 Broadcom. All rights reserved.
@@ -16843,7 +17346,7 @@ diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq
+ VCHIQ_LOG_INFO)
+ vchiq_log_dump_mem("Sent", 0,
+ header->data + pos,
-+ min(64,
++ min(64u,
+ elements[0].size));
+ }
+ }
@@ -16991,7 +17494,7 @@ diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq
+ VCHIQ_LOG_TRACE)
+ vchiq_log_dump_mem("Sent Sync",
+ 0, header->data + pos,
-+ min(64,
++ min(64u,
+ elements[0].size));
+ }
+ }
@@ -19300,7 +19803,7 @@ diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq
+
+VCHIQ_STATUS_T
+vchiq_queue_message(VCHIQ_SERVICE_HANDLE_T handle,
-+ const VCHIQ_ELEMENT_T *elements, int count)
++ const VCHIQ_ELEMENT_T *elements, unsigned int count)
+{
+ VCHIQ_SERVICE_T *service = find_service_by_handle(handle);
+ VCHIQ_STATUS_T status = VCHIQ_ERROR;
@@ -19809,9 +20312,9 @@ diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq
+ numBytes = 0;
+ }
+}
-diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.h linux-3.8.10/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.h
---- linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.h 2013-05-06 12:54:52.000000000 +0200
+diff -Nur linux-3.9.9/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.h linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.h
+--- linux-3.9.9/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.h 2013-07-08 13:33:16.000000000 +0200
@@ -0,0 +1,703 @@
+/**
+ * Copyright (c) 2010-2012 Broadcom. All rights reserved.
@@ -20516,9 +21019,9 @@ diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq
+ size_t numBytes);
+
+#endif
-diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_genversion linux-3.8.10/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_genversion
---- linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_genversion 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_genversion 2013-05-06 12:54:52.000000000 +0200
+diff -Nur linux-3.9.9/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_genversion linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_genversion
+--- linux-3.9.9/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_genversion 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_genversion 2013-07-08 13:33:16.000000000 +0200
@@ -0,0 +1,89 @@
+#!/usr/bin/perl -w
+
@@ -20609,9 +21112,9 @@ diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq
+EOF
+
+
-diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq.h linux-3.8.10/drivers/misc/vc04_services/interface/vchiq_arm/vchiq.h
---- linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/misc/vc04_services/interface/vchiq_arm/vchiq.h 2013-05-06 12:54:52.000000000 +0200
+diff -Nur linux-3.9.9/drivers/misc/vc04_services/interface/vchiq_arm/vchiq.h linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq.h
+--- linux-3.9.9/drivers/misc/vc04_services/interface/vchiq_arm/vchiq.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq.h 2013-07-08 13:33:16.000000000 +0200
@@ -0,0 +1,41 @@
+/**
+ * Copyright (c) 2010-2012 Broadcom. All rights reserved.
@@ -20654,10 +21157,10 @@ diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq
+
+#endif
+
-diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_if.h linux-3.8.10/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_if.h
---- linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_if.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_if.h 2013-05-06 12:54:52.000000000 +0200
-@@ -0,0 +1,185 @@
+diff -Nur linux-3.9.9/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_if.h linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_if.h
+--- linux-3.9.9/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_if.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_if.h 2013-07-08 13:33:16.000000000 +0200
+@@ -0,0 +1,188 @@
+/**
+ * Copyright (c) 2010-2012 Broadcom. All rights reserved.
+ *
@@ -20749,7 +21252,7 @@ diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq
+
+typedef struct {
+ const void *data;
-+ int size;
++ unsigned int size;
+} VCHIQ_ELEMENT_T;
+
+typedef unsigned int VCHIQ_SERVICE_HANDLE_T;
@@ -20772,11 +21275,12 @@ diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq
+} VCHIQ_SERVICE_PARAMS_T;
+
+typedef struct vchiq_config_struct {
-+ int max_msg_size;
-+ int bulk_threshold; /* The message size aboce which it is better to use
-+ a bulk transfer (<= max_msg_size) */
-+ int max_outstanding_bulks;
-+ int max_services;
++ unsigned int max_msg_size;
++ unsigned int bulk_threshold; /* The message size above which it
++ is better to use a bulk transfer
++ (<= max_msg_size) */
++ unsigned int max_outstanding_bulks;
++ unsigned int max_services;
+ short version; /* The version of VCHIQ */
+ short version_min; /* The minimum compatible version of VCHIQ */
+} VCHIQ_CONFIG_T;
@@ -20801,29 +21305,31 @@ diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq
+extern VCHIQ_STATUS_T vchiq_release_service(VCHIQ_SERVICE_HANDLE_T service);
+
+extern VCHIQ_STATUS_T vchiq_queue_message(VCHIQ_SERVICE_HANDLE_T service,
-+ const VCHIQ_ELEMENT_T *elements, int count);
++ const VCHIQ_ELEMENT_T *elements, unsigned int count);
+extern void vchiq_release_message(VCHIQ_SERVICE_HANDLE_T service,
+ VCHIQ_HEADER_T *header);
+extern VCHIQ_STATUS_T vchiq_queue_bulk_transmit(VCHIQ_SERVICE_HANDLE_T service,
-+ const void *data, int size, void *userdata);
++ const void *data, unsigned int size, void *userdata);
+extern VCHIQ_STATUS_T vchiq_queue_bulk_receive(VCHIQ_SERVICE_HANDLE_T service,
-+ void *data, int size, void *userdata);
++ void *data, unsigned int size, void *userdata);
+extern VCHIQ_STATUS_T vchiq_queue_bulk_transmit_handle(
+ VCHIQ_SERVICE_HANDLE_T service, VCHI_MEM_HANDLE_T handle,
-+ const void *offset, int size, void *userdata);
++ const void *offset, unsigned int size, void *userdata);
+extern VCHIQ_STATUS_T vchiq_queue_bulk_receive_handle(
+ VCHIQ_SERVICE_HANDLE_T service, VCHI_MEM_HANDLE_T handle,
-+ void *offset, int size, void *userdata);
++ void *offset, unsigned int size, void *userdata);
+extern VCHIQ_STATUS_T vchiq_bulk_transmit(VCHIQ_SERVICE_HANDLE_T service,
-+ const void *data, int size, void *userdata, VCHIQ_BULK_MODE_T mode);
++ const void *data, unsigned int size, void *userdata,
++ VCHIQ_BULK_MODE_T mode);
+extern VCHIQ_STATUS_T vchiq_bulk_receive(VCHIQ_SERVICE_HANDLE_T service,
-+ void *data, int size, void *userdata, VCHIQ_BULK_MODE_T mode);
-+extern VCHIQ_STATUS_T vchiq_bulk_transmit_handle(VCHIQ_SERVICE_HANDLE_T service,
-+ VCHI_MEM_HANDLE_T handle, const void *offset, int size, void *userdata,
++ void *data, unsigned int size, void *userdata,
+ VCHIQ_BULK_MODE_T mode);
++extern VCHIQ_STATUS_T vchiq_bulk_transmit_handle(VCHIQ_SERVICE_HANDLE_T service,
++ VCHI_MEM_HANDLE_T handle, const void *offset, unsigned int size,
++ void *userdata, VCHIQ_BULK_MODE_T mode);
+extern VCHIQ_STATUS_T vchiq_bulk_receive_handle(VCHIQ_SERVICE_HANDLE_T service,
-+ VCHI_MEM_HANDLE_T handle, void *offset, int size, void *userdata,
-+ VCHIQ_BULK_MODE_T mode);
++ VCHI_MEM_HANDLE_T handle, void *offset, unsigned int size,
++ void *userdata, VCHIQ_BULK_MODE_T mode);
+extern int vchiq_get_client_id(VCHIQ_SERVICE_HANDLE_T service);
+extern void *vchiq_get_service_userdata(VCHIQ_SERVICE_HANDLE_T service);
+extern int vchiq_get_service_fourcc(VCHIQ_SERVICE_HANDLE_T service);
@@ -20843,9 +21349,9 @@ diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq
+ short *peer_version);
+
+#endif /* VCHIQ_IF_H */
-diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_ioctl.h linux-3.8.10/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_ioctl.h
---- linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_ioctl.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_ioctl.h 2013-05-06 12:54:52.000000000 +0200
+diff -Nur linux-3.9.9/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_ioctl.h linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_ioctl.h
+--- linux-3.9.9/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_ioctl.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_ioctl.h 2013-07-08 13:33:16.000000000 +0200
@@ -0,0 +1,129 @@
+/**
+ * Copyright (c) 2010-2012 Broadcom. All rights reserved.
@@ -20887,25 +21393,25 @@ diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq
+#include "vchiq_if.h"
+
+#define VCHIQ_IOC_MAGIC 0xc4
-+#define VCHIQ_INVALID_HANDLE -1
++#define VCHIQ_INVALID_HANDLE (~0)
+
+typedef struct {
+ VCHIQ_SERVICE_PARAMS_T params;
+ int is_open;
+ int is_vchi;
-+ int handle; /* OUT */
++ unsigned int handle; /* OUT */
+} VCHIQ_CREATE_SERVICE_T;
+
+typedef struct {
-+ int handle;
-+ int count;
++ unsigned int handle;
++ unsigned int count;
+ const VCHIQ_ELEMENT_T *elements;
+} VCHIQ_QUEUE_MESSAGE_T;
+
+typedef struct {
-+ int handle;
++ unsigned int handle;
+ void *data;
-+ int size;
++ unsigned int size;
+ void *userdata;
+ VCHIQ_BULK_MODE_T mode;
+} VCHIQ_QUEUE_BULK_TRANSFER_T;
@@ -20918,27 +21424,27 @@ diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq
+} VCHIQ_COMPLETION_DATA_T;
+
+typedef struct {
-+ int count;
++ unsigned int count;
+ VCHIQ_COMPLETION_DATA_T *buf;
-+ int msgbufsize;
-+ int msgbufcount; /* IN/OUT */
++ unsigned int msgbufsize;
++ unsigned int msgbufcount; /* IN/OUT */
+ void **msgbufs;
+} VCHIQ_AWAIT_COMPLETION_T;
+
+typedef struct {
-+ int handle;
++ unsigned int handle;
+ int blocking;
-+ int bufsize;
++ unsigned int bufsize;
+ void *buf;
+} VCHIQ_DEQUEUE_MESSAGE_T;
+
+typedef struct {
-+ int config_size;
++ unsigned int config_size;
+ VCHIQ_CONFIG_T *pconfig;
+} VCHIQ_GET_CONFIG_T;
+
+typedef struct {
-+ int handle;
++ unsigned int handle;
+ VCHIQ_SERVICE_OPTION_T option;
+ int value;
+} VCHIQ_SET_SERVICE_OPTION_T;
@@ -20976,9 +21482,9 @@ diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq
+#define VCHIQ_IOC_MAX 15
+
+#endif
-diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_kern_lib.c linux-3.8.10/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_kern_lib.c
---- linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_kern_lib.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_kern_lib.c 2013-05-06 12:54:52.000000000 +0200
+diff -Nur linux-3.9.9/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_kern_lib.c linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_kern_lib.c
+--- linux-3.9.9/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_kern_lib.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_kern_lib.c 2013-07-08 13:33:16.000000000 +0200
@@ -0,0 +1,454 @@
+/**
+ * Copyright (c) 2010-2012 Broadcom. All rights reserved.
@@ -21043,7 +21549,7 @@ diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq
+
+static VCHIQ_STATUS_T
+vchiq_blocking_bulk_transfer(VCHIQ_SERVICE_HANDLE_T handle, void *data,
-+ int size, VCHIQ_BULK_DIR_T dir);
++ unsigned int size, VCHIQ_BULK_DIR_T dir);
+
+/****************************************************************************
+*
@@ -21284,7 +21790,7 @@ diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq
+
+VCHIQ_STATUS_T
+vchiq_queue_bulk_transmit(VCHIQ_SERVICE_HANDLE_T handle,
-+ const void *data, int size, void *userdata)
++ const void *data, unsigned int size, void *userdata)
+{
+ return vchiq_bulk_transfer(handle,
+ VCHI_MEM_HANDLE_INVALID, (void *)data, size, userdata,
@@ -21293,8 +21799,8 @@ diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq
+EXPORT_SYMBOL(vchiq_queue_bulk_transmit);
+
+VCHIQ_STATUS_T
-+vchiq_queue_bulk_receive(VCHIQ_SERVICE_HANDLE_T handle, void *data, int size,
-+ void *userdata)
++vchiq_queue_bulk_receive(VCHIQ_SERVICE_HANDLE_T handle, void *data,
++ unsigned int size, void *userdata)
+{
+ return vchiq_bulk_transfer(handle,
+ VCHI_MEM_HANDLE_INVALID, data, size, userdata,
@@ -21303,8 +21809,8 @@ diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq
+EXPORT_SYMBOL(vchiq_queue_bulk_receive);
+
+VCHIQ_STATUS_T
-+vchiq_bulk_transmit(VCHIQ_SERVICE_HANDLE_T handle, const void *data, int size,
-+ void *userdata, VCHIQ_BULK_MODE_T mode)
++vchiq_bulk_transmit(VCHIQ_SERVICE_HANDLE_T handle, const void *data,
++ unsigned int size, void *userdata, VCHIQ_BULK_MODE_T mode)
+{
+ VCHIQ_STATUS_T status;
+
@@ -21328,8 +21834,8 @@ diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq
+EXPORT_SYMBOL(vchiq_bulk_transmit);
+
+VCHIQ_STATUS_T
-+vchiq_bulk_receive(VCHIQ_SERVICE_HANDLE_T handle, void *data, int size,
-+ void *userdata, VCHIQ_BULK_MODE_T mode)
++vchiq_bulk_receive(VCHIQ_SERVICE_HANDLE_T handle, void *data,
++ unsigned int size, void *userdata, VCHIQ_BULK_MODE_T mode)
+{
+ VCHIQ_STATUS_T status;
+
@@ -21354,7 +21860,7 @@ diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq
+
+static VCHIQ_STATUS_T
+vchiq_blocking_bulk_transfer(VCHIQ_SERVICE_HANDLE_T handle, void *data,
-+ int size, VCHIQ_BULK_DIR_T dir)
++ unsigned int size, VCHIQ_BULK_DIR_T dir)
+{
+ VCHIQ_INSTANCE_T instance;
+ VCHIQ_SERVICE_T *service;
@@ -21434,9 +21940,9 @@ diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq
+
+ return status;
+}
-diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_memdrv.h linux-3.8.10/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_memdrv.h
---- linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_memdrv.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_memdrv.h 2013-05-06 12:54:52.000000000 +0200
+diff -Nur linux-3.9.9/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_memdrv.h linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_memdrv.h
+--- linux-3.9.9/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_memdrv.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_memdrv.h 2013-07-08 13:33:16.000000000 +0200
@@ -0,0 +1,71 @@
+/**
+ * Copyright (c) 2010-2012 Broadcom. All rights reserved.
@@ -21509,9 +22015,9 @@ diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq
+ const VCHIQ_PLATFORM_DATA_T * platform_data);
+
+#endif
-diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_pagelist.h linux-3.8.10/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_pagelist.h
---- linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_pagelist.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_pagelist.h 2013-05-06 12:54:52.000000000 +0200
+diff -Nur linux-3.9.9/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_pagelist.h linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_pagelist.h
+--- linux-3.9.9/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_pagelist.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_pagelist.h 2013-07-08 13:33:16.000000000 +0200
@@ -0,0 +1,58 @@
+/**
+ * Copyright (c) 2010-2012 Broadcom. All rights reserved.
@@ -21571,9 +22077,9 @@ diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq
+} FRAGMENTS_T;
+
+#endif /* VCHIQ_PAGELIST_H */
-diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_proc.c linux-3.8.10/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_proc.c
---- linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_proc.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_proc.c 2013-05-06 12:54:52.000000000 +0200
+diff -Nur linux-3.9.9/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_proc.c linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_proc.c
+--- linux-3.9.9/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_proc.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_proc.c 2013-07-08 13:33:16.000000000 +0200
@@ -0,0 +1,240 @@
+/**
+ * Copyright (c) 2010-2012 Broadcom. All rights reserved.
@@ -21815,9 +22321,9 @@ diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq
+ return proc_info.clients;
+}
+
-diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_shim.c linux-3.8.10/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_shim.c
---- linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_shim.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_shim.c 2013-05-06 12:54:52.000000000 +0200
+diff -Nur linux-3.9.9/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_shim.c linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_shim.c
+--- linux-3.9.9/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_shim.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_shim.c 2013-07-08 13:33:16.000000000 +0200
@@ -0,0 +1,815 @@
+/**
+ * Copyright (c) 2010-2012 Broadcom. All rights reserved.
@@ -22634,9 +23140,9 @@ diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq
+ return ret;
+}
+EXPORT_SYMBOL(vchi_service_release);
-diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.c linux-3.8.10/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.c
---- linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.c 2013-05-06 12:54:52.000000000 +0200
+diff -Nur linux-3.9.9/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.c linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.c
+--- linux-3.9.9/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.c 2013-07-08 13:33:16.000000000 +0200
@@ -0,0 +1,120 @@
+/**
+ * Copyright (c) 2010-2012 Broadcom. All rights reserved.
@@ -22758,9 +23264,9 @@ diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq
+
+ return header;
+}
-diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.h linux-3.8.10/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.h
---- linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.h 2013-05-06 12:54:52.000000000 +0200
+diff -Nur linux-3.9.9/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.h linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.h
+--- linux-3.9.9/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.h 2013-07-08 13:33:16.000000000 +0200
@@ -0,0 +1,82 @@
+/**
+ * Copyright (c) 2010-2012 Broadcom. All rights reserved.
@@ -22844,9 +23350,9 @@ diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq
+
+#endif
+
-diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_version.c linux-3.8.10/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_version.c
---- linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_version.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_version.c 2013-05-06 12:54:52.000000000 +0200
+diff -Nur linux-3.9.9/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_version.c linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_version.c
+--- linux-3.9.9/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_version.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_version.c 2013-07-08 13:33:16.000000000 +0200
@@ -0,0 +1,59 @@
+/**
+ * Copyright (c) 2010-2012 Broadcom. All rights reserved.
@@ -22907,9 +23413,9 @@ diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/interface/vchiq_arm/vchiq
+{
+ return vchiq_build_time;
+}
-diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/Kconfig linux-3.8.10/drivers/misc/vc04_services/Kconfig
---- linux-3.8.10.orig/drivers/misc/vc04_services/Kconfig 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/misc/vc04_services/Kconfig 2013-05-06 12:54:52.000000000 +0200
+diff -Nur linux-3.9.9/drivers/misc/vc04_services/Kconfig linux-rpi/drivers/misc/vc04_services/Kconfig
+--- linux-3.9.9/drivers/misc/vc04_services/Kconfig 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/misc/vc04_services/Kconfig 2013-07-08 13:33:16.000000000 +0200
@@ -0,0 +1,10 @@
+config BCM2708_VCHIQ
+ tristate "Videocore VCHIQ"
@@ -22921,9 +23427,9 @@ diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/Kconfig linux-3.8.10/driv
+ Defaults to Y when the Broadcom Videocore services
+ are included in the build, N otherwise.
+
-diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/Makefile linux-3.8.10/drivers/misc/vc04_services/Makefile
---- linux-3.8.10.orig/drivers/misc/vc04_services/Makefile 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/misc/vc04_services/Makefile 2013-05-06 12:54:52.000000000 +0200
+diff -Nur linux-3.9.9/drivers/misc/vc04_services/Makefile linux-rpi/drivers/misc/vc04_services/Makefile
+--- linux-3.9.9/drivers/misc/vc04_services/Makefile 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/misc/vc04_services/Makefile 2013-07-08 13:33:16.000000000 +0200
@@ -0,0 +1,18 @@
+ifeq ($(CONFIG_MACH_BCM2708),y)
+
@@ -22943,10 +23449,10 @@ diff -Nur linux-3.8.10.orig/drivers/misc/vc04_services/Makefile linux-3.8.10/dri
+
+endif
+
-diff -Nur linux-3.8.10.orig/drivers/mmc/card/block.c linux-3.8.10/drivers/mmc/card/block.c
---- linux-3.8.10.orig/drivers/mmc/card/block.c 2013-04-26 21:18:32.000000000 +0200
-+++ linux-3.8.10/drivers/mmc/card/block.c 2013-05-06 12:54:52.000000000 +0200
-@@ -1214,7 +1214,7 @@
+diff -Nur linux-3.9.9/drivers/mmc/card/block.c linux-rpi/drivers/mmc/card/block.c
+--- linux-3.9.9/drivers/mmc/card/block.c 2013-07-03 19:56:36.000000000 +0200
++++ linux-rpi/drivers/mmc/card/block.c 2013-07-08 13:33:16.000000000 +0200
+@@ -1295,7 +1295,7 @@
brq->data.blocks = 1;
}
@@ -22955,9 +23461,9 @@ diff -Nur linux-3.8.10.orig/drivers/mmc/card/block.c linux-3.8.10/drivers/mmc/ca
/* SPI multiblock writes terminate using a special
* token, not a STOP_TRANSMISSION request.
*/
-diff -Nur linux-3.8.10.orig/drivers/mmc/core/sd.c linux-3.8.10/drivers/mmc/core/sd.c
---- linux-3.8.10.orig/drivers/mmc/core/sd.c 2013-04-26 21:18:32.000000000 +0200
-+++ linux-3.8.10/drivers/mmc/core/sd.c 2013-05-06 12:54:52.000000000 +0200
+diff -Nur linux-3.9.9/drivers/mmc/core/sd.c linux-rpi/drivers/mmc/core/sd.c
+--- linux-3.9.9/drivers/mmc/core/sd.c 2013-07-03 19:56:36.000000000 +0200
++++ linux-rpi/drivers/mmc/core/sd.c 2013-07-08 13:33:16.000000000 +0200
@@ -13,6 +13,8 @@
#include <linux/err.h>
#include <linux/slab.h>
@@ -23096,7 +23602,7 @@ diff -Nur linux-3.8.10.orig/drivers/mmc/core/sd.c linux-3.8.10/drivers/mmc/core/
for (i = 0; i < 16; i++)
ssr[i] = be32_to_cpu(ssr[i]);
-@@ -799,15 +886,11 @@
+@@ -808,15 +895,11 @@
if (!reinit) {
/*
@@ -23116,10 +23622,10 @@ diff -Nur linux-3.8.10.orig/drivers/mmc/core/sd.c linux-3.8.10/drivers/mmc/core/
/*
* Fetch and process SD Status register.
-diff -Nur linux-3.8.10.orig/drivers/mmc/host/Kconfig linux-3.8.10/drivers/mmc/host/Kconfig
---- linux-3.8.10.orig/drivers/mmc/host/Kconfig 2013-04-26 21:18:32.000000000 +0200
-+++ linux-3.8.10/drivers/mmc/host/Kconfig 2013-05-06 12:54:52.000000000 +0200
-@@ -241,6 +241,27 @@
+diff -Nur linux-3.9.9/drivers/mmc/host/Kconfig linux-rpi/drivers/mmc/host/Kconfig
+--- linux-3.9.9/drivers/mmc/host/Kconfig 2013-07-03 19:56:36.000000000 +0200
++++ linux-rpi/drivers/mmc/host/Kconfig 2013-07-08 13:33:16.000000000 +0200
+@@ -238,6 +238,27 @@
YMMV.
@@ -23137,19 +23643,19 @@ diff -Nur linux-3.8.10.orig/drivers/mmc/host/Kconfig linux-3.8.10/drivers/mmc/ho
+
+config MMC_SDHCI_BCM2708_DMA
+ bool "DMA support on BCM2708 Arasan controller"
-+ depends on MMC_SDHCI_BCM2708 && EXPERIMENTAL
++ depends on MMC_SDHCI_BCM2708
+ help
-+ Enable DMA support on the Arasan SDHCI controller in Broadcom 2708
-+ based chips.
++ Enable DMA support on the Arasan SDHCI controller in Broadcom 2708
++ based chips.
+
-+ If unsure, say N.
++ If unsure, say N.
+
- config MMC_OMAP
- tristate "TI OMAP Multimedia Card Interface support"
- depends on ARCH_OMAP
-diff -Nur linux-3.8.10.orig/drivers/mmc/host/Makefile linux-3.8.10/drivers/mmc/host/Makefile
---- linux-3.8.10.orig/drivers/mmc/host/Makefile 2013-04-26 21:18:32.000000000 +0200
-+++ linux-3.8.10/drivers/mmc/host/Makefile 2013-05-06 12:54:52.000000000 +0200
+ config MMC_SDHCI_BCM2835
+ tristate "SDHCI platform support for the BCM2835 SD/MMC Controller"
+ depends on ARCH_BCM2835
+diff -Nur linux-3.9.9/drivers/mmc/host/Makefile linux-rpi/drivers/mmc/host/Makefile
+--- linux-3.9.9/drivers/mmc/host/Makefile 2013-07-03 19:56:36.000000000 +0200
++++ linux-rpi/drivers/mmc/host/Makefile 2013-07-08 13:33:16.000000000 +0200
@@ -14,6 +14,7 @@
obj-$(CONFIG_MMC_SDHCI_PXAV2) += sdhci-pxav2.o
obj-$(CONFIG_MMC_SDHCI_S3C) += sdhci-s3c.o
@@ -23158,10 +23664,10 @@ diff -Nur linux-3.8.10.orig/drivers/mmc/host/Makefile linux-3.8.10/drivers/mmc/h
obj-$(CONFIG_MMC_WBSD) += wbsd.o
obj-$(CONFIG_MMC_AU1X) += au1xmmc.o
obj-$(CONFIG_MMC_OMAP) += omap.o
-diff -Nur linux-3.8.10.orig/drivers/mmc/host/sdhci-bcm2708.c linux-3.8.10/drivers/mmc/host/sdhci-bcm2708.c
---- linux-3.8.10.orig/drivers/mmc/host/sdhci-bcm2708.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/mmc/host/sdhci-bcm2708.c 2013-05-06 12:54:52.000000000 +0200
-@@ -0,0 +1,1413 @@
+diff -Nur linux-3.9.9/drivers/mmc/host/sdhci-bcm2708.c linux-rpi/drivers/mmc/host/sdhci-bcm2708.c
+--- linux-3.9.9/drivers/mmc/host/sdhci-bcm2708.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/mmc/host/sdhci-bcm2708.c 2013-07-08 13:33:16.000000000 +0200
+@@ -0,0 +1,1420 @@
+/*
+ * sdhci-bcm2708.c Support for SDHCI device on BCM2708
+ * Copyright (c) 2010 Broadcom
@@ -23303,6 +23809,7 @@ diff -Nur linux-3.8.10.orig/drivers/mmc/host/sdhci-bcm2708.c linux-3.8.10/driver
+static bool missing_status = 1;
+static bool spurious_crc_acmd51 = 0;
+bool enable_llm = 1;
++bool extra_messages = 0;
+
+#if 0
+static void hptime_test(void)
@@ -23836,13 +24343,16 @@ diff -Nur linux-3.8.10.orig/drivers/mmc/host/sdhci-bcm2708.c linux-3.8.10/driver
+ cs = readl(host_priv->dma_chan_base + BCM2708_DMA_CS);
+
+ if (!(BCM2708_DMA_ACTIVE & cs))
-+ printk(KERN_INFO "%s: missed completion of "
++ {
++ if (extra_messages)
++ printk(KERN_INFO "%s: missed completion of "
+ "cmd %d DMA (%d/%d [%d]/[%d]) - "
+ "ignoring it\n",
+ mmc_hostname(host->mmc),
+ host->last_cmdop,
+ host_priv->sg_done, sg_todo,
+ host_priv->sg_ix+1, sg_len);
++ }
+ else
+ printk(KERN_INFO "%s: resetting ongoing cmd %d"
+ "DMA before %d/%d [%d]/[%d] complete\n",
@@ -24067,7 +24577,8 @@ diff -Nur linux-3.8.10.orig/drivers/mmc/host/sdhci-bcm2708.c linux-3.8.10/driver
+
+ if (!host_priv->dma_wanted) {
+ /* ignore this interrupt - it was reset */
-+ printk(KERN_INFO "%s: DMA IRQ %X ignored - "
++ if (extra_messages)
++ printk(KERN_INFO "%s: DMA IRQ %X ignored - "
+ "results were reset\n",
+ mmc_hostname(host->mmc), dma_cs);
+#ifdef CHECK_DMA_USE
@@ -24561,6 +25072,7 @@ diff -Nur linux-3.8.10.orig/drivers/mmc/host/sdhci-bcm2708.c linux-3.8.10/driver
+module_param(spurious_crc_acmd51, bool, 0444);
+module_param(enable_llm, bool, 0444);
+module_param(cycle_delay, int, 0444);
++module_param(extra_messages, bool, 0444);
+
+MODULE_DESCRIPTION("Secure Digital Host Controller Interface platform driver");
+MODULE_AUTHOR("Broadcom <info@broadcom.com>");
@@ -24573,11 +25085,12 @@ diff -Nur linux-3.8.10.orig/drivers/mmc/host/sdhci-bcm2708.c linux-3.8.10/driver
+MODULE_PARM_DESC(missing_status, "Use the missing status quirk");
+MODULE_PARM_DESC(spurious_crc_acmd51, "Use the spurious crc quirk for reading SCR (ACMD51)");
+MODULE_PARM_DESC(enable_llm, "Enable low-latency mode");
++MODULE_PARM_DESC(extra_messages, "Enable more sdcard warning messages");
+
+
-diff -Nur linux-3.8.10.orig/drivers/mmc/host/sdhci.c linux-3.8.10/drivers/mmc/host/sdhci.c
---- linux-3.8.10.orig/drivers/mmc/host/sdhci.c 2013-04-26 21:18:32.000000000 +0200
-+++ linux-3.8.10/drivers/mmc/host/sdhci.c 2013-05-06 12:54:52.000000000 +0200
+diff -Nur linux-3.9.9/drivers/mmc/host/sdhci.c linux-rpi/drivers/mmc/host/sdhci.c
+--- linux-3.9.9/drivers/mmc/host/sdhci.c 2013-07-03 19:56:36.000000000 +0200
++++ linux-rpi/drivers/mmc/host/sdhci.c 2013-07-08 13:33:16.000000000 +0200
@@ -28,6 +28,7 @@
#include <linux/mmc/mmc.h>
#include <linux/mmc/host.h>
@@ -24586,7 +25099,7 @@ diff -Nur linux-3.8.10.orig/drivers/mmc/host/sdhci.c linux-3.8.10/drivers/mmc/ho
#include <linux/mmc/slot-gpio.h>
#include "sdhci.h"
-@@ -122,6 +123,91 @@
+@@ -123,6 +124,91 @@
* Low level functions *
* *
\*****************************************************************************/
@@ -24678,7 +25191,7 @@ diff -Nur linux-3.8.10.orig/drivers/mmc/host/sdhci.c linux-3.8.10/drivers/mmc/ho
static void sdhci_clear_set_irqs(struct sdhci_host *host, u32 clear, u32 set)
{
-@@ -287,7 +373,7 @@
+@@ -288,7 +374,7 @@
struct sdhci_host *host = container_of(led, struct sdhci_host, led);
unsigned long flags;
@@ -24687,7 +25200,7 @@ diff -Nur linux-3.8.10.orig/drivers/mmc/host/sdhci.c linux-3.8.10/drivers/mmc/ho
if (host->runtime_suspended)
goto out;
-@@ -297,7 +383,7 @@
+@@ -298,7 +384,7 @@
else
sdhci_activate_led(host);
out:
@@ -24696,7 +25209,7 @@ diff -Nur linux-3.8.10.orig/drivers/mmc/host/sdhci.c linux-3.8.10/drivers/mmc/ho
}
#endif
-@@ -314,7 +400,7 @@
+@@ -315,7 +401,7 @@
u32 uninitialized_var(scratch);
u8 *buf;
@@ -24705,7 +25218,7 @@ diff -Nur linux-3.8.10.orig/drivers/mmc/host/sdhci.c linux-3.8.10/drivers/mmc/ho
blksize = host->data->blksz;
chunk = 0;
-@@ -359,7 +445,7 @@
+@@ -360,7 +446,7 @@
u32 scratch;
u8 *buf;
@@ -24714,7 +25227,7 @@ diff -Nur linux-3.8.10.orig/drivers/mmc/host/sdhci.c linux-3.8.10/drivers/mmc/ho
blksize = host->data->blksz;
chunk = 0;
-@@ -398,19 +484,28 @@
+@@ -399,19 +485,28 @@
local_irq_restore(flags);
}
@@ -24746,7 +25259,7 @@ diff -Nur linux-3.8.10.orig/drivers/mmc/host/sdhci.c linux-3.8.10/drivers/mmc/ho
/*
* Some controllers (JMicron JMB38x) mess up the buffer bits
-@@ -421,7 +516,7 @@
+@@ -422,7 +517,7 @@
(host->data->blocks == 1))
mask = ~0;
@@ -24755,7 +25268,7 @@ diff -Nur linux-3.8.10.orig/drivers/mmc/host/sdhci.c linux-3.8.10/drivers/mmc/ho
if (host->quirks & SDHCI_QUIRK_PIO_NEEDS_DELAY)
udelay(100);
-@@ -433,9 +528,11 @@
+@@ -434,9 +529,11 @@
host->blocks--;
if (host->blocks == 0)
break;
@@ -24768,7 +25281,7 @@ diff -Nur linux-3.8.10.orig/drivers/mmc/host/sdhci.c linux-3.8.10/drivers/mmc/ho
}
static char *sdhci_kmap_atomic(struct scatterlist *sg, unsigned long *flags)
-@@ -708,7 +805,9 @@
+@@ -709,7 +806,9 @@
u32 pio_irqs = SDHCI_INT_DATA_AVAIL | SDHCI_INT_SPACE_AVAIL;
u32 dma_irqs = SDHCI_INT_DMA_END | SDHCI_INT_ADMA_ERROR;
@@ -24779,7 +25292,7 @@ diff -Nur linux-3.8.10.orig/drivers/mmc/host/sdhci.c linux-3.8.10/drivers/mmc/ho
sdhci_clear_set_irqs(host, pio_irqs, dma_irqs);
else
sdhci_clear_set_irqs(host, dma_irqs, pio_irqs);
-@@ -740,44 +839,25 @@
+@@ -741,44 +840,25 @@
host->data_early = 0;
host->data->bytes_xfered = 0;
@@ -24832,7 +25345,7 @@ diff -Nur linux-3.8.10.orig/drivers/mmc/host/sdhci.c linux-3.8.10/drivers/mmc/ho
int broken, i;
struct scatterlist *sg;
-@@ -836,7 +916,8 @@
+@@ -837,7 +917,8 @@
*/
WARN_ON(1);
host->flags &= ~SDHCI_REQ_USE_DMA;
@@ -24842,7 +25355,7 @@ diff -Nur linux-3.8.10.orig/drivers/mmc/host/sdhci.c linux-3.8.10/drivers/mmc/ho
WARN_ON(sg_cnt != 1);
sdhci_writel(host, sg_dma_address(data->sg),
SDHCI_DMA_ADDRESS);
-@@ -852,11 +933,13 @@
+@@ -853,11 +934,13 @@
if (host->version >= SDHCI_SPEC_200) {
ctrl = sdhci_readb(host, SDHCI_HOST_CONTROL);
ctrl &= ~SDHCI_CTRL_DMA_MASK;
@@ -24856,7 +25369,7 @@ diff -Nur linux-3.8.10.orig/drivers/mmc/host/sdhci.c linux-3.8.10/drivers/mmc/ho
sdhci_writeb(host, ctrl, SDHCI_HOST_CONTROL);
}
-@@ -908,7 +991,8 @@
+@@ -909,7 +992,8 @@
if (data->flags & MMC_DATA_READ)
mode |= SDHCI_TRNS_READ;
@@ -24866,7 +25379,7 @@ diff -Nur linux-3.8.10.orig/drivers/mmc/host/sdhci.c linux-3.8.10/drivers/mmc/ho
mode |= SDHCI_TRNS_DMA;
sdhci_writew(host, mode, SDHCI_TRANSFER_MODE);
-@@ -924,13 +1008,16 @@
+@@ -925,13 +1009,16 @@
host->data = NULL;
if (host->flags & SDHCI_REQ_USE_DMA) {
@@ -24887,7 +25400,7 @@ diff -Nur linux-3.8.10.orig/drivers/mmc/host/sdhci.c linux-3.8.10/drivers/mmc/ho
}
/*
-@@ -983,6 +1070,12 @@
+@@ -984,6 +1071,12 @@
if ((cmd->data != NULL) || (cmd->flags & MMC_RSP_BUSY))
mask |= SDHCI_DATA_INHIBIT;
@@ -24900,7 +25413,7 @@ diff -Nur linux-3.8.10.orig/drivers/mmc/host/sdhci.c linux-3.8.10/drivers/mmc/ho
/* We shouldn't wait for data inihibit for stop commands, even
though they might use busy signaling */
if (host->mrq->data && (cmd == host->mrq->data->stop))
-@@ -998,12 +1091,20 @@
+@@ -999,12 +1092,20 @@
return;
}
timeout--;
@@ -24921,7 +25434,7 @@ diff -Nur linux-3.8.10.orig/drivers/mmc/host/sdhci.c linux-3.8.10/drivers/mmc/ho
sdhci_prepare_data(host, cmd);
-@@ -1179,7 +1280,9 @@
+@@ -1220,7 +1321,9 @@
return;
}
timeout--;
@@ -24931,7 +25444,7 @@ diff -Nur linux-3.8.10.orig/drivers/mmc/host/sdhci.c linux-3.8.10/drivers/mmc/ho
}
clk |= SDHCI_CLOCK_CARD_EN;
-@@ -1266,7 +1369,7 @@
+@@ -1316,7 +1419,7 @@
sdhci_runtime_pm_get(host);
@@ -24940,7 +25453,7 @@ diff -Nur linux-3.8.10.orig/drivers/mmc/host/sdhci.c linux-3.8.10/drivers/mmc/ho
WARN_ON(host->mrq != NULL);
-@@ -1321,9 +1424,9 @@
+@@ -1374,9 +1477,9 @@
mmc->card->type == MMC_TYPE_MMC ?
MMC_SEND_TUNING_BLOCK_HS200 :
MMC_SEND_TUNING_BLOCK;
@@ -24952,7 +25465,7 @@ diff -Nur linux-3.8.10.orig/drivers/mmc/host/sdhci.c linux-3.8.10/drivers/mmc/ho
/* Restore original mmc_request structure */
host->mrq = mrq;
-@@ -1337,7 +1440,7 @@
+@@ -1390,7 +1493,7 @@
}
mmiowb();
@@ -24961,7 +25474,7 @@ diff -Nur linux-3.8.10.orig/drivers/mmc/host/sdhci.c linux-3.8.10/drivers/mmc/ho
}
static void sdhci_do_set_ios(struct sdhci_host *host, struct mmc_ios *ios)
-@@ -1346,7 +1449,7 @@
+@@ -1399,10 +1502,10 @@
int vdd_bit = -1;
u8 ctrl;
@@ -24969,17 +25482,33 @@ diff -Nur linux-3.8.10.orig/drivers/mmc/host/sdhci.c linux-3.8.10/drivers/mmc/ho
+ sdhci_spin_lock_irqsave(host, &flags);
if (host->flags & SDHCI_DEVICE_DEAD) {
- spin_unlock_irqrestore(&host->lock, flags);
-@@ -1413,7 +1516,7 @@
+- spin_unlock_irqrestore(&host->lock, flags);
++ sdhci_spin_unlock_irqrestore(host, flags);
+ if (host->vmmc && ios->power_mode == MMC_POWER_OFF)
+ mmc_regulator_set_ocr(host->mmc, host->vmmc, 0);
+ return;
+@@ -1429,9 +1532,9 @@
+ vdd_bit = sdhci_set_power(host, ios->vdd);
+
+ if (host->vmmc && vdd_bit != -1) {
+- spin_unlock_irqrestore(&host->lock, flags);
++ sdhci_spin_unlock_irqrestore(host, flags);
+ mmc_regulator_set_ocr(host->mmc, host->vmmc, vdd_bit);
+- spin_lock_irqsave(&host->lock, flags);
++ sdhci_spin_lock_irqsave(host, &flags);
+ }
+
+ if (host->ops->platform_send_init_74_clocks)
+@@ -1470,7 +1573,7 @@
else
ctrl &= ~SDHCI_CTRL_HISPD;
- if (host->version >= SDHCI_SPEC_300) {
+ if (host->version >= SDHCI_SPEC_300 && !(host->ops->uhs_broken)) {
u16 clk, ctrl_2;
- unsigned int clock;
-@@ -1503,7 +1606,7 @@
+ /* In case of UHS-I modes, set High Speed Enable */
+@@ -1569,7 +1672,7 @@
sdhci_reset(host, SDHCI_RESET_CMD | SDHCI_RESET_DATA);
mmiowb();
@@ -24988,7 +25517,7 @@ diff -Nur linux-3.8.10.orig/drivers/mmc/host/sdhci.c linux-3.8.10/drivers/mmc/ho
}
static void sdhci_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
-@@ -1520,7 +1623,7 @@
+@@ -1586,7 +1689,7 @@
unsigned long flags;
int is_readonly;
@@ -24997,7 +25526,7 @@ diff -Nur linux-3.8.10.orig/drivers/mmc/host/sdhci.c linux-3.8.10/drivers/mmc/ho
if (host->flags & SDHCI_DEVICE_DEAD)
is_readonly = 0;
-@@ -1530,7 +1633,7 @@
+@@ -1596,7 +1699,7 @@
is_readonly = !(sdhci_readl(host, SDHCI_PRESENT_STATE)
& SDHCI_WRITE_PROTECT);
@@ -25006,7 +25535,7 @@ diff -Nur linux-3.8.10.orig/drivers/mmc/host/sdhci.c linux-3.8.10/drivers/mmc/ho
/* This quirk needs to be replaced by a callback-function later */
return host->quirks & SDHCI_QUIRK_INVERTED_WRITE_PROTECT ?
-@@ -1603,9 +1706,9 @@
+@@ -1669,9 +1772,9 @@
struct sdhci_host *host = mmc_priv(mmc);
unsigned long flags;
@@ -25017,26 +25546,8 @@ diff -Nur linux-3.8.10.orig/drivers/mmc/host/sdhci.c linux-3.8.10/drivers/mmc/ho
+ sdhci_spin_unlock_irqrestore(host, flags);
}
- static int sdhci_do_3_3v_signal_voltage_switch(struct sdhci_host *host,
-@@ -1964,7 +2067,7 @@
- if (host->version < SDHCI_SPEC_300)
- return;
-
-- spin_lock_irqsave(&host->lock, flags);
-+ sdhci_spin_lock_irqsave(host, &flags);
-
- ctrl = sdhci_readw(host, SDHCI_HOST_CONTROL2);
-
-@@ -1982,7 +2085,7 @@
- host->flags &= ~SDHCI_PV_ENABLED;
- }
-
-- spin_unlock_irqrestore(&host->lock, flags);
-+ sdhci_spin_unlock_irqrestore(host, flags);
- }
-
- static void sdhci_enable_preset_value(struct mmc_host *mmc, bool enable)
-@@ -1999,7 +2102,7 @@
+ static int sdhci_do_start_signal_voltage_switch(struct sdhci_host *host,
+@@ -2015,7 +2118,7 @@
struct sdhci_host *host = mmc_priv(mmc);
unsigned long flags;
@@ -25045,7 +25556,7 @@ diff -Nur linux-3.8.10.orig/drivers/mmc/host/sdhci.c linux-3.8.10/drivers/mmc/ho
/* Check host->mrq first in case we are runtime suspended */
if (host->mrq &&
-@@ -2016,7 +2119,7 @@
+@@ -2032,7 +2135,7 @@
tasklet_schedule(&host->finish_tasklet);
}
@@ -25054,7 +25565,7 @@ diff -Nur linux-3.8.10.orig/drivers/mmc/host/sdhci.c linux-3.8.10/drivers/mmc/ho
}
static const struct mmc_host_ops sdhci_ops = {
-@@ -2054,14 +2157,14 @@
+@@ -2070,14 +2173,14 @@
host = (struct sdhci_host*)param;
@@ -25071,7 +25582,7 @@ diff -Nur linux-3.8.10.orig/drivers/mmc/host/sdhci.c linux-3.8.10/drivers/mmc/ho
return;
}
-@@ -2104,7 +2207,7 @@
+@@ -2115,7 +2218,7 @@
#endif
mmiowb();
@@ -25080,7 +25591,7 @@ diff -Nur linux-3.8.10.orig/drivers/mmc/host/sdhci.c linux-3.8.10/drivers/mmc/ho
mmc_request_done(host->mmc, mrq);
sdhci_runtime_pm_put(host);
-@@ -2117,11 +2220,11 @@
+@@ -2128,11 +2231,11 @@
host = (struct sdhci_host*)data;
@@ -25094,7 +25605,7 @@ diff -Nur linux-3.8.10.orig/drivers/mmc/host/sdhci.c linux-3.8.10/drivers/mmc/ho
sdhci_dumpregs(host);
if (host->data) {
-@@ -2138,7 +2241,7 @@
+@@ -2149,7 +2252,7 @@
}
mmiowb();
@@ -25103,7 +25614,7 @@ diff -Nur linux-3.8.10.orig/drivers/mmc/host/sdhci.c linux-3.8.10/drivers/mmc/ho
}
static void sdhci_tuning_timer(unsigned long data)
-@@ -2148,11 +2251,11 @@
+@@ -2159,11 +2262,11 @@
host = (struct sdhci_host *)data;
@@ -25117,7 +25628,7 @@ diff -Nur linux-3.8.10.orig/drivers/mmc/host/sdhci.c linux-3.8.10/drivers/mmc/ho
}
/*****************************************************************************\
-@@ -2166,10 +2269,13 @@
+@@ -2177,10 +2280,13 @@
BUG_ON(intmask == 0);
if (!host->cmd) {
@@ -25131,7 +25642,7 @@ diff -Nur linux-3.8.10.orig/drivers/mmc/host/sdhci.c linux-3.8.10/drivers/mmc/ho
return;
}
-@@ -2239,6 +2345,19 @@
+@@ -2250,6 +2356,19 @@
static void sdhci_show_adma_error(struct sdhci_host *host) { }
#endif
@@ -25151,7 +25662,7 @@ diff -Nur linux-3.8.10.orig/drivers/mmc/host/sdhci.c linux-3.8.10/drivers/mmc/ho
static void sdhci_data_irq(struct sdhci_host *host, u32 intmask)
{
u32 command;
-@@ -2268,23 +2387,39 @@
+@@ -2279,23 +2398,39 @@
}
}
@@ -25195,7 +25706,7 @@ diff -Nur linux-3.8.10.orig/drivers/mmc/host/sdhci.c linux-3.8.10/drivers/mmc/ho
pr_err("%s: ADMA error\n", mmc_hostname(host->mmc));
sdhci_show_adma_error(host);
host->data->error = -EIO;
-@@ -2292,11 +2427,18 @@
+@@ -2303,11 +2438,18 @@
host->ops->adma_workaround(host, intmask);
}
@@ -25218,7 +25729,7 @@ diff -Nur linux-3.8.10.orig/drivers/mmc/host/sdhci.c linux-3.8.10/drivers/mmc/ho
/*
* We currently don't do anything fancy with DMA
-@@ -2325,18 +2467,8 @@
+@@ -2336,18 +2478,8 @@
sdhci_writel(host, dmanow, SDHCI_DMA_ADDRESS);
}
@@ -25239,7 +25750,7 @@ diff -Nur linux-3.8.10.orig/drivers/mmc/host/sdhci.c linux-3.8.10/drivers/mmc/ho
}
}
-@@ -2347,10 +2479,10 @@
+@@ -2358,10 +2490,10 @@
u32 intmask, unexpected = 0;
int cardint = 0, max_loops = 16;
@@ -25252,7 +25763,7 @@ diff -Nur linux-3.8.10.orig/drivers/mmc/host/sdhci.c linux-3.8.10/drivers/mmc/ho
pr_warning("%s: got irq while runtime suspended\n",
mmc_hostname(host->mmc));
return IRQ_HANDLED;
-@@ -2392,6 +2524,22 @@
+@@ -2403,6 +2535,22 @@
tasklet_schedule(&host->card_tasklet);
}
@@ -25275,7 +25786,7 @@ diff -Nur linux-3.8.10.orig/drivers/mmc/host/sdhci.c linux-3.8.10/drivers/mmc/ho
if (intmask & SDHCI_INT_CMD_MASK) {
sdhci_writel(host, intmask & SDHCI_INT_CMD_MASK,
SDHCI_INT_STATUS);
-@@ -2406,7 +2554,13 @@
+@@ -2417,7 +2565,13 @@
intmask &= ~(SDHCI_INT_CMD_MASK | SDHCI_INT_DATA_MASK);
@@ -25290,7 +25801,7 @@ diff -Nur linux-3.8.10.orig/drivers/mmc/host/sdhci.c linux-3.8.10/drivers/mmc/ho
if (intmask & SDHCI_INT_BUS_POWER) {
pr_err("%s: Card is consuming too much power!\n",
-@@ -2432,7 +2586,7 @@
+@@ -2443,7 +2597,7 @@
if (intmask && --max_loops)
goto again;
out:
@@ -25299,7 +25810,7 @@ diff -Nur linux-3.8.10.orig/drivers/mmc/host/sdhci.c linux-3.8.10/drivers/mmc/ho
if (unexpected) {
pr_err("%s: Unexpected interrupt 0x%08x.\n",
-@@ -2495,7 +2649,8 @@
+@@ -2537,7 +2691,8 @@
{
int ret;
@@ -25309,7 +25820,7 @@ diff -Nur linux-3.8.10.orig/drivers/mmc/host/sdhci.c linux-3.8.10/drivers/mmc/ho
if (host->ops->enable_dma)
host->ops->enable_dma(host);
}
-@@ -2568,15 +2723,15 @@
+@@ -2604,15 +2759,15 @@
host->flags &= ~SDHCI_NEEDS_RETUNING;
}
@@ -25329,7 +25840,18 @@ diff -Nur linux-3.8.10.orig/drivers/mmc/host/sdhci.c linux-3.8.10/drivers/mmc/ho
return ret;
}
-@@ -2607,7 +2762,7 @@
+@@ -2638,16 +2793,16 @@
+ sdhci_do_start_signal_voltage_switch(host, &host->mmc->ios);
+ if ((host_flags & SDHCI_PV_ENABLED) &&
+ !(host->quirks2 & SDHCI_QUIRK2_PRESET_VALUE_BROKEN)) {
+- spin_lock_irqsave(&host->lock, flags);
++ sdhci_spin_lock_irqsave(host, &flags);
+ sdhci_enable_preset_value(host, true);
+- spin_unlock_irqrestore(&host->lock, flags);
++ sdhci_spin_unlock_irqrestore(host, flags);
+ }
+
+ /* Set the re-tuning expiration flag */
if (host->flags & SDHCI_USING_RETUNING_TIMER)
host->flags |= SDHCI_NEEDS_RETUNING;
@@ -25338,7 +25860,7 @@ diff -Nur linux-3.8.10.orig/drivers/mmc/host/sdhci.c linux-3.8.10/drivers/mmc/ho
host->runtime_suspended = false;
-@@ -2618,7 +2773,7 @@
+@@ -2658,7 +2813,7 @@
/* Enable Card Detection */
sdhci_enable_card_detection(host);
@@ -25347,7 +25869,7 @@ diff -Nur linux-3.8.10.orig/drivers/mmc/host/sdhci.c linux-3.8.10/drivers/mmc/ho
return ret;
}
-@@ -2713,14 +2868,16 @@
+@@ -2753,14 +2908,16 @@
host->flags &= ~SDHCI_USE_ADMA;
}
@@ -25366,7 +25888,7 @@ diff -Nur linux-3.8.10.orig/drivers/mmc/host/sdhci.c linux-3.8.10/drivers/mmc/ho
}
}
}
-@@ -2999,6 +3156,12 @@
+@@ -3043,6 +3200,12 @@
SDHCI_MAX_CURRENT_MULTIPLIER;
}
@@ -25379,7 +25901,7 @@ diff -Nur linux-3.8.10.orig/drivers/mmc/host/sdhci.c linux-3.8.10/drivers/mmc/ho
mmc->ocr_avail = ocr_avail;
mmc->ocr_avail_sdio = ocr_avail;
if (host->ocr_avail_sdio)
-@@ -3093,7 +3256,7 @@
+@@ -3137,7 +3300,7 @@
host->tuning_timer.function = sdhci_tuning_timer;
}
@@ -25388,7 +25910,7 @@ diff -Nur linux-3.8.10.orig/drivers/mmc/host/sdhci.c linux-3.8.10/drivers/mmc/ho
mmc_hostname(mmc), host);
if (ret) {
pr_err("%s: Failed to request IRQ %d: %d\n",
-@@ -3129,6 +3292,7 @@
+@@ -3173,6 +3336,7 @@
pr_info("%s: SDHCI controller on %s [%s] using %s\n",
mmc_hostname(mmc), host->hw_name, dev_name(mmc_dev(mmc)),
@@ -25396,7 +25918,7 @@ diff -Nur linux-3.8.10.orig/drivers/mmc/host/sdhci.c linux-3.8.10/drivers/mmc/ho
(host->flags & SDHCI_USE_ADMA) ? "ADMA" :
(host->flags & SDHCI_USE_SDMA) ? "DMA" : "PIO");
-@@ -3155,7 +3319,7 @@
+@@ -3200,7 +3364,7 @@
unsigned long flags;
if (dead) {
@@ -25405,7 +25927,7 @@ diff -Nur linux-3.8.10.orig/drivers/mmc/host/sdhci.c linux-3.8.10/drivers/mmc/ho
host->flags |= SDHCI_DEVICE_DEAD;
-@@ -3167,7 +3331,7 @@
+@@ -3212,7 +3376,7 @@
tasklet_schedule(&host->finish_tasklet);
}
@@ -25414,10 +25936,10 @@ diff -Nur linux-3.8.10.orig/drivers/mmc/host/sdhci.c linux-3.8.10/drivers/mmc/ho
}
sdhci_disable_card_detection(host);
-diff -Nur linux-3.8.10.orig/drivers/mmc/host/sdhci.h linux-3.8.10/drivers/mmc/host/sdhci.h
---- linux-3.8.10.orig/drivers/mmc/host/sdhci.h 2013-04-26 21:18:32.000000000 +0200
-+++ linux-3.8.10/drivers/mmc/host/sdhci.h 2013-05-06 12:54:52.000000000 +0200
-@@ -277,6 +277,20 @@
+diff -Nur linux-3.9.9/drivers/mmc/host/sdhci.h linux-rpi/drivers/mmc/host/sdhci.h
+--- linux-3.9.9/drivers/mmc/host/sdhci.h 2013-07-03 19:56:36.000000000 +0200
++++ linux-rpi/drivers/mmc/host/sdhci.h 2013-07-08 13:33:16.000000000 +0200
+@@ -289,6 +289,20 @@
void (*platform_reset_enter)(struct sdhci_host *host, u8 mask);
void (*platform_reset_exit)(struct sdhci_host *host, u8 mask);
int (*set_uhs_signaling)(struct sdhci_host *host, unsigned int uhs);
@@ -25438,7 +25960,7 @@ diff -Nur linux-3.8.10.orig/drivers/mmc/host/sdhci.h linux-3.8.10/drivers/mmc/ho
void (*hw_reset)(struct sdhci_host *host);
void (*platform_suspend)(struct sdhci_host *host);
void (*platform_resume)(struct sdhci_host *host);
-@@ -387,9 +401,38 @@
+@@ -399,9 +413,38 @@
extern void sdhci_enable_irq_wakeups(struct sdhci_host *host);
#endif
@@ -25477,18 +25999,18 @@ diff -Nur linux-3.8.10.orig/drivers/mmc/host/sdhci.h linux-3.8.10/drivers/mmc/ho
+
+
#endif /* __SDHCI_HW_H */
-diff -Nur linux-3.8.10.orig/drivers/net/usb/smsc95xx.c linux-3.8.10/drivers/net/usb/smsc95xx.c
---- linux-3.8.10.orig/drivers/net/usb/smsc95xx.c 2013-04-26 21:18:32.000000000 +0200
-+++ linux-3.8.10/drivers/net/usb/smsc95xx.c 2013-05-06 12:54:53.000000000 +0200
-@@ -54,6 +54,7 @@
- #define FEATURE_8_WAKEUP_FILTERS (0x01)
- #define FEATURE_PHY_NLP_CROSSOVER (0x02)
- #define FEATURE_AUTOSUSPEND (0x04)
+diff -Nur linux-3.9.9/drivers/net/usb/smsc95xx.c linux-rpi/drivers/net/usb/smsc95xx.c
+--- linux-3.9.9/drivers/net/usb/smsc95xx.c 2013-07-03 19:56:36.000000000 +0200
++++ linux-rpi/drivers/net/usb/smsc95xx.c 2013-07-08 13:33:16.000000000 +0200
+@@ -61,6 +61,7 @@
+ #define SUSPEND_SUSPEND3 (0x08)
+ #define SUSPEND_ALLMODES (SUSPEND_SUSPEND0 | SUSPEND_SUSPEND1 | \
+ SUSPEND_SUSPEND2 | SUSPEND_SUSPEND3)
+#define MAC_ADDR_LEN (6)
struct smsc95xx_priv {
u32 mac_cr;
-@@ -68,6 +69,10 @@
+@@ -76,6 +77,10 @@
module_param(turbo_mode, bool, 0644);
MODULE_PARM_DESC(turbo_mode, "Enable multiple frames per Rx transaction");
@@ -25499,7 +26021,7 @@ diff -Nur linux-3.8.10.orig/drivers/net/usb/smsc95xx.c linux-3.8.10/drivers/net/
static int __must_check __smsc95xx_read_reg(struct usbnet *dev, u32 index,
u32 *data, int in_pm)
{
-@@ -775,8 +780,59 @@
+@@ -765,8 +770,59 @@
return generic_mii_ioctl(&dev->mii, if_mii(rq), cmd, NULL);
}
@@ -25559,9 +26081,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/usb/smsc95xx.c linux-3.8.10/drivers/net/
/* try reading mac address from EEPROM */
if (smsc95xx_read_eeprom(dev, EEPROM_MAC_OFFSET, ETH_ALEN,
dev->net->dev_addr) == 0) {
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/Kconfig linux-3.8.10/drivers/net/wireless/Kconfig
---- linux-3.8.10.orig/drivers/net/wireless/Kconfig 2013-04-26 21:18:32.000000000 +0200
-+++ linux-3.8.10/drivers/net/wireless/Kconfig 2013-05-06 12:54:59.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/Kconfig linux-rpi/drivers/net/wireless/Kconfig
+--- linux-3.9.9/drivers/net/wireless/Kconfig 2013-07-03 19:56:36.000000000 +0200
++++ linux-rpi/drivers/net/wireless/Kconfig 2013-07-08 13:33:16.000000000 +0200
@@ -276,9 +276,10 @@
source "drivers/net/wireless/orinoco/Kconfig"
source "drivers/net/wireless/p54/Kconfig"
@@ -25574,9 +26096,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/Kconfig linux-3.8.10/drivers/ne
+source "drivers/net/wireless/rtl8192cu/Kconfig"
endif # WLAN
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/Makefile linux-3.8.10/drivers/net/wireless/Makefile
---- linux-3.8.10.orig/drivers/net/wireless/Makefile 2013-04-26 21:18:32.000000000 +0200
-+++ linux-3.8.10/drivers/net/wireless/Makefile 2013-05-06 12:54:59.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/Makefile linux-rpi/drivers/net/wireless/Makefile
+--- linux-3.9.9/drivers/net/wireless/Makefile 2013-07-03 19:56:36.000000000 +0200
++++ linux-rpi/drivers/net/wireless/Makefile 2013-07-08 13:33:16.000000000 +0200
@@ -24,7 +24,7 @@
obj-$(CONFIG_ZD1211RW) += zd1211rw/
obj-$(CONFIG_RTL8180) += rtl818x/
@@ -25591,9 +26113,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/Makefile linux-3.8.10/drivers/n
obj-$(CONFIG_BRCMFMAC) += brcm80211/
obj-$(CONFIG_BRCMSMAC) += brcm80211/
+obj-$(CONFIG_RTL8192CU) += rtl8192cu/
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/clean linux-3.8.10/drivers/net/wireless/rtl8192cu/clean
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/clean 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/clean 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/clean linux-rpi/drivers/net/wireless/rtl8192cu/clean
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/clean 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/clean 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,9 @@
+#!/bin/bash
+rmmod 8192cu
@@ -25605,9 +26127,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/clean linux-3.8.10/dr
+rmmod rtl8192c_common
+rmmod rtlwifi
\ Kein Zeilenumbruch am Dateiende.
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/efuse/rtw_efuse.c linux-3.8.10/drivers/net/wireless/rtl8192cu/core/efuse/rtw_efuse.c
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/efuse/rtw_efuse.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/core/efuse/rtw_efuse.c 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/core/efuse/rtw_efuse.c linux-rpi/drivers/net/wireless/rtl8192cu/core/efuse/rtw_efuse.c
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/core/efuse/rtw_efuse.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/core/efuse/rtw_efuse.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,1097 @@
+/******************************************************************************
+ *
@@ -26706,9 +27228,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/efuse/rtw_efuse.
+#endif //PLATFORM_LINUX
+
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/rtw_br_ext.c linux-3.8.10/drivers/net/wireless/rtl8192cu/core/rtw_br_ext.c
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/rtw_br_ext.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/core/rtw_br_ext.c 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/core/rtw_br_ext.c linux-rpi/drivers/net/wireless/rtl8192cu/core/rtw_br_ext.c
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/core/rtw_br_ext.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/core/rtw_br_ext.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,1694 @@
+/******************************************************************************
+ *
@@ -28404,9 +28926,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/rtw_br_ext.c lin
+}
+
+#endif // CONFIG_BR_EXT
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/rtw_cmd.c linux-3.8.10/drivers/net/wireless/rtl8192cu/core/rtw_cmd.c
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/rtw_cmd.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/core/rtw_cmd.c 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/core/rtw_cmd.c linux-rpi/drivers/net/wireless/rtl8192cu/core/rtw_cmd.c
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/core/rtw_cmd.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/core/rtw_cmd.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,2574 @@
+/******************************************************************************
+ *
@@ -30982,9 +31504,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/rtw_cmd.c linux-
+
+}
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/rtw_debug.c linux-3.8.10/drivers/net/wireless/rtl8192cu/core/rtw_debug.c
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/rtw_debug.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/core/rtw_debug.c 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/core/rtw_debug.c linux-rpi/drivers/net/wireless/rtl8192cu/core/rtw_debug.c
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/core/rtw_debug.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/core/rtw_debug.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,709 @@
+/******************************************************************************
+ *
@@ -31695,9 +32217,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/rtw_debug.c linu
+
+#endif
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/rtw_eeprom.c linux-3.8.10/drivers/net/wireless/rtl8192cu/core/rtw_eeprom.c
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/rtw_eeprom.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/core/rtw_eeprom.c 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/core/rtw_eeprom.c linux-rpi/drivers/net/wireless/rtl8192cu/core/rtw_eeprom.c
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/core/rtw_eeprom.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/core/rtw_eeprom.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,424 @@
+/******************************************************************************
+ *
@@ -32123,9 +32645,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/rtw_eeprom.c lin
+_func_exit_;
+}
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/rtw_ieee80211.c linux-3.8.10/drivers/net/wireless/rtl8192cu/core/rtw_ieee80211.c
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/rtw_ieee80211.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/core/rtw_ieee80211.c 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/core/rtw_ieee80211.c linux-rpi/drivers/net/wireless/rtl8192cu/core/rtw_ieee80211.c
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/core/rtw_ieee80211.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/core/rtw_ieee80211.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,1486 @@
+/******************************************************************************
+ *
@@ -33613,9 +34135,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/rtw_ieee80211.c
+#endif // CONFIG_WFD
+#endif // CONFIG_P2P
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/rtw_io.c linux-3.8.10/drivers/net/wireless/rtl8192cu/core/rtw_io.c
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/rtw_io.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/core/rtw_io.c 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/core/rtw_io.c linux-rpi/drivers/net/wireless/rtl8192cu/core/rtw_io.c
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/core/rtw_io.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/core/rtw_io.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,490 @@
+/******************************************************************************
+ *
@@ -34107,9 +34629,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/rtw_io.c linux-3
+#endif
+
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/rtw_ioctl_query.c linux-3.8.10/drivers/net/wireless/rtl8192cu/core/rtw_ioctl_query.c
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/rtw_ioctl_query.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/core/rtw_ioctl_query.c 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/core/rtw_ioctl_query.c linux-rpi/drivers/net/wireless/rtl8192cu/core/rtw_ioctl_query.c
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/core/rtw_ioctl_query.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/core/rtw_ioctl_query.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,197 @@
+/******************************************************************************
+ *
@@ -34308,9 +34830,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/rtw_ioctl_query.
+}
+#endif
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/rtw_ioctl_rtl.c linux-3.8.10/drivers/net/wireless/rtl8192cu/core/rtw_ioctl_rtl.c
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/rtw_ioctl_rtl.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/core/rtw_ioctl_rtl.c 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/core/rtw_ioctl_rtl.c linux-rpi/drivers/net/wireless/rtl8192cu/core/rtw_ioctl_rtl.c
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/core/rtw_ioctl_rtl.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/core/rtw_ioctl_rtl.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,1032 @@
+/******************************************************************************
+ *
@@ -35344,9 +35866,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/rtw_ioctl_rtl.c
+ return status;
+}
+//************** oid_rtl_seg_03_00 section end **************
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/rtw_ioctl_set.c linux-3.8.10/drivers/net/wireless/rtl8192cu/core/rtw_ioctl_set.c
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/rtw_ioctl_set.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/core/rtw_ioctl_set.c 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/core/rtw_ioctl_set.c linux-rpi/drivers/net/wireless/rtl8192cu/core/rtw_ioctl_set.c
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/core/rtw_ioctl_set.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/core/rtw_ioctl_set.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,1426 @@
+/******************************************************************************
+ *
@@ -36774,9 +37296,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/rtw_ioctl_set.c
+ return rtw_set_channel_plan(adapter, channel_plan);
+}
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/rtw_iol.c linux-3.8.10/drivers/net/wireless/rtl8192cu/core/rtw_iol.c
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/rtw_iol.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/core/rtw_iol.c 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/core/rtw_iol.c linux-rpi/drivers/net/wireless/rtl8192cu/core/rtw_iol.c
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/core/rtw_iol.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/core/rtw_iol.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,266 @@
+/******************************************************************************
+ *
@@ -37044,9 +37566,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/rtw_iol.c linux-
+
+#endif //CONFIG_IOL
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/rtw_mlme.c linux-3.8.10/drivers/net/wireless/rtl8192cu/core/rtw_mlme.c
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/rtw_mlme.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/core/rtw_mlme.c 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/core/rtw_mlme.c linux-rpi/drivers/net/wireless/rtl8192cu/core/rtw_mlme.c
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/core/rtw_mlme.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/core/rtw_mlme.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,3555 @@
+/******************************************************************************
+ *
@@ -40603,9 +41125,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/rtw_mlme.c linux
+}
+#endif
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/rtw_mlme_ext.c linux-3.8.10/drivers/net/wireless/rtl8192cu/core/rtw_mlme_ext.c
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/rtw_mlme_ext.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/core/rtw_mlme_ext.c 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/core/rtw_mlme_ext.c linux-rpi/drivers/net/wireless/rtl8192cu/core/rtw_mlme_ext.c
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/core/rtw_mlme_ext.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/core/rtw_mlme_ext.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,12270 @@
+/******************************************************************************
+ *
@@ -52877,9 +53399,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/rtw_mlme_ext.c l
+#endif //CONFIG_TDLS
+
+}
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/rtw_mp.c linux-3.8.10/drivers/net/wireless/rtl8192cu/core/rtw_mp.c
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/rtw_mp.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/core/rtw_mp.c 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/core/rtw_mp.c linux-rpi/drivers/net/wireless/rtl8192cu/core/rtw_mp.c
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/core/rtw_mp.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/core/rtw_mp.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,1317 @@
+/******************************************************************************
+ *
@@ -54198,9 +54720,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/rtw_mp.c linux-3
+
+#endif
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/rtw_mp_ioctl.c linux-3.8.10/drivers/net/wireless/rtl8192cu/core/rtw_mp_ioctl.c
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/rtw_mp_ioctl.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/core/rtw_mp_ioctl.c 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/core/rtw_mp_ioctl.c linux-rpi/drivers/net/wireless/rtl8192cu/core/rtw_mp_ioctl.c
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/core/rtw_mp_ioctl.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/core/rtw_mp_ioctl.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,2841 @@
+/******************************************************************************
+ *
@@ -57043,9 +57565,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/rtw_mp_ioctl.c l
+#endif
+}
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/rtw_p2p.c linux-3.8.10/drivers/net/wireless/rtl8192cu/core/rtw_p2p.c
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/rtw_p2p.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/core/rtw_p2p.c 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/core/rtw_p2p.c linux-rpi/drivers/net/wireless/rtl8192cu/core/rtw_p2p.c
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/core/rtw_p2p.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/core/rtw_p2p.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,3498 @@
+/******************************************************************************
+ *
@@ -60545,9 +61067,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/rtw_p2p.c linux-
+
+#endif //CONFIG_P2P
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/rtw_pwrctrl.c linux-3.8.10/drivers/net/wireless/rtl8192cu/core/rtw_pwrctrl.c
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/rtw_pwrctrl.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/core/rtw_pwrctrl.c 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/core/rtw_pwrctrl.c linux-rpi/drivers/net/wireless/rtl8192cu/core/rtw_pwrctrl.c
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/core/rtw_pwrctrl.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/core/rtw_pwrctrl.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,1227 @@
+/******************************************************************************
+ *
@@ -61776,9 +62298,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/rtw_pwrctrl.c li
+}
+
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/rtw_recv.c linux-3.8.10/drivers/net/wireless/rtl8192cu/core/rtw_recv.c
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/rtw_recv.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/core/rtw_recv.c 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/core/rtw_recv.c linux-rpi/drivers/net/wireless/rtl8192cu/core/rtw_recv.c
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/core/rtw_recv.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/core/rtw_recv.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,4597 @@
+/******************************************************************************
+ *
@@ -66377,9 +66899,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/rtw_recv.c linux
+
+
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/rtw_rf.c linux-3.8.10/drivers/net/wireless/rtl8192cu/core/rtw_rf.c
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/rtw_rf.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/core/rtw_rf.c 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/core/rtw_rf.c linux-rpi/drivers/net/wireless/rtl8192cu/core/rtw_rf.c
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/core/rtw_rf.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/core/rtw_rf.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,96 @@
+/******************************************************************************
+ *
@@ -66477,9 +66999,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/rtw_rf.c linux-3
+ return ch;
+}
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/rtw_security.c linux-3.8.10/drivers/net/wireless/rtl8192cu/core/rtw_security.c
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/rtw_security.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/core/rtw_security.c 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/core/rtw_security.c linux-rpi/drivers/net/wireless/rtl8192cu/core/rtw_security.c
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/core/rtw_security.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/core/rtw_security.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,2831 @@
+/******************************************************************************
+ *
@@ -69312,9 +69834,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/rtw_security.c l
+
+}
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/rtw_sta_mgt.c linux-3.8.10/drivers/net/wireless/rtl8192cu/core/rtw_sta_mgt.c
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/rtw_sta_mgt.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/core/rtw_sta_mgt.c 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/core/rtw_sta_mgt.c linux-rpi/drivers/net/wireless/rtl8192cu/core/rtw_sta_mgt.c
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/core/rtw_sta_mgt.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/core/rtw_sta_mgt.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,720 @@
+/******************************************************************************
+ *
@@ -70036,9 +70558,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/rtw_sta_mgt.c li
+ return _TRUE;
+}
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/rtw_wlan_util.c linux-3.8.10/drivers/net/wireless/rtl8192cu/core/rtw_wlan_util.c
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/rtw_wlan_util.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/core/rtw_wlan_util.c 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/core/rtw_wlan_util.c linux-rpi/drivers/net/wireless/rtl8192cu/core/rtw_wlan_util.c
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/core/rtw_wlan_util.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/core/rtw_wlan_util.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,1848 @@
+/******************************************************************************
+ *
@@ -71888,9 +72410,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/rtw_wlan_util.c
+}
+#endif
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/rtw_xmit.c linux-3.8.10/drivers/net/wireless/rtl8192cu/core/rtw_xmit.c
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/rtw_xmit.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/core/rtw_xmit.c 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/core/rtw_xmit.c linux-rpi/drivers/net/wireless/rtl8192cu/core/rtw_xmit.c
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/core/rtw_xmit.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/core/rtw_xmit.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,4277 @@
+/******************************************************************************
+ *
@@ -76169,9 +76691,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/core/rtw_xmit.c linux
+
+#endif
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/hal/hal_init.c linux-3.8.10/drivers/net/wireless/rtl8192cu/hal/hal_init.c
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/hal/hal_init.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/hal/hal_init.c 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/hal/hal_init.c linux-rpi/drivers/net/wireless/rtl8192cu/hal/hal_init.c
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/hal/hal_init.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/hal/hal_init.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,120 @@
+/******************************************************************************
+ *
@@ -76293,9 +76815,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/hal/hal_init.c linux-
+ padapter->HalFunc.sreset_init_value(padapter);
+}
+#endif
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_cmd.c linux-3.8.10/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_cmd.c
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_cmd.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_cmd.c 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_cmd.c linux-rpi/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_cmd.c
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_cmd.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_cmd.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,1361 @@
+/******************************************************************************
+ *
@@ -77658,9 +78180,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c
+
+
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_dm.c linux-3.8.10/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_dm.c
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_dm.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_dm.c 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_dm.c linux-rpi/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_dm.c
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_dm.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_dm.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,4794 @@
+/******************************************************************************
+ *
@@ -82456,9 +82978,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c
+
+}
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_hal_init.c linux-3.8.10/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_hal_init.c
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_hal_init.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_hal_init.c 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_hal_init.c linux-rpi/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_hal_init.c
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_hal_init.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_hal_init.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,3642 @@
+/******************************************************************************
+ *
@@ -86102,9 +86624,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c
+#endif
+}
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_mp.c linux-3.8.10/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_mp.c
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_mp.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_mp.c 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_mp.c linux-rpi/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_mp.c
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_mp.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_mp.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,1230 @@
+/******************************************************************************
+ *
@@ -87336,9 +87858,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c
+}
+
+#endif // CONFIG_MP_INCLUDE
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_phycfg.c linux-3.8.10/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_phycfg.c
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_phycfg.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_phycfg.c 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_phycfg.c linux-rpi/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_phycfg.c
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_phycfg.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_phycfg.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,5583 @@
+/******************************************************************************
+ *
@@ -92923,9 +93445,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c
+}
+#endif
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_rf6052.c linux-3.8.10/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_rf6052.c
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_rf6052.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_rf6052.c 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_rf6052.c linux-rpi/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_rf6052.c
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_rf6052.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_rf6052.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,1047 @@
+/******************************************************************************
+ *
@@ -93974,9 +94496,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c
+
+/* End of HalRf6052.c */
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_rxdesc.c linux-3.8.10/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_rxdesc.c
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_rxdesc.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_rxdesc.c 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_rxdesc.c linux-rpi/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_rxdesc.c
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_rxdesc.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_rxdesc.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,767 @@
+/******************************************************************************
+ *
@@ -94745,9 +95267,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c
+}
+
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_sreset.c linux-3.8.10/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_sreset.c
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_sreset.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_sreset.c 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_sreset.c linux-rpi/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_sreset.c
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_sreset.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c_sreset.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,293 @@
+/******************************************************************************
+ *
@@ -95042,9 +95564,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/rtl8192c
+#endif
+
+#endif
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/Hal8192CUHWImg.c linux-3.8.10/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/Hal8192CUHWImg.c
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/Hal8192CUHWImg.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/Hal8192CUHWImg.c 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/Hal8192CUHWImg.c linux-rpi/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/Hal8192CUHWImg.c
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/Hal8192CUHWImg.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/Hal8192CUHWImg.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,9662 @@
+/******************************************************************************
+ *
@@ -104708,9 +105230,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/Hal8
+0xc78,0x621f001e,
+};
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/Hal8192CUHWImg_wowlan.c linux-3.8.10/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/Hal8192CUHWImg_wowlan.c
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/Hal8192CUHWImg_wowlan.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/Hal8192CUHWImg_wowlan.c 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/Hal8192CUHWImg_wowlan.c linux-rpi/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/Hal8192CUHWImg_wowlan.c
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/Hal8192CUHWImg_wowlan.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/Hal8192CUHWImg_wowlan.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,2564 @@
+/******************************************************************************
+ *
@@ -107276,9 +107798,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/Hal8
+
+
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/rtl8192cu_led.c linux-3.8.10/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/rtl8192cu_led.c
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/rtl8192cu_led.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/rtl8192cu_led.c 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/rtl8192cu_led.c linux-rpi/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/rtl8192cu_led.c
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/rtl8192cu_led.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/rtl8192cu_led.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,2668 @@
+/******************************************************************************
+ *
@@ -109948,9 +110470,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/rtl8
+ DeInitLed871x( &(ledpriv->SwLed1) );
+}
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/rtl8192cu_recv.c linux-3.8.10/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/rtl8192cu_recv.c
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/rtl8192cu_recv.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/rtl8192cu_recv.c 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/rtl8192cu_recv.c linux-rpi/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/rtl8192cu_recv.c
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/rtl8192cu_recv.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/rtl8192cu_recv.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,380 @@
+/******************************************************************************
+ *
@@ -110332,9 +110854,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/rtl8
+
+}
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/rtl8192cu_xmit.c linux-3.8.10/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/rtl8192cu_xmit.c
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/rtl8192cu_xmit.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/rtl8192cu_xmit.c 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/rtl8192cu_xmit.c linux-rpi/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/rtl8192cu_xmit.c
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/rtl8192cu_xmit.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/rtl8192cu_xmit.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,1322 @@
+/******************************************************************************
+ *
@@ -111658,9 +112180,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/rtl8
+}
+#endif
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_halinit.c linux-3.8.10/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_halinit.c
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_halinit.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_halinit.c 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_halinit.c linux-rpi/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_halinit.c
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_halinit.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_halinit.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,6041 @@
+/******************************************************************************
+ *
@@ -117703,9 +118225,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_
+
+}
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_ops_ce.c linux-3.8.10/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_ops_ce.c
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_ops_ce.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_ops_ce.c 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_ops_ce.c linux-rpi/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_ops_ce.c
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_ops_ce.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_ops_ce.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,1208 @@
+/******************************************************************************
+ *
@@ -118915,9 +119437,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_
+}
+
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_ops_linux.c linux-3.8.10/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_ops_linux.c
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_ops_linux.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_ops_linux.c 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_ops_linux.c linux-rpi/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_ops_linux.c
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_ops_linux.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_ops_linux.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,2045 @@
+/******************************************************************************
+ *
@@ -120964,9 +121486,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_
+
+}
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_ops_xp.c linux-3.8.10/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_ops_xp.c
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_ops_xp.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_ops_xp.c 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_ops_xp.c linux-rpi/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_ops_xp.c
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_ops_xp.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_ops_xp.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,1266 @@
+/******************************************************************************
+ *
@@ -122234,18 +122756,18 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_
+
+}
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/ifcfg-wlan0 linux-3.8.10/drivers/net/wireless/rtl8192cu/ifcfg-wlan0
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/ifcfg-wlan0 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/ifcfg-wlan0 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/ifcfg-wlan0 linux-rpi/drivers/net/wireless/rtl8192cu/ifcfg-wlan0
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/ifcfg-wlan0 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/ifcfg-wlan0 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,4 @@
+#DHCP client
+DEVICE=wlan0
+BOOTPROTO=dhcp
+ONBOOT=yes
\ Kein Zeilenumbruch am Dateiende.
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/autoconf.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/autoconf.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/autoconf.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/autoconf.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/autoconf.h linux-rpi/drivers/net/wireless/rtl8192cu/include/autoconf.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/autoconf.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/autoconf.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,288 @@
+/******************************************************************************
+ *
@@ -122535,9 +123057,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/autoconf.h li
+#define DBG_CONFIG_ERROR_DETECT
+//#define DBG_CONFIG_ERROR_RESET
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/basic_types.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/basic_types.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/basic_types.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/basic_types.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/basic_types.h linux-rpi/drivers/net/wireless/rtl8192cu/include/basic_types.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/basic_types.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/basic_types.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,276 @@
+/******************************************************************************
+ *
@@ -122815,9 +123337,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/basic_types.h
+
+#endif //__BASIC_TYPES_H__
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/byteorder/big_endian.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/byteorder/big_endian.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/byteorder/big_endian.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/byteorder/big_endian.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/byteorder/big_endian.h linux-rpi/drivers/net/wireless/rtl8192cu/include/byteorder/big_endian.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/byteorder/big_endian.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/byteorder/big_endian.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,87 @@
+/******************************************************************************
+ *
@@ -122906,9 +123428,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/byteorder/big
+#include <byteorder/generic.h>
+
+#endif /* _LINUX_BYTEORDER_BIG_ENDIAN_H */
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/byteorder/generic.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/byteorder/generic.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/byteorder/generic.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/byteorder/generic.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/byteorder/generic.h linux-rpi/drivers/net/wireless/rtl8192cu/include/byteorder/generic.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/byteorder/generic.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/byteorder/generic.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,209 @@
+/******************************************************************************
+ *
@@ -123119,9 +123641,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/byteorder/gen
+#endif
+
+#endif /* _LINUX_BYTEORDER_GENERIC_H */
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/byteorder/little_endian.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/byteorder/little_endian.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/byteorder/little_endian.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/byteorder/little_endian.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/byteorder/little_endian.h linux-rpi/drivers/net/wireless/rtl8192cu/include/byteorder/little_endian.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/byteorder/little_endian.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/byteorder/little_endian.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,89 @@
+/******************************************************************************
+ *
@@ -123212,9 +123734,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/byteorder/lit
+#include <byteorder/generic.h>
+
+#endif /* _LINUX_BYTEORDER_LITTLE_ENDIAN_H */
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/byteorder/swabb.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/byteorder/swabb.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/byteorder/swabb.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/byteorder/swabb.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/byteorder/swabb.h linux-rpi/drivers/net/wireless/rtl8192cu/include/byteorder/swabb.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/byteorder/swabb.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/byteorder/swabb.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,157 @@
+/******************************************************************************
+ *
@@ -123373,9 +123895,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/byteorder/swa
+#endif
+
+#endif /* _LINUX_BYTEORDER_SWABB_H */
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/byteorder/swab.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/byteorder/swab.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/byteorder/swab.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/byteorder/swab.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/byteorder/swab.h linux-rpi/drivers/net/wireless/rtl8192cu/include/byteorder/swab.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/byteorder/swab.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/byteorder/swab.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,133 @@
+/******************************************************************************
+ *
@@ -123510,9 +124032,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/byteorder/swa
+#endif
+
+#endif /* _LINUX_BYTEORDER_SWAB_H */
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/circ_buf.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/circ_buf.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/circ_buf.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/circ_buf.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/circ_buf.h linux-rpi/drivers/net/wireless/rtl8192cu/include/circ_buf.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/circ_buf.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/circ_buf.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,27 @@
+/******************************************************************************
+ *
@@ -123541,9 +124063,9 @@ diff -Nur linux-3.8.10.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-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/cmd_osdep.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/cmd_osdep.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/cmd_osdep.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/cmd_osdep.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/cmd_osdep.h linux-rpi/drivers/net/wireless/rtl8192cu/include/cmd_osdep.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/cmd_osdep.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/cmd_osdep.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,36 @@
+/******************************************************************************
+ *
@@ -123581,9 +124103,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/cmd_osdep.h l
+
+#endif
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/drv_conf.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/drv_conf.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/drv_conf.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/drv_conf.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/drv_conf.h linux-rpi/drivers/net/wireless/rtl8192cu/include/drv_conf.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/drv_conf.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/drv_conf.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,78 @@
+/******************************************************************************
+ *
@@ -123663,9 +124185,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/drv_conf.h li
+
+#endif // __DRV_CONF_H__
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/drv_types_ce.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/drv_types_ce.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/drv_types_ce.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/drv_types_ce.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/drv_types_ce.h linux-rpi/drivers/net/wireless/rtl8192cu/include/drv_types_ce.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/drv_types_ce.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/drv_types_ce.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,92 @@
+/******************************************************************************
+ *
@@ -123759,9 +124281,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/drv_types_ce.
+
+
+#endif
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/drv_types.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/drv_types.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/drv_types.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/drv_types.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/drv_types.h linux-rpi/drivers/net/wireless/rtl8192cu/include/drv_types.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/drv_types.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/drv_types.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,555 @@
+/******************************************************************************
+ *
@@ -124318,9 +124840,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/drv_types.h l
+
+#endif //__DRV_TYPES_H__
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/drv_types_linux.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/drv_types_linux.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/drv_types_linux.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/drv_types_linux.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/drv_types_linux.h linux-rpi/drivers/net/wireless/rtl8192cu/include/drv_types_linux.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/drv_types_linux.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/drv_types_linux.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,25 @@
+/******************************************************************************
+ *
@@ -124347,9 +124869,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/drv_types_lin
+
+#endif
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/drv_types_xp.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/drv_types_xp.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/drv_types_xp.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/drv_types_xp.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/drv_types_xp.h linux-rpi/drivers/net/wireless/rtl8192cu/include/drv_types_xp.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/drv_types_xp.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/drv_types_xp.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,95 @@
+/******************************************************************************
+ *
@@ -124446,9 +124968,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/drv_types_xp.
+
+#endif
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/ethernet.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/ethernet.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/ethernet.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/ethernet.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/ethernet.h linux-rpi/drivers/net/wireless/rtl8192cu/include/ethernet.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/ethernet.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/ethernet.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,41 @@
+/******************************************************************************
+ *
@@ -124491,9 +125013,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/ethernet.h li
+
+
+#endif // #ifndef __INC_ETHERNET_H
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/farray.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/farray.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/farray.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/farray.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/farray.h linux-rpi/drivers/net/wireless/rtl8192cu/include/farray.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/farray.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/farray.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,31480 @@
+unsigned char f_array[125912] = {
+0x12,0x87,0x09,0x10,
@@ -155975,9 +156497,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/farray.h linu
+0x08,0xFB,0x90,0xB8,
+0xFF,0xFF,0xFF,0xFF,
+};
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/h2clbk.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/h2clbk.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/h2clbk.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/h2clbk.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/h2clbk.h linux-rpi/drivers/net/wireless/rtl8192cu/include/h2clbk.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/h2clbk.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/h2clbk.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,35 @@
+/******************************************************************************
+ *
@@ -156014,9 +156536,9 @@ diff -Nur linux-3.8.10.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-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/Hal8192CEHWImg.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/Hal8192CEHWImg.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/Hal8192CEHWImg.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/Hal8192CEHWImg.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/Hal8192CEHWImg.h linux-rpi/drivers/net/wireless/rtl8192cu/include/Hal8192CEHWImg.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/Hal8192CEHWImg.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/Hal8192CEHWImg.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,81 @@
+/******************************************************************************
+ *
@@ -156099,9 +156621,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/Hal8192CEHWIm
+extern u32 Rtl8192CEAGCTAB_1TArray[AGCTAB_1TArrayLength];
+
+#endif //__INC_HAL8192CE_FW_IMG_H
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/Hal8192CPhyCfg.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/Hal8192CPhyCfg.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/Hal8192CPhyCfg.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/Hal8192CPhyCfg.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/Hal8192CPhyCfg.h linux-rpi/drivers/net/wireless/rtl8192cu/include/Hal8192CPhyCfg.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/Hal8192CPhyCfg.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/Hal8192CPhyCfg.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,451 @@
+/******************************************************************************
+ *
@@ -156554,9 +157076,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/Hal8192CPhyCf
+
+#endif // __INC_HAL8192CPHYCFG_H
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/Hal8192CPhyReg.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/Hal8192CPhyReg.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/Hal8192CPhyReg.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/Hal8192CPhyReg.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/Hal8192CPhyReg.h linux-rpi/drivers/net/wireless/rtl8192cu/include/Hal8192CPhyReg.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/Hal8192CPhyReg.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/Hal8192CPhyReg.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,1102 @@
+/******************************************************************************
+ *
@@ -157660,9 +158182,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/Hal8192CPhyRe
+
+#endif //__INC_HAL8192SPHYREG_H
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/Hal8192CUHWImg.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/Hal8192CUHWImg.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/Hal8192CUHWImg.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/Hal8192CUHWImg.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/Hal8192CUHWImg.h linux-rpi/drivers/net/wireless/rtl8192cu/include/Hal8192CUHWImg.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/Hal8192CUHWImg.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/Hal8192CUHWImg.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,99 @@
+/******************************************************************************
+ *
@@ -157763,9 +158285,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/Hal8192CUHWIm
+extern u32 Rtl8192CUAGCTAB_1T_HPArray[AGCTAB_1T_HPArrayLength];
+
+#endif //__INC_HAL8192CU_FW_IMG_H
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/Hal8192CUHWImg_wowlan.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/Hal8192CUHWImg_wowlan.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/Hal8192CUHWImg_wowlan.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/Hal8192CUHWImg_wowlan.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/Hal8192CUHWImg_wowlan.h linux-rpi/drivers/net/wireless/rtl8192cu/include/Hal8192CUHWImg_wowlan.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/Hal8192CUHWImg_wowlan.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/Hal8192CUHWImg_wowlan.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,34 @@
+/******************************************************************************
+ *
@@ -157801,9 +158323,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/Hal8192CUHWIm
+
+#endif //__INC_HAL8192CU_FW_IMG_WOWLAN_H
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/Hal8192DEHWImg.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/Hal8192DEHWImg.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/Hal8192DEHWImg.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/Hal8192DEHWImg.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/Hal8192DEHWImg.h linux-rpi/drivers/net/wireless/rtl8192cu/include/Hal8192DEHWImg.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/Hal8192DEHWImg.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/Hal8192DEHWImg.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,66 @@
+/******************************************************************************
+ *
@@ -157871,9 +158393,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/Hal8192DEHWIm
+extern u32 Rtl8192DEAGCTAB_1TArray[AGCTAB_1TArrayLength];
+
+#endif //__INC_HAL8192CU_FW_IMG_H
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/Hal8192DETestHWImg.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/Hal8192DETestHWImg.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/Hal8192DETestHWImg.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/Hal8192DETestHWImg.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/Hal8192DETestHWImg.h linux-rpi/drivers/net/wireless/rtl8192cu/include/Hal8192DETestHWImg.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/Hal8192DETestHWImg.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/Hal8192DETestHWImg.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,54 @@
+/******************************************************************************
+ *
@@ -157929,9 +158451,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/Hal8192DETest
+extern u32 Rtl8192DTestAGCTAB_2GArray[Rtl8192DTestAGCTAB_2GArrayLength];
+
+#endif //__INC_HAL8192CU_FW_IMG_H
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/Hal8192DPhyCfg.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/Hal8192DPhyCfg.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/Hal8192DPhyCfg.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/Hal8192DPhyCfg.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/Hal8192DPhyCfg.h linux-rpi/drivers/net/wireless/rtl8192cu/include/Hal8192DPhyCfg.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/Hal8192DPhyCfg.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/Hal8192DPhyCfg.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,528 @@
+/******************************************************************************
+ *
@@ -158461,9 +158983,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/Hal8192DPhyCf
+
+#endif // __INC_HAL8192SPHYCFG_H
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/Hal8192DPhyReg.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/Hal8192DPhyReg.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/Hal8192DPhyReg.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/Hal8192DPhyReg.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/Hal8192DPhyReg.h linux-rpi/drivers/net/wireless/rtl8192cu/include/Hal8192DPhyReg.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/Hal8192DPhyReg.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/Hal8192DPhyReg.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,1171 @@
+/******************************************************************************
+ *
@@ -159636,9 +160158,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/Hal8192DPhyRe
+
+#endif //__INC_HAL8192SPHYREG_H
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/Hal8192DUHWImg.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/Hal8192DUHWImg.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/Hal8192DUHWImg.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/Hal8192DUHWImg.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/Hal8192DUHWImg.h linux-rpi/drivers/net/wireless/rtl8192cu/include/Hal8192DUHWImg.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/Hal8192DUHWImg.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/Hal8192DUHWImg.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,66 @@
+/******************************************************************************
+ *
@@ -159706,9 +160228,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/Hal8192DUHWIm
+extern const u32 Rtl8192DUAGCTAB_1TArray[Rtl8192DUAGCTAB_1TArrayLength];
+
+#endif //__INC_HAL8192CU_FW_IMG_H
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/Hal8192DUHWImg_wowlan.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/Hal8192DUHWImg_wowlan.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/Hal8192DUHWImg_wowlan.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/Hal8192DUHWImg_wowlan.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/Hal8192DUHWImg_wowlan.h linux-rpi/drivers/net/wireless/rtl8192cu/include/Hal8192DUHWImg_wowlan.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/Hal8192DUHWImg_wowlan.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/Hal8192DUHWImg_wowlan.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,30 @@
+/******************************************************************************
+ *
@@ -159740,9 +160262,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/Hal8192DUHWIm
+
+#endif //__INC_HAL8192DU_FW_IMG_WOWLAN_H
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/Hal8192DUTestHWImg.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/Hal8192DUTestHWImg.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/Hal8192DUTestHWImg.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/Hal8192DUTestHWImg.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/Hal8192DUTestHWImg.h linux-rpi/drivers/net/wireless/rtl8192cu/include/Hal8192DUTestHWImg.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/Hal8192DUTestHWImg.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/Hal8192DUTestHWImg.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,54 @@
+/******************************************************************************
+ *
@@ -159798,9 +160320,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/Hal8192DUTest
+extern u32 Rtl8192DTestAGCTAB_2GArray[Rtl8192DTestAGCTAB_2GArrayLength];
+
+#endif //__INC_HAL8192CU_FW_IMG_H
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/hal_init.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/hal_init.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/hal_init.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/hal_init.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/hal_init.h linux-rpi/drivers/net/wireless/rtl8192cu/include/hal_init.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/hal_init.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/hal_init.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,305 @@
+/******************************************************************************
+ *
@@ -160107,9 +160629,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/hal_init.h li
+
+#endif //__HAL_INIT_H__
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/ieee80211_ext.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/ieee80211_ext.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/ieee80211_ext.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/ieee80211_ext.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/ieee80211_ext.h linux-rpi/drivers/net/wireless/rtl8192cu/include/ieee80211_ext.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/ieee80211_ext.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/ieee80211_ext.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,477 @@
+/******************************************************************************
+ *
@@ -160588,9 +161110,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/ieee80211_ext
+
+#endif
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/ieee80211.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/ieee80211.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/ieee80211.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/ieee80211.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/ieee80211.h linux-rpi/drivers/net/wireless/rtl8192cu/include/ieee80211.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/ieee80211.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/ieee80211.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,1461 @@
+/******************************************************************************
+ *
@@ -162053,9 +162575,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/ieee80211.h l
+void rtw_macaddr_cfg(u8 *mac_addr);
+#endif /* IEEE80211_H */
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/if_ether.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/if_ether.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/if_ether.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/if_ether.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/if_ether.h linux-rpi/drivers/net/wireless/rtl8192cu/include/if_ether.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/if_ether.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/if_ether.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,112 @@
+/*
+ * INET An implementation of the TCP/IP protocol suite for the LINUX
@@ -162169,9 +162691,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/if_ether.h li
+
+
+#endif /* _LINUX_IF_ETHER_H */
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/ioctl_cfg80211.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/ioctl_cfg80211.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/ioctl_cfg80211.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/ioctl_cfg80211.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/ioctl_cfg80211.h linux-rpi/drivers/net/wireless/rtl8192cu/include/ioctl_cfg80211.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/ioctl_cfg80211.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/ioctl_cfg80211.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,81 @@
+/******************************************************************************
+ *
@@ -162254,9 +162776,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/ioctl_cfg8021
+
+#endif //__IOCTL_CFG80211_H__
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/ip.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/ip.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/ip.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/ip.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/ip.h linux-rpi/drivers/net/wireless/rtl8192cu/include/ip.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/ip.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/ip.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,138 @@
+/*
+ * INET An implementation of the TCP/IP protocol suite for the LINUX
@@ -162396,9 +162918,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/ip.h linux-3.
+};
+
+#endif /* _LINUX_IP_H */
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/mlme_osdep.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/mlme_osdep.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/mlme_osdep.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/mlme_osdep.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/mlme_osdep.h linux-rpi/drivers/net/wireless/rtl8192cu/include/mlme_osdep.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/mlme_osdep.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/mlme_osdep.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,44 @@
+/******************************************************************************
+ *
@@ -162444,9 +162966,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/mlme_osdep.h
+
+#endif //_MLME_OSDEP_H_
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/mp_custom_oid.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/mp_custom_oid.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/mp_custom_oid.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/mp_custom_oid.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/mp_custom_oid.h linux-rpi/drivers/net/wireless/rtl8192cu/include/mp_custom_oid.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/mp_custom_oid.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/mp_custom_oid.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,353 @@
+/******************************************************************************
+ *
@@ -162801,9 +163323,9 @@ diff -Nur linux-3.8.10.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-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/nic_spec.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/nic_spec.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/nic_spec.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/nic_spec.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/nic_spec.h linux-rpi/drivers/net/wireless/rtl8192cu/include/nic_spec.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/nic_spec.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/nic_spec.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,47 @@
+/******************************************************************************
+ *
@@ -162852,9 +163374,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/nic_spec.h li
+
+#endif // __RTL8711_SPEC_H__
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/osdep_ce_service.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/osdep_ce_service.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/osdep_ce_service.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/osdep_ce_service.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/osdep_ce_service.h linux-rpi/drivers/net/wireless/rtl8192cu/include/osdep_ce_service.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/osdep_ce_service.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/osdep_ce_service.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,171 @@
+/******************************************************************************
+ *
@@ -163027,9 +163549,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/osdep_ce_serv
+}
+#endif
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/osdep_intf.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/osdep_intf.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/osdep_intf.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/osdep_intf.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/osdep_intf.h linux-rpi/drivers/net/wireless/rtl8192cu/include/osdep_intf.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/osdep_intf.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/osdep_intf.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,128 @@
+/******************************************************************************
+ *
@@ -163159,9 +163681,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/osdep_intf.h
+
+#endif //_OSDEP_INTF_H_
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/osdep_service.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/osdep_service.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/osdep_service.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/osdep_service.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/osdep_service.h linux-rpi/drivers/net/wireless/rtl8192cu/include/osdep_service.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/osdep_service.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/osdep_service.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,841 @@
+/******************************************************************************
+ *
@@ -164004,9 +164526,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/osdep_service
+ void *data, const char *name);
+#endif
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/pci_hal.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/pci_hal.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/pci_hal.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/pci_hal.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/pci_hal.h linux-rpi/drivers/net/wireless/rtl8192cu/include/pci_hal.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/pci_hal.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/pci_hal.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,168 @@
+/******************************************************************************
+ *
@@ -164176,9 +164698,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/pci_hal.h lin
+
+#endif //__PCIE_HAL_H__
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/pci_ops.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/pci_ops.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/pci_ops.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/pci_ops.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/pci_ops.h linux-rpi/drivers/net/wireless/rtl8192cu/include/pci_ops.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/pci_ops.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/pci_ops.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,58 @@
+/******************************************************************************
+ *
@@ -164238,9 +164760,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/pci_ops.h lin
+#endif
+
+#endif
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/pci_osintf.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/pci_osintf.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/pci_osintf.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/pci_osintf.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/pci_osintf.h linux-rpi/drivers/net/wireless/rtl8192cu/include/pci_osintf.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/pci_osintf.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/pci_osintf.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,33 @@
+/******************************************************************************
+ *
@@ -164275,9 +164797,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/pci_osintf.h
+
+#endif
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/recv_osdep.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/recv_osdep.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/recv_osdep.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/recv_osdep.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/recv_osdep.h linux-rpi/drivers/net/wireless/rtl8192cu/include/recv_osdep.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/recv_osdep.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/recv_osdep.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,58 @@
+/******************************************************************************
+ *
@@ -164337,9 +164859,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/recv_osdep.h
+
+#endif //
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_cmd.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtl8192c_cmd.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_cmd.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtl8192c_cmd.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtl8192c_cmd.h linux-rpi/drivers/net/wireless/rtl8192cu/include/rtl8192c_cmd.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtl8192c_cmd.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/rtl8192c_cmd.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,153 @@
+/******************************************************************************
+ *
@@ -164494,9 +165016,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_cmd.
+void rtl8192c_set_wowlan_cmd(_adapter* padapter);
+void SetFwRelatedForWoWLAN8192CU(_adapter* padapter,u8 bHostIsGoingtoSleep);
+#endif // CONFIG_WOWLAN
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_dm.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtl8192c_dm.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_dm.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtl8192c_dm.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtl8192c_dm.h linux-rpi/drivers/net/wireless/rtl8192cu/include/rtl8192c_dm.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtl8192c_dm.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/rtl8192c_dm.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,616 @@
+/******************************************************************************
+ *
@@ -165114,9 +165636,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_dm.h
+
+#endif //__HAL8190PCIDM_H__
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_event.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtl8192c_event.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_event.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtl8192c_event.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtl8192c_event.h linux-rpi/drivers/net/wireless/rtl8192cu/include/rtl8192c_event.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtl8192c_event.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/rtl8192c_event.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,29 @@
+/******************************************************************************
+ *
@@ -165147,9 +165669,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_even
+#endif
+
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_hal.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtl8192c_hal.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_hal.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtl8192c_hal.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtl8192c_hal.h linux-rpi/drivers/net/wireless/rtl8192cu/include/rtl8192c_hal.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtl8192c_hal.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/rtl8192c_hal.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,887 @@
+/******************************************************************************
+ *
@@ -166038,9 +166560,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_hal.
+void rtl8192c_set_hal_ops(struct hal_ops *pHalFunc);
+
+#endif
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_led.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtl8192c_led.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_led.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtl8192c_led.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtl8192c_led.h linux-rpi/drivers/net/wireless/rtl8192cu/include/rtl8192c_led.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtl8192c_led.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/rtl8192c_led.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,43 @@
+/******************************************************************************
+ *
@@ -166085,9 +166607,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_led.
+
+#endif
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_recv.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtl8192c_recv.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_recv.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtl8192c_recv.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtl8192c_recv.h linux-rpi/drivers/net/wireless/rtl8192cu/include/rtl8192c_recv.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtl8192c_recv.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/rtl8192c_recv.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,183 @@
+/******************************************************************************
+ *
@@ -166272,9 +166794,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_recv
+
+#endif
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_rf.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtl8192c_rf.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_rf.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtl8192c_rf.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtl8192c_rf.h linux-rpi/drivers/net/wireless/rtl8192cu/include/rtl8192c_rf.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtl8192c_rf.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/rtl8192c_rf.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,93 @@
+/******************************************************************************
+ *
@@ -166369,9 +166891,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_rf.h
+
+#endif/* End of HalRf.h */
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_spec.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtl8192c_spec.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_spec.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtl8192c_spec.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtl8192c_spec.h linux-rpi/drivers/net/wireless/rtl8192cu/include/rtl8192c_spec.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtl8192c_spec.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/rtl8192c_spec.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,1899 @@
+/******************************************************************************
+ *
@@ -168272,9 +168794,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_spec
+
+#endif
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_sreset.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtl8192c_sreset.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_sreset.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtl8192c_sreset.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtl8192c_sreset.h linux-rpi/drivers/net/wireless/rtl8192cu/include/rtl8192c_sreset.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtl8192c_sreset.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/rtl8192c_sreset.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,54 @@
+/******************************************************************************
+ *
@@ -168330,9 +168852,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_sres
+extern u8 rtl8192c_sreset_get_wifi_status(_adapter *padapter);
+#endif
+#endif
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_xmit.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtl8192c_xmit.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_xmit.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtl8192c_xmit.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtl8192c_xmit.h linux-rpi/drivers/net/wireless/rtl8192cu/include/rtl8192c_xmit.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtl8192c_xmit.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/rtl8192c_xmit.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,91 @@
+/******************************************************************************
+ *
@@ -168425,9 +168947,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtl8192c_xmit
+
+#endif
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtl8192d_cmd.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtl8192d_cmd.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtl8192d_cmd.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtl8192d_cmd.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtl8192d_cmd.h linux-rpi/drivers/net/wireless/rtl8192cu/include/rtl8192d_cmd.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtl8192d_cmd.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/rtl8192d_cmd.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,133 @@
+/******************************************************************************
+ *
@@ -168562,9 +169084,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtl8192d_cmd.
+#endif // CONFIG_WOWLAN
+
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtl8192d_dm.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtl8192d_dm.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtl8192d_dm.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtl8192d_dm.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtl8192d_dm.h linux-rpi/drivers/net/wireless/rtl8192cu/include/rtl8192d_dm.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtl8192d_dm.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/rtl8192d_dm.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,414 @@
+/******************************************************************************
+ *
@@ -168980,9 +169502,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtl8192d_dm.h
+VOID rtl8192d_dm_CheckTXPowerTracking(IN PADAPTER Adapter);
+
+#endif //__HAL8190PCIDM_H__
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtl8192d_hal.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtl8192d_hal.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtl8192d_hal.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtl8192d_hal.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtl8192d_hal.h linux-rpi/drivers/net/wireless/rtl8192cu/include/rtl8192d_hal.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtl8192d_hal.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/rtl8192d_hal.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,983 @@
+/******************************************************************************
+ *
@@ -169967,9 +170489,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtl8192d_hal.
+
+#endif //end CONFIG_MP_INCLUDED
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtl8192d_led.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtl8192d_led.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtl8192d_led.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtl8192d_led.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtl8192d_led.h linux-rpi/drivers/net/wireless/rtl8192cu/include/rtl8192d_led.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtl8192d_led.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/rtl8192d_led.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,44 @@
+/******************************************************************************
+ *
@@ -170015,9 +170537,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtl8192d_led.
+
+#endif
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtl8192d_recv.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtl8192d_recv.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtl8192d_recv.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtl8192d_recv.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtl8192d_recv.h linux-rpi/drivers/net/wireless/rtl8192cu/include/rtl8192d_recv.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtl8192d_recv.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/rtl8192d_recv.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,183 @@
+/******************************************************************************
+ *
@@ -170202,9 +170724,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtl8192d_recv
+
+#endif
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtl8192d_rf.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtl8192d_rf.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtl8192d_rf.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtl8192d_rf.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtl8192d_rf.h linux-rpi/drivers/net/wireless/rtl8192cu/include/rtl8192d_rf.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtl8192d_rf.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/rtl8192d_rf.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,98 @@
+/******************************************************************************
+ *
@@ -170304,9 +170826,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtl8192d_rf.h
+
+#endif/* End of HalRf.h */
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtl8192d_spec.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtl8192d_spec.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtl8192d_spec.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtl8192d_spec.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtl8192d_spec.h linux-rpi/drivers/net/wireless/rtl8192cu/include/rtl8192d_spec.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtl8192d_spec.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/rtl8192d_spec.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,1879 @@
+/******************************************************************************
+ *
@@ -172187,9 +172709,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtl8192d_spec
+
+#endif
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtl8192d_xmit.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtl8192d_xmit.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtl8192d_xmit.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtl8192d_xmit.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtl8192d_xmit.h linux-rpi/drivers/net/wireless/rtl8192cu/include/rtl8192d_xmit.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtl8192d_xmit.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/rtl8192d_xmit.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,106 @@
+/******************************************************************************
+ *
@@ -172297,9 +172819,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtl8192d_xmit
+
+#endif
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_android.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtw_android.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_android.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtw_android.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtw_android.h linux-rpi/drivers/net/wireless/rtl8192cu/include/rtw_android.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtw_android.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/rtw_android.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,80 @@
+/******************************************************************************
+ *
@@ -172381,9 +172903,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_android.h
+
+#endif //__RTW_ANDROID_H__
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_br_ext.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtw_br_ext.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_br_ext.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtw_br_ext.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtw_br_ext.h linux-rpi/drivers/net/wireless/rtl8192cu/include/rtw_br_ext.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtw_br_ext.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/rtw_br_ext.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,76 @@
+/******************************************************************************
+ *
@@ -172461,9 +172983,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_br_ext.h
+
+#endif // _RTW_BR_EXT_H_
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_byteorder.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtw_byteorder.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_byteorder.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtw_byteorder.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtw_byteorder.h linux-rpi/drivers/net/wireless/rtl8192cu/include/rtw_byteorder.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtw_byteorder.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/rtw_byteorder.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,41 @@
+/******************************************************************************
+ *
@@ -172506,9 +173028,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_byteorder
+
+#endif /* _RTL871X_BYTEORDER_H_ */
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_cmd.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtw_cmd.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_cmd.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtw_cmd.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtw_cmd.h linux-rpi/drivers/net/wireless/rtl8192cu/include/rtw_cmd.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtw_cmd.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/rtw_cmd.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,1132 @@
+/******************************************************************************
+ *
@@ -173642,9 +174164,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_cmd.h lin
+
+#endif // _CMD_H_
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_debug.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtw_debug.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_debug.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtw_debug.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtw_debug.h linux-rpi/drivers/net/wireless/rtl8192cu/include/rtw_debug.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtw_debug.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/rtw_debug.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,389 @@
+/******************************************************************************
+ *
@@ -174035,9 +174557,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_debug.h l
+
+#endif //__RTW_DEBUG_H__
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_eeprom.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtw_eeprom.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_eeprom.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtw_eeprom.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtw_eeprom.h linux-rpi/drivers/net/wireless/rtl8192cu/include/rtw_eeprom.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtw_eeprom.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/rtw_eeprom.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,153 @@
+/******************************************************************************
+ *
@@ -174192,9 +174714,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_eeprom.h
+#endif //PLATFORM_LINUX
+
+#endif //__RTL871X_EEPROM_H__
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_efuse.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtw_efuse.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_efuse.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtw_efuse.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtw_efuse.h linux-rpi/drivers/net/wireless/rtl8192cu/include/rtw_efuse.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtw_efuse.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/rtw_efuse.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,123 @@
+/******************************************************************************
+ *
@@ -174319,9 +174841,9 @@ diff -Nur linux-3.8.10.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-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_event.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtw_event.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_event.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtw_event.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtw_event.h linux-rpi/drivers/net/wireless/rtl8192cu/include/rtw_event.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtw_event.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/rtw_event.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,154 @@
+/******************************************************************************
+ *
@@ -174477,9 +174999,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_event.h l
+
+#endif // _WLANEVENT_H_
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_ht.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtw_ht.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_ht.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtw_ht.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtw_ht.h linux-rpi/drivers/net/wireless/rtl8192cu/include/rtw_ht.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtw_ht.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/rtw_ht.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,51 @@
+/******************************************************************************
+ *
@@ -174532,9 +175054,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_ht.h linu
+
+#endif //_RTL871X_HT_H_
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_ioctl.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtw_ioctl.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_ioctl.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtw_ioctl.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtw_ioctl.h linux-rpi/drivers/net/wireless/rtl8192cu/include/rtw_ioctl.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtw_ioctl.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/rtw_ioctl.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,271 @@
+/******************************************************************************
+ *
@@ -174807,9 +175329,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_ioctl.h l
+
+#endif // #ifndef __INC_CEINFO_
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_ioctl_query.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtw_ioctl_query.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_ioctl_query.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtw_ioctl_query.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtw_ioctl_query.h linux-rpi/drivers/net/wireless/rtl8192cu/include/rtw_ioctl_query.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtw_ioctl_query.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/rtw_ioctl_query.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,37 @@
+/******************************************************************************
+ *
@@ -174848,9 +175370,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_ioctl_que
+
+#endif
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_ioctl_rtl.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtw_ioctl_rtl.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_ioctl_rtl.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtw_ioctl_rtl.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtw_ioctl_rtl.h linux-rpi/drivers/net/wireless/rtl8192cu/include/rtw_ioctl_rtl.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtw_ioctl_rtl.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/rtw_ioctl_rtl.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,84 @@
+/******************************************************************************
+ *
@@ -174936,9 +175458,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_ioctl_rtl
+
+
+#endif
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_ioctl_set.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtw_ioctl_set.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_ioctl_set.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtw_ioctl_set.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtw_ioctl_set.h linux-rpi/drivers/net/wireless/rtl8192cu/include/rtw_ioctl_set.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtw_ioctl_set.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/rtw_ioctl_set.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,78 @@
+/******************************************************************************
+ *
@@ -175018,9 +175540,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_ioctl_set
+
+#endif
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_io.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtw_io.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_io.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtw_io.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtw_io.h linux-rpi/drivers/net/wireless/rtl8192cu/include/rtw_io.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtw_io.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/rtw_io.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,543 @@
+/******************************************************************************
+ *
@@ -175565,9 +176087,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_io.h linu
+*/
+
+#endif //_RTL8711_IO_H_
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_iol.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtw_iol.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_iol.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtw_iol.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtw_iol.h linux-rpi/drivers/net/wireless/rtl8192cu/include/rtw_iol.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtw_iol.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/rtw_iol.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,89 @@
+/******************************************************************************
+ *
@@ -175658,9 +176180,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_iol.h lin
+bool rtw_IOL_applied(ADAPTER *adapter);
+
+#endif //__RTW_IOL_H_
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_led.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtw_led.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_led.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtw_led.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtw_led.h linux-rpi/drivers/net/wireless/rtl8192cu/include/rtw_led.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtw_led.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/rtw_led.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,214 @@
+/******************************************************************************
+ *
@@ -175876,9 +176398,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_led.h lin
+
+#endif //__RTW_LED_H_
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_mlme_ext.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtw_mlme_ext.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_mlme_ext.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtw_mlme_ext.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtw_mlme_ext.h linux-rpi/drivers/net/wireless/rtl8192cu/include/rtw_mlme_ext.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtw_mlme_ext.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/rtw_mlme_ext.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,878 @@
+/******************************************************************************
+ *
@@ -176758,9 +177280,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_mlme_ext.
+
+#endif
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_mlme.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtw_mlme.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_mlme.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtw_mlme.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtw_mlme.h linux-rpi/drivers/net/wireless/rtl8192cu/include/rtw_mlme.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtw_mlme.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/rtw_mlme.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,665 @@
+/******************************************************************************
+ *
@@ -177427,9 +177949,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_mlme.h li
+#endif //CONFIG_INTEL_PROXIM
+#endif //__RTL871X_MLME_H_
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_mp.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtw_mp.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_mp.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtw_mp.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtw_mp.h linux-rpi/drivers/net/wireless/rtl8192cu/include/rtw_mp.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtw_mp.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/rtw_mp.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,708 @@
+/******************************************************************************
+ *
@@ -178139,9 +178661,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_mp.h linu
+
+#endif //_RTW_MP_H_
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_mp_ioctl.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtw_mp_ioctl.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_mp_ioctl.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtw_mp_ioctl.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtw_mp_ioctl.h linux-rpi/drivers/net/wireless/rtl8192cu/include/rtw_mp_ioctl.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtw_mp_ioctl.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/rtw_mp_ioctl.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,596 @@
+/******************************************************************************
+ *
@@ -178739,9 +179261,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_mp_ioctl.
+
+#endif
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_mp_phy_regdef.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtw_mp_phy_regdef.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_mp_phy_regdef.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtw_mp_phy_regdef.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtw_mp_phy_regdef.h linux-rpi/drivers/net/wireless/rtl8192cu/include/rtw_mp_phy_regdef.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtw_mp_phy_regdef.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/rtw_mp_phy_regdef.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,1098 @@
+/******************************************************************************
+ *
@@ -179841,9 +180363,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_mp_phy_re
+
+#endif //__INC_HAL8192SPHYREG_H
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_p2p.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtw_p2p.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_p2p.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtw_p2p.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtw_p2p.h linux-rpi/drivers/net/wireless/rtl8192cu/include/rtw_p2p.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtw_p2p.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/rtw_p2p.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,151 @@
+/******************************************************************************
+ *
@@ -179996,9 +180518,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_p2p.h lin
+
+#endif
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_pwrctrl.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtw_pwrctrl.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_pwrctrl.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtw_pwrctrl.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtw_pwrctrl.h linux-rpi/drivers/net/wireless/rtl8192cu/include/rtw_pwrctrl.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtw_pwrctrl.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/rtw_pwrctrl.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,343 @@
+/******************************************************************************
+ *
@@ -180343,9 +180865,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_pwrctrl.h
+#define rtw_pwr_wakeup(adapter) _rtw_pwr_wakeup(adapter, __FUNCTION__)
+
+#endif //__RTL871X_PWRCTRL_H_
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_qos.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtw_qos.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_qos.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtw_qos.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtw_qos.h linux-rpi/drivers/net/wireless/rtl8192cu/include/rtw_qos.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtw_qos.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/rtw_qos.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,41 @@
+/******************************************************************************
+ *
@@ -180388,9 +180910,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_qos.h lin
+
+#endif //_RTL871X_QOS_H_
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_recv.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtw_recv.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_recv.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtw_recv.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtw_recv.h linux-rpi/drivers/net/wireless/rtl8192cu/include/rtw_recv.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtw_recv.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/rtw_recv.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,708 @@
+/******************************************************************************
+ *
@@ -181100,9 +181622,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_recv.h li
+
+#endif
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_rf.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtw_rf.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_rf.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtw_rf.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtw_rf.h linux-rpi/drivers/net/wireless/rtl8192cu/include/rtw_rf.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtw_rf.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/rtw_rf.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,152 @@
+/******************************************************************************
+ *
@@ -181256,9 +181778,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_rf.h linu
+
+#endif //_RTL8711_RF_H_
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_security.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtw_security.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_security.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtw_security.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtw_security.h linux-rpi/drivers/net/wireless/rtl8192cu/include/rtw_security.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtw_security.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/rtw_security.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,423 @@
+/******************************************************************************
+ *
@@ -181683,14 +182205,14 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_security.
+#endif
+#endif //__RTL871X_SECURITY_H_
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_version.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtw_version.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_version.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtw_version.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtw_version.h linux-rpi/drivers/net/wireless/rtl8192cu/include/rtw_version.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtw_version.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/rtw_version.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1 @@
+#define DRIVERVERSION "v3.4.4_4749.20121105"
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_xmit.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtw_xmit.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_xmit.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/rtw_xmit.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtw_xmit.h linux-rpi/drivers/net/wireless/rtl8192cu/include/rtw_xmit.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/rtw_xmit.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/rtw_xmit.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,674 @@
+/******************************************************************************
+ *
@@ -182366,9 +182888,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/rtw_xmit.h li
+
+#endif //_RTL871X_XMIT_H_
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/sdio_hal.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/sdio_hal.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/sdio_hal.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/sdio_hal.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/sdio_hal.h linux-rpi/drivers/net/wireless/rtl8192cu/include/sdio_hal.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/sdio_hal.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/sdio_hal.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,34 @@
+/******************************************************************************
+ *
@@ -182404,9 +182926,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/sdio_hal.h li
+
+#endif //__SDIO_HAL_H__
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/sdio_ops_ce.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/sdio_ops_ce.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/sdio_ops_ce.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/sdio_ops_ce.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/sdio_ops_ce.h linux-rpi/drivers/net/wireless/rtl8192cu/include/sdio_ops_ce.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/sdio_ops_ce.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/sdio_ops_ce.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,56 @@
+/******************************************************************************
+ *
@@ -182464,9 +182986,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/sdio_ops_ce.h
+
+#endif
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/sdio_ops.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/sdio_ops.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/sdio_ops.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/sdio_ops.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/sdio_ops.h linux-rpi/drivers/net/wireless/rtl8192cu/include/sdio_ops.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/sdio_ops.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/sdio_ops.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,80 @@
+/******************************************************************************
+ *
@@ -182548,9 +183070,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/sdio_ops.h li
+
+#endif
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/sdio_ops_linux.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/sdio_ops_linux.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/sdio_ops_linux.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/sdio_ops_linux.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/sdio_ops_linux.h linux-rpi/drivers/net/wireless/rtl8192cu/include/sdio_ops_linux.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/sdio_ops_linux.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/sdio_ops_linux.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,55 @@
+/******************************************************************************
+ *
@@ -182607,9 +183129,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/sdio_ops_linu
+
+#endif
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/sdio_ops_xp.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/sdio_ops_xp.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/sdio_ops_xp.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/sdio_ops_xp.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/sdio_ops_xp.h linux-rpi/drivers/net/wireless/rtl8192cu/include/sdio_ops_xp.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/sdio_ops_xp.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/sdio_ops_xp.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,56 @@
+/******************************************************************************
+ *
@@ -182667,9 +183189,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/sdio_ops_xp.h
+
+#endif
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/sdio_osintf.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/sdio_osintf.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/sdio_osintf.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/sdio_osintf.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/sdio_osintf.h linux-rpi/drivers/net/wireless/rtl8192cu/include/sdio_osintf.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/sdio_osintf.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/sdio_osintf.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,48 @@
+/******************************************************************************
+ *
@@ -182719,9 +183241,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/sdio_osintf.h
+
+#endif
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/sta_info.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/sta_info.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/sta_info.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/sta_info.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/sta_info.h linux-rpi/drivers/net/wireless/rtl8192cu/include/sta_info.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/sta_info.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/sta_info.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,353 @@
+/******************************************************************************
+ *
@@ -183076,9 +183598,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/sta_info.h li
+extern u8 rtw_access_ctrl(struct wlan_acl_pool* pacl_list, u8 * mac_addr);
+
+#endif //_STA_INFO_H_
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/usb_hal.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/usb_hal.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/usb_hal.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/usb_hal.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/usb_hal.h linux-rpi/drivers/net/wireless/rtl8192cu/include/usb_hal.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/usb_hal.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/usb_hal.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,32 @@
+/******************************************************************************
+ *
@@ -183112,9 +183634,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/usb_hal.h lin
+#endif //CONFIG_INTEL_PROXIM
+#endif //__USB_HAL_H__
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/usb_ops.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/usb_ops.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/usb_ops.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/usb_ops.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/usb_ops.h linux-rpi/drivers/net/wireless/rtl8192cu/include/usb_ops.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/usb_ops.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/usb_ops.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,100 @@
+/******************************************************************************
+ *
@@ -183216,9 +183738,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/usb_ops.h lin
+}
+
+#endif //__USB_OPS_H_
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/usb_osintf.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/usb_osintf.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/usb_osintf.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/usb_osintf.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/usb_osintf.h linux-rpi/drivers/net/wireless/rtl8192cu/include/usb_osintf.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/usb_osintf.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/usb_osintf.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,39 @@
+/******************************************************************************
+ *
@@ -183259,9 +183781,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/usb_osintf.h
+
+#endif
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/usb_vendor_req.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/usb_vendor_req.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/usb_vendor_req.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/usb_vendor_req.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/usb_vendor_req.h linux-rpi/drivers/net/wireless/rtl8192cu/include/usb_vendor_req.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/usb_vendor_req.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/usb_vendor_req.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,60 @@
+/******************************************************************************
+ *
@@ -183323,9 +183845,9 @@ diff -Nur linux-3.8.10.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-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/wifi.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/wifi.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/wifi.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/wifi.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/wifi.h linux-rpi/drivers/net/wireless/rtl8192cu/include/wifi.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/wifi.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/wifi.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,1190 @@
+/******************************************************************************
+ *
@@ -184517,9 +185039,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/wifi.h linux-
+
+#endif // _WIFI_H_
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/wlan_bssdef.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/wlan_bssdef.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/wlan_bssdef.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/wlan_bssdef.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/wlan_bssdef.h linux-rpi/drivers/net/wireless/rtl8192cu/include/wlan_bssdef.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/wlan_bssdef.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/wlan_bssdef.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,453 @@
+/******************************************************************************
+ *
@@ -184974,9 +185496,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/wlan_bssdef.h
+
+#endif //#ifndef WLAN_BSSDEF_H_
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/xmit_osdep.h linux-3.8.10/drivers/net/wireless/rtl8192cu/include/xmit_osdep.h
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/xmit_osdep.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/include/xmit_osdep.h 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/include/xmit_osdep.h linux-rpi/drivers/net/wireless/rtl8192cu/include/xmit_osdep.h
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/include/xmit_osdep.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/include/xmit_osdep.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,90 @@
+/******************************************************************************
+ *
@@ -185068,19 +185590,21 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/include/xmit_osdep.h
+
+#endif //
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/Kconfig linux-3.8.10/drivers/net/wireless/rtl8192cu/Kconfig
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/Kconfig 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/Kconfig 2013-05-06 12:55:14.000000000 +0200
-@@ -0,0 +1,6 @@
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/Kconfig linux-rpi/drivers/net/wireless/rtl8192cu/Kconfig
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/Kconfig 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/Kconfig 2013-07-08 13:33:17.000000000 +0200
+@@ -0,0 +1,8 @@
+config RTL8192CU
+ tristate "Realtek 8192C USB WiFi"
+ depends on USB
++ select WIRELESS_EXT
++ select WEXT_PRIV
+ ---help---
-+ Help message of RTL8192CU
++ Enable wireless network adapters based on Realtek RTL8192C chipset family, such as EDUP nano series
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/Makefile linux-3.8.10/drivers/net/wireless/rtl8192cu/Makefile
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/Makefile 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/Makefile 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/Makefile linux-rpi/drivers/net/wireless/rtl8192cu/Makefile
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/Makefile 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/Makefile 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,545 @@
+EXTRA_CFLAGS += $(USER_EXTRA_CFLAGS)
+EXTRA_CFLAGS += -O1
@@ -185627,9 +186151,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/Makefile linux-3.8.10
+ cd os_dep ; rm -fr *.mod.c *.mod *.o .*.cmd *.ko
+endif
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/ioctl_cfg80211.c linux-3.8.10/drivers/net/wireless/rtl8192cu/os_dep/linux/ioctl_cfg80211.c
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/ioctl_cfg80211.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/os_dep/linux/ioctl_cfg80211.c 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/os_dep/linux/ioctl_cfg80211.c linux-rpi/drivers/net/wireless/rtl8192cu/os_dep/linux/ioctl_cfg80211.c
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/os_dep/linux/ioctl_cfg80211.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/os_dep/linux/ioctl_cfg80211.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,4618 @@
+/******************************************************************************
+ *
@@ -190249,9 +190773,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/ioctl_cf
+
+#endif //CONFIG_IOCTL_CFG80211
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/ioctl_linux.c linux-3.8.10/drivers/net/wireless/rtl8192cu/os_dep/linux/ioctl_linux.c
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/ioctl_linux.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/os_dep/linux/ioctl_linux.c 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/os_dep/linux/ioctl_linux.c linux-rpi/drivers/net/wireless/rtl8192cu/os_dep/linux/ioctl_linux.c
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/os_dep/linux/ioctl_linux.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/os_dep/linux/ioctl_linux.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,9325 @@
+/******************************************************************************
+ *
@@ -199578,9 +200102,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/ioctl_li
+#endif
+};
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/mlme_linux.c linux-3.8.10/drivers/net/wireless/rtl8192cu/os_dep/linux/mlme_linux.c
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/mlme_linux.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/os_dep/linux/mlme_linux.c 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/os_dep/linux/mlme_linux.c linux-rpi/drivers/net/wireless/rtl8192cu/os_dep/linux/mlme_linux.c
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/os_dep/linux/mlme_linux.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/os_dep/linux/mlme_linux.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,740 @@
+/******************************************************************************
+ *
@@ -200322,9 +200846,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/mlme_lin
+#endif
+#endif
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/os_intfs.c linux-3.8.10/drivers/net/wireless/rtl8192cu/os_dep/linux/os_intfs.c
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/os_intfs.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/os_dep/linux/os_intfs.c 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/os_dep/linux/os_intfs.c linux-rpi/drivers/net/wireless/rtl8192cu/os_dep/linux/os_intfs.c
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/os_dep/linux/os_intfs.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/os_dep/linux/os_intfs.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,1555 @@
+/******************************************************************************
+ *
@@ -201881,9 +202405,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/os_intfs
+
+}
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/pci_intf.c linux-3.8.10/drivers/net/wireless/rtl8192cu/os_dep/linux/pci_intf.c
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/pci_intf.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/os_dep/linux/pci_intf.c 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/os_dep/linux/pci_intf.c linux-rpi/drivers/net/wireless/rtl8192cu/os_dep/linux/pci_intf.c
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/os_dep/linux/pci_intf.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/os_dep/linux/pci_intf.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,1889 @@
+/******************************************************************************
+ *
@@ -203774,9 +204298,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/pci_intf
+module_init(rtw_drv_entry);
+module_exit(rtw_drv_halt);
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/recv_linux.c linux-3.8.10/drivers/net/wireless/rtl8192cu/os_dep/linux/recv_linux.c
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/recv_linux.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/os_dep/linux/recv_linux.c 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/os_dep/linux/recv_linux.c linux-rpi/drivers/net/wireless/rtl8192cu/os_dep/linux/recv_linux.c
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/os_dep/linux/recv_linux.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/os_dep/linux/recv_linux.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,462 @@
+/******************************************************************************
+ *
@@ -204240,9 +204764,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/recv_lin
+
+}
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/rtw_android.c linux-3.8.10/drivers/net/wireless/rtl8192cu/os_dep/linux/rtw_android.c
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/rtw_android.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/os_dep/linux/rtw_android.c 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/os_dep/linux/rtw_android.c linux-rpi/drivers/net/wireless/rtl8192cu/os_dep/linux/rtw_android.c
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/os_dep/linux/rtw_android.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/os_dep/linux/rtw_android.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,713 @@
+/******************************************************************************
+ *
@@ -204957,9 +205481,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/rtw_andr
+}
+#endif /* defined(CONFIG_WIFI_CONTROL_FUNC) */
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/sdio_intf.c linux-3.8.10/drivers/net/wireless/rtl8192cu/os_dep/linux/sdio_intf.c
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/sdio_intf.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/os_dep/linux/sdio_intf.c 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/os_dep/linux/sdio_intf.c linux-rpi/drivers/net/wireless/rtl8192cu/os_dep/linux/sdio_intf.c
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/os_dep/linux/sdio_intf.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/os_dep/linux/sdio_intf.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,922 @@
+/******************************************************************************
+ *
@@ -205883,10 +206407,10 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/sdio_int
+
+module_init(r8712s_drv_entry);
+module_exit(r8712s_drv_halt);
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/usb_intf.c linux-3.8.10/drivers/net/wireless/rtl8192cu/os_dep/linux/usb_intf.c
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/usb_intf.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/os_dep/linux/usb_intf.c 2013-05-06 12:55:14.000000000 +0200
-@@ -0,0 +1,1524 @@
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/os_dep/linux/usb_intf.c linux-rpi/drivers/net/wireless/rtl8192cu/os_dep/linux/usb_intf.c
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/os_dep/linux/usb_intf.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/os_dep/linux/usb_intf.c 2013-07-08 13:33:17.000000000 +0200
+@@ -0,0 +1,1525 @@
+/******************************************************************************
+ *
+ * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
@@ -206003,6 +206527,7 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/usb_intf
+ {USB_DEVICE(0x4856, 0x0091)},//NetweeN - Feixun
+ {USB_DEVICE(0x2019, 0x4902)},//Planex - Etop
+ {USB_DEVICE(0x2019, 0xAB2E)},//SW-WF02-AD15 -Abocom
++ {USB_DEVICE(0x0846, 0x9041)},//Netgear
+
+ /****** 8188 RU ********/
+ {USB_DEVICE(0x0BDA, 0x317F)},//Netcore,Netcore
@@ -207411,9 +207936,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/usb_intf
+EXPORT_SYMBOL(rtw_usb_get_sw_pointer);
+#endif //CONFIG_INTEL_PROXIM
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/xmit_linux.c linux-3.8.10/drivers/net/wireless/rtl8192cu/os_dep/linux/xmit_linux.c
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/xmit_linux.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/os_dep/linux/xmit_linux.c 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/os_dep/linux/xmit_linux.c linux-rpi/drivers/net/wireless/rtl8192cu/os_dep/linux/xmit_linux.c
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/os_dep/linux/xmit_linux.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/os_dep/linux/xmit_linux.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,367 @@
+/******************************************************************************
+ *
@@ -207782,9 +208307,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/os_dep/linux/xmit_lin
+ return 0;
+}
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/os_dep/osdep_service.c linux-3.8.10/drivers/net/wireless/rtl8192cu/os_dep/osdep_service.c
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/os_dep/osdep_service.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/os_dep/osdep_service.c 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/os_dep/osdep_service.c linux-rpi/drivers/net/wireless/rtl8192cu/os_dep/osdep_service.c
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/os_dep/osdep_service.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/os_dep/osdep_service.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,1571 @@
+/******************************************************************************
+ *
@@ -209357,9 +209882,9 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/os_dep/osdep_service.
+}
+#endif
+
-diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/wlan0dhcp linux-3.8.10/drivers/net/wireless/rtl8192cu/wlan0dhcp
---- linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/wlan0dhcp 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/net/wireless/rtl8192cu/wlan0dhcp 2013-05-06 12:55:14.000000000 +0200
+diff -Nur linux-3.9.9/drivers/net/wireless/rtl8192cu/wlan0dhcp linux-rpi/drivers/net/wireless/rtl8192cu/wlan0dhcp
+--- linux-3.9.9/drivers/net/wireless/rtl8192cu/wlan0dhcp 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/net/wireless/rtl8192cu/wlan0dhcp 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,16 @@
+#!/bin/bash
+
@@ -209377,10 +209902,10 @@ diff -Nur linux-3.8.10.orig/drivers/net/wireless/rtl8192cu/wlan0dhcp linux-3.8.1
+
+echo "get ip: $var1"
+
-diff -Nur linux-3.8.10.orig/drivers/spi/Kconfig linux-3.8.10/drivers/spi/Kconfig
---- linux-3.8.10.orig/drivers/spi/Kconfig 2013-04-26 21:18:32.000000000 +0200
-+++ linux-3.8.10/drivers/spi/Kconfig 2013-05-06 12:55:16.000000000 +0200
-@@ -74,6 +74,14 @@
+diff -Nur linux-3.9.9/drivers/spi/Kconfig linux-rpi/drivers/spi/Kconfig
+--- linux-3.9.9/drivers/spi/Kconfig 2013-07-03 19:56:36.000000000 +0200
++++ linux-rpi/drivers/spi/Kconfig 2013-07-08 13:33:17.000000000 +0200
+@@ -75,6 +75,14 @@
This selects a driver for the Atmel SPI Controller, present on
many AT32 (AVR32) and AT91 (ARM) chips.
@@ -209395,9 +209920,9 @@ diff -Nur linux-3.8.10.orig/drivers/spi/Kconfig linux-3.8.10/drivers/spi/Kconfig
config SPI_BFIN5XX
tristate "SPI controller driver for ADI Blackfin5xx"
depends on BLACKFIN
-diff -Nur linux-3.8.10.orig/drivers/spi/Makefile linux-3.8.10/drivers/spi/Makefile
---- linux-3.8.10.orig/drivers/spi/Makefile 2013-04-26 21:18:32.000000000 +0200
-+++ linux-3.8.10/drivers/spi/Makefile 2013-05-06 12:55:16.000000000 +0200
+diff -Nur linux-3.9.9/drivers/spi/Makefile linux-rpi/drivers/spi/Makefile
+--- linux-3.9.9/drivers/spi/Makefile 2013-07-03 19:56:36.000000000 +0200
++++ linux-rpi/drivers/spi/Makefile 2013-07-08 13:33:17.000000000 +0200
@@ -16,6 +16,7 @@
obj-$(CONFIG_SPI_AU1550) += spi-au1550.o
obj-$(CONFIG_SPI_BCM63XX) += spi-bcm63xx.o
@@ -209406,9 +209931,9 @@ diff -Nur linux-3.8.10.orig/drivers/spi/Makefile linux-3.8.10/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-3.8.10.orig/drivers/spi/spi-bcm2708.c linux-3.8.10/drivers/spi/spi-bcm2708.c
---- linux-3.8.10.orig/drivers/spi/spi-bcm2708.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/spi/spi-bcm2708.c 2013-05-06 12:55:16.000000000 +0200
+diff -Nur linux-3.9.9/drivers/spi/spi-bcm2708.c linux-rpi/drivers/spi/spi-bcm2708.c
+--- linux-3.9.9/drivers/spi/spi-bcm2708.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/spi/spi-bcm2708.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,626 @@
+/*
+ * Driver for Broadcom BCM2708 SPI Controllers
@@ -210036,9 +210561,9 @@ diff -Nur linux-3.8.10.orig/drivers/spi/spi-bcm2708.c linux-3.8.10/drivers/spi/s
+MODULE_AUTHOR("Chris Boot <bootc@bootc.net>");
+MODULE_LICENSE("GPL v2");
+MODULE_ALIAS("platform:" DRV_NAME);
-diff -Nur linux-3.8.10.orig/drivers/staging/media/lirc/Kconfig linux-3.8.10/drivers/staging/media/lirc/Kconfig
---- linux-3.8.10.orig/drivers/staging/media/lirc/Kconfig 2013-04-26 21:18:32.000000000 +0200
-+++ linux-3.8.10/drivers/staging/media/lirc/Kconfig 2013-05-06 12:55:16.000000000 +0200
+diff -Nur linux-3.9.9/drivers/staging/media/lirc/Kconfig linux-rpi/drivers/staging/media/lirc/Kconfig
+--- linux-3.9.9/drivers/staging/media/lirc/Kconfig 2013-07-03 19:56:36.000000000 +0200
++++ linux-rpi/drivers/staging/media/lirc/Kconfig 2013-07-08 13:33:17.000000000 +0200
@@ -38,6 +38,12 @@
help
Driver for Homebrew Parallel Port Receivers
@@ -210052,9 +210577,9 @@ diff -Nur linux-3.8.10.orig/drivers/staging/media/lirc/Kconfig linux-3.8.10/driv
config LIRC_SASEM
tristate "Sasem USB IR Remote"
depends on LIRC && USB
-diff -Nur linux-3.8.10.orig/drivers/staging/media/lirc/lirc_rpi.c linux-3.8.10/drivers/staging/media/lirc/lirc_rpi.c
---- linux-3.8.10.orig/drivers/staging/media/lirc/lirc_rpi.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/staging/media/lirc/lirc_rpi.c 2013-05-06 12:55:16.000000000 +0200
+diff -Nur linux-3.9.9/drivers/staging/media/lirc/lirc_rpi.c linux-rpi/drivers/staging/media/lirc/lirc_rpi.c
+--- linux-3.9.9/drivers/staging/media/lirc/lirc_rpi.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/staging/media/lirc/lirc_rpi.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,692 @@
+/*
+ * lirc_rpi.c
@@ -210748,9 +211273,9 @@ diff -Nur linux-3.8.10.orig/drivers/staging/media/lirc/lirc_rpi.c linux-3.8.10/d
+
+module_param(debug, bool, S_IRUGO | S_IWUSR);
+MODULE_PARM_DESC(debug, "Enable debugging messages");
-diff -Nur linux-3.8.10.orig/drivers/staging/media/lirc/Makefile linux-3.8.10/drivers/staging/media/lirc/Makefile
---- linux-3.8.10.orig/drivers/staging/media/lirc/Makefile 2013-04-26 21:18:32.000000000 +0200
-+++ linux-3.8.10/drivers/staging/media/lirc/Makefile 2013-05-06 12:55:16.000000000 +0200
+diff -Nur linux-3.9.9/drivers/staging/media/lirc/Makefile linux-rpi/drivers/staging/media/lirc/Makefile
+--- linux-3.9.9/drivers/staging/media/lirc/Makefile 2013-07-03 19:56:36.000000000 +0200
++++ linux-rpi/drivers/staging/media/lirc/Makefile 2013-07-08 13:33:17.000000000 +0200
@@ -7,6 +7,7 @@
obj-$(CONFIG_LIRC_IGORPLUGUSB) += lirc_igorplugusb.o
obj-$(CONFIG_LIRC_IMON) += lirc_imon.o
@@ -210759,9 +211284,9 @@ diff -Nur linux-3.8.10.orig/drivers/staging/media/lirc/Makefile linux-3.8.10/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-3.8.10.orig/drivers/thermal/bcm2835-thermal.c linux-3.8.10/drivers/thermal/bcm2835-thermal.c
---- linux-3.8.10.orig/drivers/thermal/bcm2835-thermal.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/thermal/bcm2835-thermal.c 2013-05-06 12:55:16.000000000 +0200
+diff -Nur linux-3.9.9/drivers/thermal/bcm2835-thermal.c linux-rpi/drivers/thermal/bcm2835-thermal.c
+--- linux-3.9.9/drivers/thermal/bcm2835-thermal.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/thermal/bcm2835-thermal.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,184 @@
+/*****************************************************************************
+* Copyright 2011 Broadcom Corporation. All rights reserved.
@@ -210947,12 +211472,12 @@ diff -Nur linux-3.8.10.orig/drivers/thermal/bcm2835-thermal.c linux-3.8.10/drive
+MODULE_DESCRIPTION("Thermal driver for bcm2835 chip");
+
+module_platform_driver(bcm2835_thermal_driver);
-diff -Nur linux-3.8.10.orig/drivers/thermal/Kconfig linux-3.8.10/drivers/thermal/Kconfig
---- linux-3.8.10.orig/drivers/thermal/Kconfig 2013-04-26 21:18:32.000000000 +0200
-+++ linux-3.8.10/drivers/thermal/Kconfig 2013-05-06 12:55:16.000000000 +0200
-@@ -122,4 +122,11 @@
- bound cpufreq cooling device turns active to set CPU frequency low to
- cool down the CPU.
+diff -Nur linux-3.9.9/drivers/thermal/Kconfig linux-rpi/drivers/thermal/Kconfig
+--- linux-3.9.9/drivers/thermal/Kconfig 2013-07-03 19:56:36.000000000 +0200
++++ linux-rpi/drivers/thermal/Kconfig 2013-07-08 13:33:17.000000000 +0200
+@@ -165,4 +165,11 @@
+ enforce idle time which results in more package C-state residency. The
+ user interface is exposed via generic thermal framework.
+config THERMAL_BCM2835
+ tristate "BCM2835 Thermal Driver"
@@ -210962,19 +211487,18 @@ diff -Nur linux-3.8.10.orig/drivers/thermal/Kconfig linux-3.8.10/drivers/thermal
+
endif
+
-diff -Nur linux-3.8.10.orig/drivers/thermal/Makefile linux-3.8.10/drivers/thermal/Makefile
---- linux-3.8.10.orig/drivers/thermal/Makefile 2013-04-26 21:18:32.000000000 +0200
-+++ linux-3.8.10/drivers/thermal/Makefile 2013-05-06 12:55:16.000000000 +0200
-@@ -18,3 +18,6 @@
- obj-$(CONFIG_EXYNOS_THERMAL) += exynos_thermal.o
+diff -Nur linux-3.9.9/drivers/thermal/Makefile linux-rpi/drivers/thermal/Makefile
+--- linux-3.9.9/drivers/thermal/Makefile 2013-07-03 19:56:36.000000000 +0200
++++ linux-rpi/drivers/thermal/Makefile 2013-07-08 13:33:17.000000000 +0200
+@@ -21,4 +21,5 @@
obj-$(CONFIG_DB8500_THERMAL) += db8500_thermal.o
obj-$(CONFIG_DB8500_CPUFREQ_COOLING) += db8500_cpufreq_cooling.o
-+
+ obj-$(CONFIG_INTEL_POWERCLAMP) += intel_powerclamp.o
+obj-$(CONFIG_THERMAL_BCM2835) += bcm2835-thermal.o
-+
-diff -Nur linux-3.8.10.orig/drivers/usb/core/generic.c linux-3.8.10/drivers/usb/core/generic.c
---- linux-3.8.10.orig/drivers/usb/core/generic.c 2013-04-26 21:18:32.000000000 +0200
-+++ linux-3.8.10/drivers/usb/core/generic.c 2013-05-06 12:55:17.000000000 +0200
+
+diff -Nur linux-3.9.9/drivers/usb/core/generic.c linux-rpi/drivers/usb/core/generic.c
+--- linux-3.9.9/drivers/usb/core/generic.c 2013-07-03 19:56:36.000000000 +0200
++++ linux-rpi/drivers/usb/core/generic.c 2013-07-08 13:33:17.000000000 +0200
@@ -152,6 +152,7 @@
dev_warn(&udev->dev,
"no configuration chosen from %d choice%s\n",
@@ -210983,132 +211507,9 @@ diff -Nur linux-3.8.10.orig/drivers/usb/core/generic.c linux-3.8.10/drivers/usb/
}
return i;
}
-diff -Nur linux-3.8.10.orig/drivers/usb/core/hub.c linux-3.8.10/drivers/usb/core/hub.c
---- linux-3.8.10.orig/drivers/usb/core/hub.c 2013-04-26 21:18:32.000000000 +0200
-+++ linux-3.8.10/drivers/usb/core/hub.c 2013-05-06 12:55:17.000000000 +0200
-@@ -25,7 +25,6 @@
- #include <linux/kthread.h>
- #include <linux/mutex.h>
- #include <linux/freezer.h>
--#include <linux/random.h>
-
- #include <asm/uaccess.h>
- #include <asm/byteorder.h>
-@@ -2132,6 +2131,12 @@
- #endif
-
- #ifdef CONFIG_USB_OTG
-+
-+static int enable_whitelist;
-+module_param(enable_whitelist, bool, S_IRUGO | S_IWUSR);
-+MODULE_PARM_DESC(enable_whitelist,
-+ "only recognize devices in OTG whitelist if true");
-+
- #include "otg_whitelist.h"
- #endif
-
-@@ -2186,9 +2191,15 @@
- dev_info(&udev->dev,
- "can't set HNP mode: %d\n",
- err);
-+ dev_printk(KERN_CRIT, &udev->dev,
-+ "Not Connected/Responding\n");
-+
- bus->b_hnp_enable = 0;
-+ } else {
-+ dev_info(&udev->dev,
-+ "HNP Not Supported\n");
- }
-- }
-+ }
- }
- }
-
-@@ -2197,12 +2208,27 @@
- /* Maybe it can talk to us, though we can't talk to it.
- * (Includes HNP test device.)
- */
-- if (udev->bus->b_hnp_enable || udev->bus->is_b_host) {
-+ if (udev->bus->b_hnp_enable || udev->bus->is_b_host ||
-+ udev->descriptor.idVendor == 0x1a0a) {
- err = usb_port_suspend(udev, PMSG_SUSPEND);
-- if (err < 0)
-+ if (err < 0) {
- dev_dbg(&udev->dev, "HNP fail, %d\n", err);
-+ } else {
-+ /* Return Connection Refused(ECONNREFUSED)
-+ * instead of No Device(ENODEV) so that the
-+ * retry loop in hub_port_connect_change() is
-+ * exited without disabling the port
-+ */
-+ err = -ECONNREFUSED;
-+ goto fail;
-+ }
- }
-- err = -ENOTSUPP;
-+ //err = -ENOTSUPP;
-+ /* Return Not Connected (ENOTCONN) instead of No
-+ * Device(ENODEV) so that the retry loop in
-+ * hub_port_connect_change() is exited
-+ */
-+ err = -ENOTCONN;
- goto fail;
- }
- fail:
-@@ -2345,14 +2371,6 @@
- /* Tell the world! */
- announce_device(udev);
-
-- if (udev->serial)
-- add_device_randomness(udev->serial, strlen(udev->serial));
-- if (udev->product)
-- add_device_randomness(udev->product, strlen(udev->product));
-- if (udev->manufacturer)
-- add_device_randomness(udev->manufacturer,
-- strlen(udev->manufacturer));
--
- device_enable_async_suspend(&udev->dev);
-
- /*
-@@ -3000,9 +3018,9 @@
- status = 0;
- } else {
- /* device has up to 10 msec to fully suspend */
-- dev_dbg(&udev->dev, "usb %ssuspend, wakeup %d\n",
-+ /*dev_dbg(&udev->dev, "usb %ssuspend, wakeup %d\n",
- (PMSG_IS_AUTO(msg) ? "auto-" : ""),
-- udev->do_remote_wakeup);
-+ udev->do_remote_wakeup);*/
- usb_set_device_state(udev, USB_STATE_SUSPENDED);
- udev->port_is_suspended = 1;
- msleep(10);
-@@ -4048,7 +4066,9 @@
- buf->bMaxPacketSize0 = 0;
- r = usb_control_msg(udev, usb_rcvaddr0pipe(),
- USB_REQ_GET_DESCRIPTOR, USB_DIR_IN,
-- USB_DT_DEVICE << 8, 0,
-+ USB_DT_DEVICE << 8,
-+ //USB_DT_DEVICE << 64, // DWC patch suggestion!
-+ 0,
- buf, GET_DESCRIPTOR_BUFSIZE,
- initial_descriptor_timeout);
- switch (buf->bMaxPacketSize0) {
-@@ -4500,8 +4520,10 @@
- release_devnum(udev);
- hub_free_dev(udev);
- usb_put_dev(udev);
-- if ((status == -ENOTCONN) || (status == -ENOTSUPP))
-- break;
-+ if (status == -ENOTCONN || status == -ENOTSUPP ||
-+ status == -ECONNREFUSED)
-+ // break; //DWC patch
-+ return;
- }
- if (hub->hdev->parent ||
- !hcd->driver->port_handed_over ||
-diff -Nur linux-3.8.10.orig/drivers/usb/core/message.c linux-3.8.10/drivers/usb/core/message.c
---- linux-3.8.10.orig/drivers/usb/core/message.c 2013-04-26 21:18:32.000000000 +0200
-+++ linux-3.8.10/drivers/usb/core/message.c 2013-05-06 12:55:17.000000000 +0200
+diff -Nur linux-3.9.9/drivers/usb/core/message.c linux-rpi/drivers/usb/core/message.c
+--- linux-3.9.9/drivers/usb/core/message.c 2013-07-03 19:56:36.000000000 +0200
++++ linux-rpi/drivers/usb/core/message.c 2013-07-08 13:33:17.000000000 +0200
@@ -1875,6 +1875,85 @@
if (cp->string == NULL &&
!(dev->quirks & USB_QUIRK_CONFIG_INTF_STRINGS))
@@ -211195,9 +211596,9 @@ diff -Nur linux-3.8.10.orig/drivers/usb/core/message.c linux-3.8.10/drivers/usb/
/* Now that the interfaces are installed, re-enable LPM. */
usb_unlocked_enable_lpm(dev);
-diff -Nur linux-3.8.10.orig/drivers/usb/core/otg_whitelist.h linux-3.8.10/drivers/usb/core/otg_whitelist.h
---- linux-3.8.10.orig/drivers/usb/core/otg_whitelist.h 2013-04-26 21:18:32.000000000 +0200
-+++ linux-3.8.10/drivers/usb/core/otg_whitelist.h 2013-05-06 12:55:17.000000000 +0200
+diff -Nur linux-3.9.9/drivers/usb/core/otg_whitelist.h linux-rpi/drivers/usb/core/otg_whitelist.h
+--- linux-3.9.9/drivers/usb/core/otg_whitelist.h 2013-07-03 19:56:36.000000000 +0200
++++ linux-rpi/drivers/usb/core/otg_whitelist.h 2013-07-08 13:33:17.000000000 +0200
@@ -19,33 +19,82 @@
static struct usb_device_id whitelist_table [] = {
@@ -211413,9 +211814,9 @@ diff -Nur linux-3.8.10.orig/drivers/usb/core/otg_whitelist.h linux-3.8.10/driver
#endif
}
-diff -Nur linux-3.8.10.orig/drivers/usb/gadget/file_storage.c linux-3.8.10/drivers/usb/gadget/file_storage.c
---- linux-3.8.10.orig/drivers/usb/gadget/file_storage.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/usb/gadget/file_storage.c 2013-05-06 12:55:17.000000000 +0200
+diff -Nur linux-3.9.9/drivers/usb/gadget/file_storage.c linux-rpi/drivers/usb/gadget/file_storage.c
+--- linux-3.9.9/drivers/usb/gadget/file_storage.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/usb/gadget/file_storage.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,3676 @@
+/*
+ * file_storage.c -- File-backed USB Storage Gadget, for USB development
@@ -215093,393 +215494,9 @@ diff -Nur linux-3.8.10.orig/drivers/usb/gadget/file_storage.c linux-3.8.10/drive
+ kref_put(&fsg->ref, fsg_release);
+}
+module_exit(fsg_cleanup);
-diff -Nur linux-3.8.10.orig/drivers/usb/gadget/Kconfig linux-3.8.10/drivers/usb/gadget/Kconfig
---- linux-3.8.10.orig/drivers/usb/gadget/Kconfig 2013-04-26 21:18:32.000000000 +0200
-+++ linux-3.8.10/drivers/usb/gadget/Kconfig 2013-05-06 12:55:18.000000000 +0200
-@@ -154,25 +154,16 @@
-
- config USB_ATMEL_USBA
- tristate "Atmel USBA"
-+ select USB_GADGET_DUALSPEED
- depends on AVR32 || ARCH_AT91SAM9RL || ARCH_AT91SAM9G45
- help
- USBA is the integrated high-speed USB Device controller on
- the AT32AP700x, some AT91SAM9 and AT91CAP9 processors from Atmel.
-
--config USB_BCM63XX_UDC
-- tristate "Broadcom BCM63xx Peripheral Controller"
-- depends on BCM63XX
-- help
-- Many Broadcom BCM63xx chipsets (such as the BCM6328) have a
-- high speed USB Device Port with support for four fixed endpoints
-- (plus endpoint zero).
--
-- Say "y" to link the driver statically, or "m" to build a
-- dynamically linked module called "bcm63xx_udc".
--
- config USB_FSL_USB2
- tristate "Freescale Highspeed USB DR Peripheral Controller"
- depends on FSL_SOC || ARCH_MXC
-+ select USB_GADGET_DUALSPEED
- select USB_FSL_MPH_DR_OF if OF
- help
- Some of Freescale PowerPC and i.MX processors have a High Speed
-@@ -188,6 +179,7 @@
- config USB_FUSB300
- tristate "Faraday FUSB300 USB Peripheral Controller"
- depends on !PHYS_ADDR_T_64BIT
-+ select USB_GADGET_DUALSPEED
- help
- Faraday usb device controller FUSB300 driver
-
-@@ -235,6 +227,7 @@
-
- config USB_R8A66597
- tristate "Renesas R8A66597 USB Peripheral Controller"
-+ select USB_GADGET_DUALSPEED
- help
- R8A66597 is a discrete USB host and peripheral controller chip that
- supports both full and high speed USB 2.0 data transfers.
-@@ -247,6 +240,7 @@
- config USB_RENESAS_USBHS_UDC
- tristate 'Renesas USBHS controller'
- depends on USB_RENESAS_USBHS
-+ select USB_GADGET_DUALSPEED
- help
- Renesas USBHS is a discrete USB host and peripheral controller chip
- that supports both full and high speed USB 2.0 data transfers.
-@@ -274,6 +268,7 @@
- config USB_S3C_HSOTG
- tristate "S3C HS/OtG USB Device controller"
- depends on S3C_DEV_USB_HSOTG
-+ select USB_GADGET_DUALSPEED
- help
- The Samsung S3C64XX USB2.0 high-speed gadget controller
- integrated into the S3C64XX series SoC.
-@@ -310,6 +305,7 @@
- config USB_S3C_HSUDC
- tristate "S3C2416, S3C2443 and S3C2450 USB Device Controller"
- depends on ARCH_S3C24XX
-+ select USB_GADGET_DUALSPEED
- help
- Samsung's S3C2416, S3C2443 and S3C2450 is an ARM9 based SoC
- integrated with dual speed USB 2.0 device controller. It has
-@@ -319,6 +315,7 @@
-
- config USB_MV_UDC
- tristate "Marvell USB2.0 Device Controller"
-+ select USB_GADGET_DUALSPEED
- help
- Marvell Socs (including PXA and MMP series) include a high speed
- USB2.0 OTG controller, which can be configured as high speed or
-@@ -341,12 +338,14 @@
- config USB_GADGET_MUSB_HDRC
- tristate "Inventra HDRC USB Peripheral (TI, ADI, ...)"
- depends on USB_MUSB_HDRC
-+ select USB_GADGET_DUALSPEED
- help
- This OTG-capable silicon IP is used in dual designs including
- the TI DaVinci, OMAP 243x, OMAP 343x, TUSB 6010, and ADI Blackfin
-
- config USB_M66592
- tristate "Renesas M66592 USB Peripheral Controller"
-+ select USB_GADGET_DUALSPEED
- help
- M66592 is a discrete USB peripheral controller chip that
- supports both full and high speed USB 2.0 data transfers.
-@@ -363,6 +362,7 @@
- config USB_AMD5536UDC
- tristate "AMD5536 UDC"
- depends on PCI
-+ select USB_GADGET_DUALSPEED
- help
- The AMD5536 UDC is part of the AMD Geode CS5536, an x86 southbridge.
- It is a USB Highspeed DMA capable USB device controller. Beside ep0
-@@ -389,6 +389,7 @@
-
- config USB_NET2272
- tristate "PLX NET2272"
-+ select USB_GADGET_DUALSPEED
- help
- PLX NET2272 is a USB peripheral controller which supports
- both full and high speed USB 2.0 data transfers.
-@@ -412,6 +413,7 @@
- config USB_NET2280
- tristate "NetChip 228x"
- depends on PCI
-+ select USB_GADGET_DUALSPEED
- help
- NetChip 2280 / 2282 is a PCI based USB peripheral controller which
- supports both full and high speed USB 2.0 data transfers.
-@@ -441,6 +443,7 @@
- config USB_EG20T
- tristate "Intel EG20T PCH/LAPIS Semiconductor IOH(ML7213/ML7831) UDC"
- depends on PCI
-+ select USB_GADGET_DUALSPEED
- help
- This is a USB device driver for EG20T PCH.
- EG20T PCH is the platform controller hub that is used in Intel's
-@@ -467,6 +470,8 @@
- config USB_DUMMY_HCD
- tristate "Dummy HCD (DEVELOPMENT)"
- depends on USB=y || (USB=m && USB_GADGET=m)
-+ select USB_GADGET_DUALSPEED
-+ select USB_GADGET_SUPERSPEED
- help
- This host controller driver emulates USB, looping all data transfer
- requests back to a USB "gadget driver" in the same host. The host
-@@ -491,15 +496,18 @@
-
- endmenu
-
-+# Selected by UDC drivers that support high-speed operation.
-+config USB_GADGET_DUALSPEED
-+ bool
-+
-+# Selected by UDC drivers that support super-speed opperation
-+config USB_GADGET_SUPERSPEED
-+ bool
-+ depends on USB_GADGET_DUALSPEED
-+
- #
- # USB Gadget Drivers
- #
--
--# composite based drivers
--config USB_LIBCOMPOSITE
-- tristate
-- depends on USB_GADGET
--
- choice
- tristate "USB Gadget Drivers"
- default USB_ETH
-@@ -523,7 +531,6 @@
-
- config USB_ZERO
- tristate "Gadget Zero (DEVELOPMENT)"
-- select USB_LIBCOMPOSITE
- help
- Gadget Zero is a two-configuration device. It either sinks and
- sources bulk data; or it loops back a configurable number of
-@@ -557,9 +564,8 @@
- one serve as the USB host instead (in the "B-Host" role).
-
- config USB_AUDIO
-- tristate "Audio Gadget"
-+ tristate "Audio Gadget (EXPERIMENTAL)"
- depends on SND
-- select USB_LIBCOMPOSITE
- select SND_PCM
- help
- This Gadget Audio driver is compatible with USB Audio Class
-@@ -588,7 +594,6 @@
- config USB_ETH
- tristate "Ethernet Gadget (with CDC Ethernet support)"
- depends on NET
-- select USB_LIBCOMPOSITE
- select CRC32
- help
- This driver implements Ethernet style communication, in one of
-@@ -624,7 +629,6 @@
- config USB_ETH_RNDIS
- bool "RNDIS support"
- depends on USB_ETH
-- select USB_LIBCOMPOSITE
- default y
- help
- Microsoft Windows XP bundles the "Remote NDIS" (RNDIS) protocol,
-@@ -643,7 +647,6 @@
- config USB_ETH_EEM
- bool "Ethernet Emulation Model (EEM) support"
- depends on USB_ETH
-- select USB_LIBCOMPOSITE
- default n
- help
- CDC EEM is a newer USB standard that is somewhat simpler than CDC ECM
-@@ -660,7 +663,6 @@
- config USB_G_NCM
- tristate "Network Control Model (NCM) support"
- depends on NET
-- select USB_LIBCOMPOSITE
- select CRC32
- help
- This driver implements USB CDC NCM subclass standard. NCM is
-@@ -672,7 +674,8 @@
- dynamically linked module called "g_ncm".
-
- config USB_GADGETFS
-- tristate "Gadget Filesystem"
-+ tristate "Gadget Filesystem (EXPERIMENTAL)"
-+ depends on EXPERIMENTAL
- help
- This driver provides a filesystem based API that lets user mode
- programs implement a single-configuration USB device, including
-@@ -680,12 +683,15 @@
- All endpoints, transfer speeds, and transfer types supported by
- the hardware are available, through read() and write() calls.
-
-+ Currently, this option is still labelled as EXPERIMENTAL because
-+ of existing race conditions in the underlying in-kernel AIO core.
-+
- Say "y" to link the driver statically, or "m" to build a
- dynamically linked module called "gadgetfs".
-
- config USB_FUNCTIONFS
-- tristate "Function Filesystem"
-- select USB_LIBCOMPOSITE
-+ tristate "Function Filesystem (EXPERIMENTAL)"
-+ depends on EXPERIMENTAL
- select USB_FUNCTIONFS_GENERIC if !(USB_FUNCTIONFS_ETH || USB_FUNCTIONFS_RNDIS)
- help
- The Function Filesystem (FunctionFS) lets one create USB
-@@ -721,18 +727,42 @@
- Include a configuration with the Function Filesystem alone with
- no Ethernet interface.
-
-+config USB_FILE_STORAGE
-+ tristate "File-backed Storage Gadget (DEPRECATED)"
-+ depends on BLOCK
-+ help
-+ The File-backed Storage Gadget acts as a USB Mass Storage
-+ disk drive. As its storage repository it can use a regular
-+ file or a block device (in much the same way as the "loop"
-+ device driver), specified as a module parameter.
-+
-+ Say "y" to link the driver statically, or "m" to build a
-+ dynamically linked module called "g_file_storage".
-+
-+ NOTE: This driver is deprecated. Its replacement is the
-+ Mass Storage Gadget.
-+
-+config USB_FILE_STORAGE_TEST
-+ bool "File-backed Storage Gadget testing version"
-+ depends on USB_FILE_STORAGE
-+ default n
-+ help
-+ Say "y" to generate the larger testing version of the
-+ File-backed Storage Gadget, useful for probing the
-+ behavior of USB Mass Storage hosts. Not needed for
-+ normal operation.
-+
- config USB_MASS_STORAGE
- tristate "Mass Storage Gadget"
- depends on BLOCK
-- select USB_LIBCOMPOSITE
- help
- The Mass Storage Gadget acts as a USB Mass Storage disk drive.
- As its storage repository it can use a regular file or a block
- device (in much the same way as the "loop" device driver),
- specified as a module parameter or sysfs option.
-
-- This driver is a replacement for now removed File-backed
-- Storage Gadget (g_file_storage).
-+ This driver is an updated replacement for the deprecated
-+ File-backed Storage Gadget (g_file_storage).
-
- Say "y" to link the driver statically, or "m" to build
- a dynamically linked module called "g_mass_storage".
-@@ -740,7 +770,6 @@
- config USB_GADGET_TARGET
- tristate "USB Gadget Target Fabric Module"
- depends on TARGET_CORE
-- select USB_LIBCOMPOSITE
- help
- This fabric is an USB gadget. Two USB protocols are supported that is
- BBB or BOT (Bulk Only Transport) and UAS (USB Attached SCSI). BOT is
-@@ -750,7 +779,6 @@
-
- config USB_G_SERIAL
- tristate "Serial Gadget (with CDC ACM and CDC OBEX support)"
-- select USB_LIBCOMPOSITE
- help
- The Serial Gadget talks to the Linux-USB generic serial driver.
- This driver supports a CDC-ACM module option, which can be used
-@@ -769,9 +797,8 @@
- make MS-Windows work with CDC ACM.
-
- config USB_MIDI_GADGET
-- tristate "MIDI Gadget"
-- depends on SND
-- select USB_LIBCOMPOSITE
-+ tristate "MIDI Gadget (EXPERIMENTAL)"
-+ depends on SND && EXPERIMENTAL
- select SND_RAWMIDI
- help
- The MIDI Gadget acts as a USB Audio device, with one MIDI
-@@ -785,7 +812,6 @@
-
- config USB_G_PRINTER
- tristate "Printer Gadget"
-- select USB_LIBCOMPOSITE
- help
- The Printer Gadget channels data between the USB host and a
- userspace program driving the print engine. The user space
-@@ -802,7 +828,6 @@
- config USB_CDC_COMPOSITE
- tristate "CDC Composite Device (Ethernet and ACM)"
- depends on NET
-- select USB_LIBCOMPOSITE
- help
- This driver provides two functions in one configuration:
- a CDC Ethernet (ECM) link, and a CDC ACM (serial port) link.
-@@ -817,7 +842,6 @@
- config USB_G_NOKIA
- tristate "Nokia composite gadget"
- depends on PHONET
-- select USB_LIBCOMPOSITE
- help
- The Nokia composite gadget provides support for acm, obex
- and phonet in only one composite gadget driver.
-@@ -828,7 +852,6 @@
- config USB_G_ACM_MS
- tristate "CDC Composite Device (ACM and mass storage)"
- depends on BLOCK
-- select USB_LIBCOMPOSITE
- help
- This driver provides two functions in one configuration:
- a mass storage, and a CDC ACM (serial port) link.
-@@ -837,10 +860,9 @@
- dynamically linked module called "g_acm_ms".
-
- config USB_G_MULTI
-- tristate "Multifunction Composite Gadget"
-+ tristate "Multifunction Composite Gadget (EXPERIMENTAL)"
- depends on BLOCK && NET
- select USB_G_MULTI_CDC if !USB_G_MULTI_RNDIS
-- select USB_LIBCOMPOSITE
- help
- The Multifunction Composite Gadget provides Ethernet (RNDIS
- and/or CDC Ethernet), mass storage and ACM serial link
-@@ -881,7 +903,6 @@
-
- config USB_G_HID
- tristate "HID Gadget"
-- select USB_LIBCOMPOSITE
- help
- The HID gadget driver provides generic emulation of USB
- Human Interface Devices (HID).
-@@ -892,10 +913,8 @@
- Say "y" to link the driver statically, or "m" to build a
- dynamically linked module called "g_hid".
-
--# Standalone / single function gadgets
- config USB_G_DBGP
- tristate "EHCI Debug Device Gadget"
-- select USB_LIBCOMPOSITE
- help
- This gadget emulates an EHCI Debug device. This is useful when you want
- to interact with an EHCI Debug Port.
-@@ -927,7 +946,6 @@
- config USB_G_WEBCAM
- tristate "USB Webcam Gadget"
- depends on VIDEO_DEV
-- select USB_LIBCOMPOSITE
- help
- The Webcam Gadget acts as a composite USB Audio and Video Class
- device. It provides a userspace API to process UVC control requests
-diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_common_port/changes.txt linux-3.8.10/drivers/usb/host/dwc_common_port/changes.txt
---- linux-3.8.10.orig/drivers/usb/host/dwc_common_port/changes.txt 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/usb/host/dwc_common_port/changes.txt 2013-05-06 12:55:18.000000000 +0200
+diff -Nur linux-3.9.9/drivers/usb/host/dwc_common_port/changes.txt linux-rpi/drivers/usb/host/dwc_common_port/changes.txt
+--- linux-3.9.9/drivers/usb/host/dwc_common_port/changes.txt 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/usb/host/dwc_common_port/changes.txt 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,174 @@
+
+dwc_read_reg32() and friends now take an additional parameter, a pointer to an
@@ -215655,9 +215672,9 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_common_port/changes.txt linux-3
+A DWC_LIBMODULE #define has also been added. If this is not defined, then the
+module code in dwc_common_linux.c is not compiled in. This allows linking the
+library code directly into a driver module, instead of as a standalone module.
-diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_common_port/doc/doxygen.cfg linux-3.8.10/drivers/usb/host/dwc_common_port/doc/doxygen.cfg
---- linux-3.8.10.orig/drivers/usb/host/dwc_common_port/doc/doxygen.cfg 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/usb/host/dwc_common_port/doc/doxygen.cfg 2013-05-06 12:55:18.000000000 +0200
+diff -Nur linux-3.9.9/drivers/usb/host/dwc_common_port/doc/doxygen.cfg linux-rpi/drivers/usb/host/dwc_common_port/doc/doxygen.cfg
+--- linux-3.9.9/drivers/usb/host/dwc_common_port/doc/doxygen.cfg 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/usb/host/dwc_common_port/doc/doxygen.cfg 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,270 @@
+# Doxyfile 1.4.5
+
@@ -215929,9 +215946,9 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_common_port/doc/doxygen.cfg lin
+# Configuration::additions related to the search engine
+#---------------------------------------------------------------------------
+SEARCHENGINE = NO
-diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_common_port/dwc_cc.c linux-3.8.10/drivers/usb/host/dwc_common_port/dwc_cc.c
---- linux-3.8.10.orig/drivers/usb/host/dwc_common_port/dwc_cc.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/usb/host/dwc_common_port/dwc_cc.c 2013-05-06 12:55:18.000000000 +0200
+diff -Nur linux-3.9.9/drivers/usb/host/dwc_common_port/dwc_cc.c linux-rpi/drivers/usb/host/dwc_common_port/dwc_cc.c
+--- linux-3.9.9/drivers/usb/host/dwc_common_port/dwc_cc.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/usb/host/dwc_common_port/dwc_cc.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,532 @@
+/* =========================================================================
+ * $File: //dwh/usb_iip/dev/software/dwc_common_port_2/dwc_cc.c $
@@ -216465,9 +216482,9 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_common_port/dwc_cc.c linux-3.8.
+}
+
+#endif /* DWC_CCLIB */
-diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_common_port/dwc_cc.h linux-3.8.10/drivers/usb/host/dwc_common_port/dwc_cc.h
---- linux-3.8.10.orig/drivers/usb/host/dwc_common_port/dwc_cc.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/usb/host/dwc_common_port/dwc_cc.h 2013-05-06 12:55:18.000000000 +0200
+diff -Nur linux-3.9.9/drivers/usb/host/dwc_common_port/dwc_cc.h linux-rpi/drivers/usb/host/dwc_common_port/dwc_cc.h
+--- linux-3.9.9/drivers/usb/host/dwc_common_port/dwc_cc.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/usb/host/dwc_common_port/dwc_cc.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,225 @@
+/* =========================================================================
+ * $File: //dwh/usb_iip/dev/software/dwc_common_port_2/dwc_cc.h $
@@ -216694,9 +216711,9 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_common_port/dwc_cc.h linux-3.8.
+
+#endif /* _DWC_CC_H_ */
+
-diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_common_port/dwc_common_fbsd.c linux-3.8.10/drivers/usb/host/dwc_common_port/dwc_common_fbsd.c
---- linux-3.8.10.orig/drivers/usb/host/dwc_common_port/dwc_common_fbsd.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/usb/host/dwc_common_port/dwc_common_fbsd.c 2013-05-06 12:55:18.000000000 +0200
+diff -Nur linux-3.9.9/drivers/usb/host/dwc_common_port/dwc_common_fbsd.c linux-rpi/drivers/usb/host/dwc_common_port/dwc_common_fbsd.c
+--- linux-3.9.9/drivers/usb/host/dwc_common_port/dwc_common_fbsd.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/usb/host/dwc_common_port/dwc_common_fbsd.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,1308 @@
+#include "dwc_os.h"
+#include "dwc_list.h"
@@ -218006,10 +218023,10 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_common_port/dwc_common_fbsd.c l
+{
+ return wq->pending;
+}
-diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_common_port/dwc_common_linux.c linux-3.8.10/drivers/usb/host/dwc_common_port/dwc_common_linux.c
---- linux-3.8.10.orig/drivers/usb/host/dwc_common_port/dwc_common_linux.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/usb/host/dwc_common_port/dwc_common_linux.c 2013-05-06 12:55:18.000000000 +0200
-@@ -0,0 +1,1426 @@
+diff -Nur linux-3.9.9/drivers/usb/host/dwc_common_port/dwc_common_linux.c linux-rpi/drivers/usb/host/dwc_common_port/dwc_common_linux.c
+--- linux-3.9.9/drivers/usb/host/dwc_common_port/dwc_common_linux.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/usb/host/dwc_common_port/dwc_common_linux.c 2013-07-08 13:33:17.000000000 +0200
+@@ -0,0 +1,1431 @@
+#include <linux/kernel.h>
+#include <linux/init.h>
+#include <linux/module.h>
@@ -218592,7 +218609,12 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_common_port/dwc_common_linux.c
+
+void DWC_MODIFY_REG32(uint32_t volatile *reg, uint32_t clear_mask, uint32_t set_mask)
+{
++ unsigned long flags;
++
++ local_irq_save(flags);
++ local_fiq_disable();
+ writel((readl(reg) & ~clear_mask) | set_mask, reg);
++ local_irq_restore(flags);
+}
+
+#if 0
@@ -219313,7 +219335,7 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_common_port/dwc_common_linux.c
+EXPORT_SYMBOL(__DWC_DEBUG);
+#endif
+
-+EXPORT_SYMBOL(__DWC_DMA_ALLOC);
++EXPORT_SYMBOL(__DWC_DMA_ALLOC);
+EXPORT_SYMBOL(__DWC_DMA_ALLOC_ATOMIC);
+EXPORT_SYMBOL(__DWC_DMA_FREE);
+EXPORT_SYMBOL(__DWC_ALLOC);
@@ -219436,9 +219458,9 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_common_port/dwc_common_linux.c
+MODULE_LICENSE ("GPL");
+
+#endif /* DWC_LIBMODULE */
-diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_common_port/dwc_common_nbsd.c linux-3.8.10/drivers/usb/host/dwc_common_port/dwc_common_nbsd.c
---- linux-3.8.10.orig/drivers/usb/host/dwc_common_port/dwc_common_nbsd.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/usb/host/dwc_common_port/dwc_common_nbsd.c 2013-05-06 12:55:18.000000000 +0200
+diff -Nur linux-3.9.9/drivers/usb/host/dwc_common_port/dwc_common_nbsd.c linux-rpi/drivers/usb/host/dwc_common_port/dwc_common_nbsd.c
+--- linux-3.9.9/drivers/usb/host/dwc_common_port/dwc_common_nbsd.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/usb/host/dwc_common_port/dwc_common_nbsd.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,1275 @@
+#include "dwc_os.h"
+#include "dwc_list.h"
@@ -220715,9 +220737,9 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_common_port/dwc_common_nbsd.c l
+{
+ return wq->pending;
+}
-diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_common_port/dwc_crypto.c linux-3.8.10/drivers/usb/host/dwc_common_port/dwc_crypto.c
---- linux-3.8.10.orig/drivers/usb/host/dwc_common_port/dwc_crypto.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/usb/host/dwc_common_port/dwc_crypto.c 2013-05-06 12:55:18.000000000 +0200
+diff -Nur linux-3.9.9/drivers/usb/host/dwc_common_port/dwc_crypto.c linux-rpi/drivers/usb/host/dwc_common_port/dwc_crypto.c
+--- linux-3.9.9/drivers/usb/host/dwc_common_port/dwc_crypto.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/usb/host/dwc_common_port/dwc_crypto.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,308 @@
+/* =========================================================================
+ * $File: //dwh/usb_iip/dev/software/dwc_common_port_2/dwc_crypto.c $
@@ -221027,9 +221049,9 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_common_port/dwc_crypto.c linux-
+}
+
+#endif /* DWC_CRYPTOLIB */
-diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_common_port/dwc_crypto.h linux-3.8.10/drivers/usb/host/dwc_common_port/dwc_crypto.h
---- linux-3.8.10.orig/drivers/usb/host/dwc_common_port/dwc_crypto.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/usb/host/dwc_common_port/dwc_crypto.h 2013-05-06 12:55:18.000000000 +0200
+diff -Nur linux-3.9.9/drivers/usb/host/dwc_common_port/dwc_crypto.h linux-rpi/drivers/usb/host/dwc_common_port/dwc_crypto.h
+--- linux-3.9.9/drivers/usb/host/dwc_common_port/dwc_crypto.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/usb/host/dwc_common_port/dwc_crypto.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,111 @@
+/* =========================================================================
+ * $File: //dwh/usb_iip/dev/software/dwc_common_port_2/dwc_crypto.h $
@@ -221142,9 +221164,9 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_common_port/dwc_crypto.h linux-
+#endif
+
+#endif /* _DWC_CRYPTO_H_ */
-diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_common_port/dwc_dh.c linux-3.8.10/drivers/usb/host/dwc_common_port/dwc_dh.c
---- linux-3.8.10.orig/drivers/usb/host/dwc_common_port/dwc_dh.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/usb/host/dwc_common_port/dwc_dh.c 2013-05-06 12:55:18.000000000 +0200
+diff -Nur linux-3.9.9/drivers/usb/host/dwc_common_port/dwc_dh.c linux-rpi/drivers/usb/host/dwc_common_port/dwc_dh.c
+--- linux-3.9.9/drivers/usb/host/dwc_common_port/dwc_dh.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/usb/host/dwc_common_port/dwc_dh.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,291 @@
+/* =========================================================================
+ * $File: //dwh/usb_iip/dev/software/dwc_common_port_2/dwc_dh.c $
@@ -221437,9 +221459,9 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_common_port/dwc_dh.c linux-3.8.
+#endif /* !CONFIG_MACH_IPMATE */
+
+#endif /* DWC_CRYPTOLIB */
-diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_common_port/dwc_dh.h linux-3.8.10/drivers/usb/host/dwc_common_port/dwc_dh.h
---- linux-3.8.10.orig/drivers/usb/host/dwc_common_port/dwc_dh.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/usb/host/dwc_common_port/dwc_dh.h 2013-05-06 12:55:18.000000000 +0200
+diff -Nur linux-3.9.9/drivers/usb/host/dwc_common_port/dwc_dh.h linux-rpi/drivers/usb/host/dwc_common_port/dwc_dh.h
+--- linux-3.9.9/drivers/usb/host/dwc_common_port/dwc_dh.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/usb/host/dwc_common_port/dwc_dh.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,106 @@
+/* =========================================================================
+ * $File: //dwh/usb_iip/dev/software/dwc_common_port_2/dwc_dh.h $
@@ -221547,9 +221569,9 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_common_port/dwc_dh.h linux-3.8.
+#endif
+
+#endif /* _DWC_DH_H_ */
-diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_common_port/dwc_list.h linux-3.8.10/drivers/usb/host/dwc_common_port/dwc_list.h
---- linux-3.8.10.orig/drivers/usb/host/dwc_common_port/dwc_list.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/usb/host/dwc_common_port/dwc_list.h 2013-05-06 12:55:18.000000000 +0200
+diff -Nur linux-3.9.9/drivers/usb/host/dwc_common_port/dwc_list.h linux-rpi/drivers/usb/host/dwc_common_port/dwc_list.h
+--- linux-3.9.9/drivers/usb/host/dwc_common_port/dwc_list.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/usb/host/dwc_common_port/dwc_list.h 2013-07-08 13:33:17.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 $ */
@@ -222145,9 +222167,9 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_common_port/dwc_list.h linux-3.
+#endif
+
+#endif /* _DWC_LIST_H_ */
-diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_common_port/dwc_mem.c linux-3.8.10/drivers/usb/host/dwc_common_port/dwc_mem.c
---- linux-3.8.10.orig/drivers/usb/host/dwc_common_port/dwc_mem.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/usb/host/dwc_common_port/dwc_mem.c 2013-05-06 12:55:18.000000000 +0200
+diff -Nur linux-3.9.9/drivers/usb/host/dwc_common_port/dwc_mem.c linux-rpi/drivers/usb/host/dwc_common_port/dwc_mem.c
+--- linux-3.9.9/drivers/usb/host/dwc_common_port/dwc_mem.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/usb/host/dwc_common_port/dwc_mem.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,245 @@
+/* Memory Debugging */
+#ifdef DWC_DEBUG_MEMORY
@@ -222394,9 +222416,9 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_common_port/dwc_mem.c linux-3.8
+}
+
+#endif /* DWC_DEBUG_MEMORY */
-diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_common_port/dwc_modpow.c linux-3.8.10/drivers/usb/host/dwc_common_port/dwc_modpow.c
---- linux-3.8.10.orig/drivers/usb/host/dwc_common_port/dwc_modpow.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/usb/host/dwc_common_port/dwc_modpow.c 2013-05-06 12:55:18.000000000 +0200
+diff -Nur linux-3.9.9/drivers/usb/host/dwc_common_port/dwc_modpow.c linux-rpi/drivers/usb/host/dwc_common_port/dwc_modpow.c
+--- linux-3.9.9/drivers/usb/host/dwc_common_port/dwc_modpow.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/usb/host/dwc_common_port/dwc_modpow.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,636 @@
+/* Bignum routines adapted from PUTTY sources. PuTTY copyright notice follows.
+ *
@@ -223034,9 +223056,9 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_common_port/dwc_modpow.c linux-
+#endif /* CONFIG_MACH_IPMATE */
+
+#endif /*DWC_CRYPTOLIB */
-diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_common_port/dwc_modpow.h linux-3.8.10/drivers/usb/host/dwc_common_port/dwc_modpow.h
---- linux-3.8.10.orig/drivers/usb/host/dwc_common_port/dwc_modpow.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/usb/host/dwc_common_port/dwc_modpow.h 2013-05-06 12:55:18.000000000 +0200
+diff -Nur linux-3.9.9/drivers/usb/host/dwc_common_port/dwc_modpow.h linux-rpi/drivers/usb/host/dwc_common_port/dwc_modpow.h
+--- linux-3.9.9/drivers/usb/host/dwc_common_port/dwc_modpow.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/usb/host/dwc_common_port/dwc_modpow.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,34 @@
+/*
+ * dwc_modpow.h
@@ -223072,9 +223094,9 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_common_port/dwc_modpow.h linux-
+#endif
+
+#endif /* _LINUX_BIGNUM_H */
-diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_common_port/dwc_notifier.c linux-3.8.10/drivers/usb/host/dwc_common_port/dwc_notifier.c
---- linux-3.8.10.orig/drivers/usb/host/dwc_common_port/dwc_notifier.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/usb/host/dwc_common_port/dwc_notifier.c 2013-05-06 12:55:18.000000000 +0200
+diff -Nur linux-3.9.9/drivers/usb/host/dwc_common_port/dwc_notifier.c linux-rpi/drivers/usb/host/dwc_common_port/dwc_notifier.c
+--- linux-3.9.9/drivers/usb/host/dwc_common_port/dwc_notifier.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/usb/host/dwc_common_port/dwc_notifier.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,319 @@
+#ifdef DWC_NOTIFYLIB
+
@@ -223395,9 +223417,9 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_common_port/dwc_notifier.c linu
+}
+
+#endif /* DWC_NOTIFYLIB */
-diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_common_port/dwc_notifier.h linux-3.8.10/drivers/usb/host/dwc_common_port/dwc_notifier.h
---- linux-3.8.10.orig/drivers/usb/host/dwc_common_port/dwc_notifier.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/usb/host/dwc_common_port/dwc_notifier.h 2013-05-06 12:55:18.000000000 +0200
+diff -Nur linux-3.9.9/drivers/usb/host/dwc_common_port/dwc_notifier.h linux-rpi/drivers/usb/host/dwc_common_port/dwc_notifier.h
+--- linux-3.9.9/drivers/usb/host/dwc_common_port/dwc_notifier.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/usb/host/dwc_common_port/dwc_notifier.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,122 @@
+
+#ifndef __DWC_NOTIFIER_H__
@@ -223521,9 +223543,9 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_common_port/dwc_notifier.h linu
+#endif
+
+#endif /* __DWC_NOTIFIER_H__ */
-diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_common_port/dwc_os.h linux-3.8.10/drivers/usb/host/dwc_common_port/dwc_os.h
---- linux-3.8.10.orig/drivers/usb/host/dwc_common_port/dwc_os.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/usb/host/dwc_common_port/dwc_os.h 2013-05-06 12:55:18.000000000 +0200
+diff -Nur linux-3.9.9/drivers/usb/host/dwc_common_port/dwc_os.h linux-rpi/drivers/usb/host/dwc_common_port/dwc_os.h
+--- linux-3.9.9/drivers/usb/host/dwc_common_port/dwc_os.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/usb/host/dwc_common_port/dwc_os.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,1262 @@
+/* =========================================================================
+ * $File: //dwh/usb_iip/dev/software/dwc_common_port_2/dwc_os.h $
@@ -224787,9 +224809,9 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_common_port/dwc_os.h linux-3.8.
+#endif
+
+#endif /* _DWC_OS_H_ */
-diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_common_port/Makefile linux-3.8.10/drivers/usb/host/dwc_common_port/Makefile
---- linux-3.8.10.orig/drivers/usb/host/dwc_common_port/Makefile 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/usb/host/dwc_common_port/Makefile 2013-05-06 12:55:18.000000000 +0200
+diff -Nur linux-3.9.9/drivers/usb/host/dwc_common_port/Makefile linux-rpi/drivers/usb/host/dwc_common_port/Makefile
+--- linux-3.9.9/drivers/usb/host/dwc_common_port/Makefile 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/usb/host/dwc_common_port/Makefile 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,58 @@
+#
+# Makefile for DWC_common library
@@ -224849,9 +224871,9 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_common_port/Makefile linux-3.8.
+
+clean:
+ rm -rf *.o *.ko .*.cmd *.mod.c .*.o.d .*.o.tmp modules.order Module.markers Module.symvers .tmp_versions/
-diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_common_port/Makefile.fbsd linux-3.8.10/drivers/usb/host/dwc_common_port/Makefile.fbsd
---- linux-3.8.10.orig/drivers/usb/host/dwc_common_port/Makefile.fbsd 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/usb/host/dwc_common_port/Makefile.fbsd 2013-05-06 12:55:18.000000000 +0200
+diff -Nur linux-3.9.9/drivers/usb/host/dwc_common_port/Makefile.fbsd linux-rpi/drivers/usb/host/dwc_common_port/Makefile.fbsd
+--- linux-3.9.9/drivers/usb/host/dwc_common_port/Makefile.fbsd 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/usb/host/dwc_common_port/Makefile.fbsd 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,17 @@
+CFLAGS += -I/sys/i386/compile/GENERIC -I/sys/i386/include -I/usr/include
+CFLAGS += -DDWC_FREEBSD
@@ -224870,9 +224892,9 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_common_port/Makefile.fbsd linux
+ dwc_common_fbsd.c dwc_mem.c
+
+.include <bsd.kmod.mk>
-diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_common_port/Makefile.linux linux-3.8.10/drivers/usb/host/dwc_common_port/Makefile.linux
---- linux-3.8.10.orig/drivers/usb/host/dwc_common_port/Makefile.linux 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/usb/host/dwc_common_port/Makefile.linux 2013-05-06 12:55:18.000000000 +0200
+diff -Nur linux-3.9.9/drivers/usb/host/dwc_common_port/Makefile.linux linux-rpi/drivers/usb/host/dwc_common_port/Makefile.linux
+--- linux-3.9.9/drivers/usb/host/dwc_common_port/Makefile.linux 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/usb/host/dwc_common_port/Makefile.linux 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,49 @@
+#
+# Makefile for DWC_common library
@@ -224923,9 +224945,9 @@ diff -Nur linux-3.8.10.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-3.8.10.orig/drivers/usb/host/dwc_common_port/usb.h linux-3.8.10/drivers/usb/host/dwc_common_port/usb.h
---- linux-3.8.10.orig/drivers/usb/host/dwc_common_port/usb.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/usb/host/dwc_common_port/usb.h 2013-05-06 12:55:18.000000000 +0200
+diff -Nur linux-3.9.9/drivers/usb/host/dwc_common_port/usb.h linux-rpi/drivers/usb/host/dwc_common_port/usb.h
+--- linux-3.9.9/drivers/usb/host/dwc_common_port/usb.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/usb/host/dwc_common_port/usb.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,946 @@
+/*
+ * Copyright (c) 1998 The NetBSD Foundation, Inc.
@@ -225873,9 +225895,9 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_common_port/usb.h linux-3.8.10/
+#endif
+
+#endif /* _USB_H_ */
-diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/doc/doxygen.cfg linux-3.8.10/drivers/usb/host/dwc_otg/doc/doxygen.cfg
---- linux-3.8.10.orig/drivers/usb/host/dwc_otg/doc/doxygen.cfg 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/usb/host/dwc_otg/doc/doxygen.cfg 2013-05-06 12:55:18.000000000 +0200
+diff -Nur linux-3.9.9/drivers/usb/host/dwc_otg/doc/doxygen.cfg linux-rpi/drivers/usb/host/dwc_otg/doc/doxygen.cfg
+--- linux-3.9.9/drivers/usb/host/dwc_otg/doc/doxygen.cfg 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/usb/host/dwc_otg/doc/doxygen.cfg 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,224 @@
+# Doxyfile 1.3.9.1
+
@@ -226101,9 +226123,9 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/doc/doxygen.cfg linux-3.8.1
+# Configuration::additions related to the search engine
+#---------------------------------------------------------------------------
+SEARCHENGINE = NO
-diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dummy_audio.c linux-3.8.10/drivers/usb/host/dwc_otg/dummy_audio.c
---- linux-3.8.10.orig/drivers/usb/host/dwc_otg/dummy_audio.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/usb/host/dwc_otg/dummy_audio.c 2013-05-06 12:55:18.000000000 +0200
+diff -Nur linux-3.9.9/drivers/usb/host/dwc_otg/dummy_audio.c linux-rpi/drivers/usb/host/dwc_otg/dummy_audio.c
+--- linux-3.9.9/drivers/usb/host/dwc_otg/dummy_audio.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/usb/host/dwc_otg/dummy_audio.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,1575 @@
+/*
+ * zero.c -- Gadget Zero, for USB development
@@ -227680,9 +227702,9 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dummy_audio.c linux-3.8.10/
+ remove_proc_entry("isoc_test", NULL);
+}
+module_exit (cleanup);
-diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_cfi_common.h linux-3.8.10/drivers/usb/host/dwc_otg/dwc_cfi_common.h
---- linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_cfi_common.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/usb/host/dwc_otg/dwc_cfi_common.h 2013-05-06 12:55:18.000000000 +0200
+diff -Nur linux-3.9.9/drivers/usb/host/dwc_otg/dwc_cfi_common.h linux-rpi/drivers/usb/host/dwc_otg/dwc_cfi_common.h
+--- linux-3.9.9/drivers/usb/host/dwc_otg/dwc_cfi_common.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/usb/host/dwc_otg/dwc_cfi_common.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,142 @@
+/* ==========================================================================
+ * Synopsys HS OTG Linux Software Driver and documentation (hereinafter,
@@ -227826,9 +227848,9 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_cfi_common.h linux-3.8.
+typedef struct cfi_string cfi_string_t;
+
+#endif
-diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_adp.c linux-3.8.10/drivers/usb/host/dwc_otg/dwc_otg_adp.c
---- linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_adp.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/usb/host/dwc_otg/dwc_otg_adp.c 2013-05-06 12:55:18.000000000 +0200
+diff -Nur linux-3.9.9/drivers/usb/host/dwc_otg/dwc_otg_adp.c linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_adp.c
+--- linux-3.9.9/drivers/usb/host/dwc_otg/dwc_otg_adp.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_adp.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,854 @@
+/* ==========================================================================
+ * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_adp.c $
@@ -228684,9 +228706,9 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_adp.c linux-3.8.10/
+#endif
+ return 1;
+}
-diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_adp.h linux-3.8.10/drivers/usb/host/dwc_otg/dwc_otg_adp.h
---- linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_adp.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/usb/host/dwc_otg/dwc_otg_adp.h 2013-05-06 12:55:18.000000000 +0200
+diff -Nur linux-3.9.9/drivers/usb/host/dwc_otg/dwc_otg_adp.h linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_adp.h
+--- linux-3.9.9/drivers/usb/host/dwc_otg/dwc_otg_adp.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_adp.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,80 @@
+/* ==========================================================================
+ * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_adp.h $
@@ -228768,9 +228790,9 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_adp.h linux-3.8.10/
+extern int32_t dwc_otg_adp_handle_srp_intr(dwc_otg_core_if_t * core_if);
+
+#endif //__DWC_OTG_ADP_H__
-diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_attr.c linux-3.8.10/drivers/usb/host/dwc_otg/dwc_otg_attr.c
---- linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_attr.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/usb/host/dwc_otg/dwc_otg_attr.c 2013-05-06 12:55:18.000000000 +0200
+diff -Nur linux-3.9.9/drivers/usb/host/dwc_otg/dwc_otg_attr.c linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_attr.c
+--- linux-3.9.9/drivers/usb/host/dwc_otg/dwc_otg_attr.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_attr.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,1210 @@
+/* ==========================================================================
+ * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_attr.c $
@@ -229982,9 +230004,9 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_attr.c linux-3.8.10
+ device_remove_file(&dev->dev, &dev_attr_sleep_status);
+#endif
+}
-diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_attr.h linux-3.8.10/drivers/usb/host/dwc_otg/dwc_otg_attr.h
---- linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_attr.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/usb/host/dwc_otg/dwc_otg_attr.h 2013-05-06 12:55:18.000000000 +0200
+diff -Nur linux-3.9.9/drivers/usb/host/dwc_otg/dwc_otg_attr.h linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_attr.h
+--- linux-3.9.9/drivers/usb/host/dwc_otg/dwc_otg_attr.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_attr.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,89 @@
+/* ==========================================================================
+ * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_attr.h $
@@ -230075,9 +230097,9 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_attr.h linux-3.8.10
+#endif
+ );
+#endif
-diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_cfi.c linux-3.8.10/drivers/usb/host/dwc_otg/dwc_otg_cfi.c
---- linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_cfi.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/usb/host/dwc_otg/dwc_otg_cfi.c 2013-05-06 12:55:18.000000000 +0200
+diff -Nur linux-3.9.9/drivers/usb/host/dwc_otg/dwc_otg_cfi.c linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_cfi.c
+--- linux-3.9.9/drivers/usb/host/dwc_otg/dwc_otg_cfi.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_cfi.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,1876 @@
+/* ==========================================================================
+ * Synopsys HS OTG Linux Software Driver and documentation (hereinafter,
@@ -231955,9 +231977,9 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_cfi.c linux-3.8.10/
+}
+
+#endif //DWC_UTE_CFI
-diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_cfi.h linux-3.8.10/drivers/usb/host/dwc_otg/dwc_otg_cfi.h
---- linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_cfi.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/usb/host/dwc_otg/dwc_otg_cfi.h 2013-05-06 12:55:18.000000000 +0200
+diff -Nur linux-3.9.9/drivers/usb/host/dwc_otg/dwc_otg_cfi.h linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_cfi.h
+--- linux-3.9.9/drivers/usb/host/dwc_otg/dwc_otg_cfi.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_cfi.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,320 @@
+/* ==========================================================================
+ * Synopsys HS OTG Linux Software Driver and documentation (hereinafter,
@@ -232279,9 +232301,9 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_cfi.h linux-3.8.10/
+int cfi_setup(struct dwc_otg_pcd *pcd, struct cfi_usb_ctrlrequest *ctrl);
+
+#endif /* (__DWC_OTG_CFI_H__) */
-diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_cil.c linux-3.8.10/drivers/usb/host/dwc_otg/dwc_otg_cil.c
---- linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_cil.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/usb/host/dwc_otg/dwc_otg_cil.c 2013-05-06 12:55:18.000000000 +0200
+diff -Nur linux-3.9.9/drivers/usb/host/dwc_otg/dwc_otg_cil.c linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_cil.c
+--- linux-3.9.9/drivers/usb/host/dwc_otg/dwc_otg_cil.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_cil.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,7151 @@
+/* ==========================================================================
+ * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_cil.c $
@@ -239434,9 +239456,9 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_cil.c linux-3.8.10/
+ dwc_otg_pcd_start_srp_timer(core_if);
+ return;
+}
-diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_cil.h linux-3.8.10/drivers/usb/host/dwc_otg/dwc_otg_cil.h
---- linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_cil.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/usb/host/dwc_otg/dwc_otg_cil.h 2013-05-06 12:55:18.000000000 +0200
+diff -Nur linux-3.9.9/drivers/usb/host/dwc_otg/dwc_otg_cil.h linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_cil.h
+--- linux-3.9.9/drivers/usb/host/dwc_otg/dwc_otg_cil.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_cil.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,1464 @@
+/* ==========================================================================
+ * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_cil.h $
@@ -240902,10 +240924,10 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_cil.h linux-3.8.10/
+//////////////////////////////////////////////////////////////////////
+
+#endif
-diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_cil_intr.c linux-3.8.10/drivers/usb/host/dwc_otg/dwc_otg_cil_intr.c
---- linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_cil_intr.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/usb/host/dwc_otg/dwc_otg_cil_intr.c 2013-05-06 12:55:18.000000000 +0200
-@@ -0,0 +1,1571 @@
+diff -Nur linux-3.9.9/drivers/usb/host/dwc_otg/dwc_otg_cil_intr.c linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_cil_intr.c
+--- linux-3.9.9/drivers/usb/host/dwc_otg/dwc_otg_cil_intr.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_cil_intr.c 2013-07-08 13:33:17.000000000 +0200
+@@ -0,0 +1,1588 @@
+/* ==========================================================================
+ * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_cil_intr.c $
+ * $Revision: #32 $
@@ -240955,8 +240977,6 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_cil_intr.c linux-3.
+#include "dwc_otg_hcd.h"
+#include "dwc_otg_mphi_fix.h"
+
-+extern bool fiq_fix_enable;
-+
+#ifdef DEBUG
+inline const char *op_state_str(dwc_otg_core_if_t * core_if)
+{
@@ -242229,7 +242249,7 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_cil_intr.c linux-3.
+/**
+ * This function returns the Core Interrupt register.
+ */
-+static inline uint32_t dwc_otg_read_common_intr(dwc_otg_core_if_t * core_if)
++static inline uint32_t dwc_otg_read_common_intr(dwc_otg_core_if_t * core_if, gintmsk_data_t *reenable_gintmsk)
+{
+ gahbcfg_data_t gahbcfg = {.d32 = 0 };
+ gintsts_data_t gintsts;
@@ -242246,19 +242266,33 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_cil_intr.c linux-3.
+ gintmsk_common.b.lpmtranrcvd = 1;
+#endif
+ gintmsk_common.b.restoredone = 1;
-+ /** @todo: The port interrupt occurs while in device
-+ * mode. Added code to CIL to clear the interrupt for now!
-+ */
-+ gintmsk_common.b.portintr = 1;
-+
++ if(dwc_otg_is_device_mode(core_if))
++ {
++ /** @todo: The port interrupt occurs while in device
++ * mode. Added code to CIL to clear the interrupt for now!
++ */
++ gintmsk_common.b.portintr = 1;
++ }
+ gintsts.d32 = DWC_READ_REG32(&core_if->core_global_regs->gintsts);
+ gintmsk.d32 = DWC_READ_REG32(&core_if->core_global_regs->gintmsk);
++ {
++ unsigned long flags;
++
++ // Re-enable the saved interrupts
++ local_irq_save(flags);
++ local_fiq_disable();
++ gintmsk.d32 |= gintmsk_common.d32;
++ gintsts_saved.d32 &= ~gintmsk_common.d32;
++ reenable_gintmsk->d32 = gintmsk.d32;
++ local_irq_restore(flags);
++ }
++
+ gahbcfg.d32 = DWC_READ_REG32(&core_if->core_global_regs->gahbcfg);
+
+#ifdef DEBUG
+ /* if any common interrupts set */
+ if (gintsts.d32 & gintmsk_common.d32) {
-+ DWC_DEBUGPL(DBG_ANY, "gintsts=%08x gintmsk=%08x\n",
++ DWC_DEBUGPL(DBG_ANY, "common_intr: gintsts=%08x gintmsk=%08x\n",
+ gintsts.d32, gintmsk.d32);
+ }
+#endif
@@ -242302,6 +242336,7 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_cil_intr.c linux-3.
+{
+ int retval = 0;
+ gintsts_data_t gintsts;
++ gintmsk_data_t reenable_gintmsk;
+ gpwrdn_data_t gpwrdn = {.d32 = 0 };
+ dwc_otg_device_t *otg_dev = dev;
+ dwc_otg_core_if_t *core_if = otg_dev->core_if;
@@ -242323,7 +242358,7 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_cil_intr.c linux-3.
+ }
+
+ if (core_if->hibernation_suspend <= 0) {
-+ gintsts.d32 = dwc_otg_read_common_intr(core_if);
++ gintsts.d32 = dwc_otg_read_common_intr(core_if, &reenable_gintmsk);
+
+ if (gintsts.b.modemismatch) {
+ retval |= dwc_otg_handle_mode_mismatch_intr(core_if);
@@ -242420,8 +242455,12 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_cil_intr.c linux-3.
+ gintsts.b.portintr = 1;
+ DWC_WRITE_REG32(&core_if->core_global_regs->gintsts,gintsts.d32);
+ retval |= 1;
++ reenable_gintmsk.b.portintr = 1;
+
+ }
++
++ DWC_WRITE_REG32(&core_if->core_global_regs->gintmsk, reenable_gintmsk.d32);
++
+ } else {
+ DWC_DEBUGPL(DBG_ANY, "gpwrdn=%08x\n", gpwrdn.d32);
+
@@ -242477,9 +242516,9 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_cil_intr.c linux-3.
+
+ return retval;
+}
-diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_core_if.h linux-3.8.10/drivers/usb/host/dwc_otg/dwc_otg_core_if.h
---- linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_core_if.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/usb/host/dwc_otg/dwc_otg_core_if.h 2013-05-06 12:55:18.000000000 +0200
+diff -Nur linux-3.9.9/drivers/usb/host/dwc_otg/dwc_otg_core_if.h linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_core_if.h
+--- linux-3.9.9/drivers/usb/host/dwc_otg/dwc_otg_core_if.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_core_if.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,705 @@
+/* ==========================================================================
+ * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_core_if.h $
@@ -243186,9 +243225,9 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_core_if.h linux-3.8
+/** @} */
+
+#endif /* __DWC_CORE_IF_H__ */
-diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_dbg.h linux-3.8.10/drivers/usb/host/dwc_otg/dwc_otg_dbg.h
---- linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_dbg.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/usb/host/dwc_otg/dwc_otg_dbg.h 2013-05-06 12:55:18.000000000 +0200
+diff -Nur linux-3.9.9/drivers/usb/host/dwc_otg/dwc_otg_dbg.h linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_dbg.h
+--- linux-3.9.9/drivers/usb/host/dwc_otg/dwc_otg_dbg.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_dbg.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,117 @@
+/* ==========================================================================
+ *
@@ -243307,10 +243346,10 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_dbg.h linux-3.8.10/
+
+#endif /*DEBUG*/
+#endif
-diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_driver.c linux-3.8.10/drivers/usb/host/dwc_otg/dwc_otg_driver.c
---- linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_driver.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/usb/host/dwc_otg/dwc_otg_driver.c 2013-05-06 12:55:18.000000000 +0200
-@@ -0,0 +1,1732 @@
+diff -Nur linux-3.9.9/drivers/usb/host/dwc_otg/dwc_otg_driver.c linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_driver.c
+--- linux-3.9.9/drivers/usb/host/dwc_otg/dwc_otg_driver.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_driver.c 2013-07-08 13:33:17.000000000 +0200
+@@ -0,0 +1,1736 @@
+/* ==========================================================================
+ * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_driver.c $
+ * $Revision: #92 $
@@ -243555,7 +243594,8 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_driver.c linux-3.8.
+
+//Global variable to switch the fiq fix on or off (declared in bcm2708.c)
+extern bool fiq_fix_enable;
-+
++// Global variable to enable the split transaction fix
++bool fiq_split_enable = true;
+//Global variable to switch the nak holdoff on or off
+bool nak_holdoff_enable = true;
+
@@ -244403,6 +244443,7 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_driver.c linux-3.8.
+ }
+ printk(KERN_DEBUG "dwc_otg: FIQ %s\n", fiq_fix_enable ? "enabled":"disabled");
+ printk(KERN_DEBUG "dwc_otg: NAK holdoff %s\n", nak_holdoff_enable ? "enabled":"disabled");
++ printk(KERN_DEBUG "dwc_otg: FIQ split fix %s\n", fiq_split_enable ? "enabled":"disabled");
+
+ error = driver_create_file(drv, &driver_attr_version);
+#ifdef DEBUG
@@ -244687,6 +244728,8 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_driver.c linux-3.8.
+MODULE_PARM_DESC(fiq_fix_enable, "Enable the fiq fix");
+module_param(nak_holdoff_enable, bool, 0444);
+MODULE_PARM_DESC(nak_holdoff_enable, "Enable the NAK holdoff");
++module_param(fiq_split_enable, bool, 0444);
++MODULE_PARM_DESC(fiq_split_enable, "Enable the FIQ fix on split transactions");
+
+/** @page "Module Parameters"
+ *
@@ -245043,9 +245086,9 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_driver.c linux-3.8.
+ </td></tr>
+
+*/
-diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_driver.h linux-3.8.10/drivers/usb/host/dwc_otg/dwc_otg_driver.h
---- linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_driver.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/usb/host/dwc_otg/dwc_otg_driver.h 2013-05-06 12:55:18.000000000 +0200
+diff -Nur linux-3.9.9/drivers/usb/host/dwc_otg/dwc_otg_driver.h linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_driver.h
+--- linux-3.9.9/drivers/usb/host/dwc_otg/dwc_otg_driver.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_driver.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,86 @@
+/* ==========================================================================
+ * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_driver.h $
@@ -245133,10 +245176,10 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_driver.h linux-3.8.
+#endif
+
+#endif
-diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd.c linux-3.8.10/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
---- linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/usb/host/dwc_otg/dwc_otg_hcd.c 2013-05-06 12:55:18.000000000 +0200
-@@ -0,0 +1,3533 @@
+diff -Nur linux-3.9.9/drivers/usb/host/dwc_otg/dwc_otg_hcd.c linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
+--- linux-3.9.9/drivers/usb/host/dwc_otg/dwc_otg_hcd.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_hcd.c 2013-07-08 13:33:17.000000000 +0200
+@@ -0,0 +1,3640 @@
+
+/* ==========================================================================
+ * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_hcd.c $
@@ -245184,6 +245227,7 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd.c linux-3.8.10/
+
+#include "dwc_otg_hcd.h"
+#include "dwc_otg_regs.h"
++#include "dwc_otg_mphi_fix.h"
+
+extern bool microframe_schedule, nak_holdoff_enable;
+
@@ -245720,6 +245764,8 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd.c linux-3.8.10/
+ */
+ dwc_otg_hc_halt(hcd->core_if, qh->channel,
+ DWC_OTG_HC_XFER_URB_DEQUEUE);
++
++ dwc_otg_hcd_release_port(hcd, qh);
+ }
+ }
+
@@ -245843,6 +245889,7 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd.c linux-3.8.10/
+ urb_tq_entry_t *item;
+ dwc_irqflags_t flags;
+
++ /* This could just be spin_lock_irq */
+ DWC_SPINLOCK_IRQSAVE(hcd->lock, &flags);
+ while (!DWC_TAILQ_EMPTY(&hcd->completed_urb_list)) {
+ item = DWC_TAILQ_FIRST(&hcd->completed_urb_list);
@@ -245852,9 +245899,10 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd.c linux-3.8.10/
+ DWC_SPINUNLOCK_IRQRESTORE(hcd->lock, flags);
+ DWC_FREE(item);
+
-+ usb_hcd_unlink_urb_from_ep(hcd->priv, urb);
+ usb_hcd_giveback_urb(hcd->priv, urb, urb->status);
+
++ fiq_print(FIQDBG_PORTHUB, "COMPLETE");
++
+ DWC_SPINLOCK_IRQSAVE(hcd->lock, &flags);
+ }
+ DWC_SPINUNLOCK_IRQRESTORE(hcd->lock, flags);
@@ -246118,6 +246166,10 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd.c linux-3.8.10/
+ hcd->frame_list = NULL;
+ hcd->frame_list_dma = 0;
+ hcd->periodic_qh_count = 0;
++
++ DWC_MEMSET(hcd->hub_port, 0, sizeof(hcd->hub_port));
++ DWC_MEMSET(hcd->hub_port_alloc, -1, sizeof(hcd->hub_port_alloc));
++
+out:
+ return retval;
+}
@@ -246263,7 +246315,12 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd.c linux-3.8.10/
+ uint32_t hub_addr, port_addr;
+ hc->do_split = 1;
+ hc->xact_pos = qtd->isoc_split_pos;
-+ hc->complete_split = qtd->complete_split;
++ /* We don't need to do complete splits anymore */
++ if(fiq_split_enable)
++ hc->complete_split = qtd->complete_split = 0;
++ else
++ hc->complete_split = qtd->complete_split;
++
+ hcd->fops->hub_info(hcd, urb->priv, &hub_addr, &port_addr);
+ hc->hub_addr = (uint8_t) hub_addr;
+ hc->port_addr = (uint8_t) port_addr;
@@ -246410,6 +246467,62 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd.c linux-3.8.10/
+ hc->qh = qh;
+}
+
++/*
++** Check the transaction to see if the port / hub has already been assigned for
++** a split transaction
++**
++** Return 0 - Port is already in use
++*/
++int dwc_otg_hcd_allocate_port(dwc_otg_hcd_t * hcd, dwc_otg_qh_t *qh)
++{
++ uint32_t hub_addr, port_addr;
++
++ if(!fiq_split_enable)
++ return 0;
++
++ hcd->fops->hub_info(hcd, DWC_CIRCLEQ_FIRST(&qh->qtd_list)->urb->priv, &hub_addr, &port_addr);
++
++ if(hcd->hub_port[hub_addr] & (1 << port_addr))
++ {
++ fiq_print(FIQDBG_PORTHUB, "H%dP%d:S%02d", hub_addr, port_addr, qh->skip_count);
++
++ qh->skip_count++;
++
++ if(qh->skip_count > 40000)
++ {
++ printk_once(KERN_ERR "Error: Having to skip port allocation");
++ local_fiq_disable();
++ BUG();
++ return 0;
++ }
++ return 1;
++ }
++ else
++ {
++ qh->skip_count = 0;
++ hcd->hub_port[hub_addr] |= 1 << port_addr;
++ fiq_print(FIQDBG_PORTHUB, "H%dP%d:A %d", hub_addr, port_addr, DWC_CIRCLEQ_FIRST(&qh->qtd_list)->urb->pipe_info.ep_num);
++ hcd->hub_port_alloc[hub_addr * 16 + port_addr] = dwc_otg_hcd_get_frame_number(hcd);
++ return 0;
++ }
++}
++void dwc_otg_hcd_release_port(dwc_otg_hcd_t * hcd, dwc_otg_qh_t *qh)
++{
++ uint32_t hub_addr, port_addr;
++
++ if(!fiq_split_enable)
++ return;
++
++ hcd->fops->hub_info(hcd, DWC_CIRCLEQ_FIRST(&qh->qtd_list)->urb->priv, &hub_addr, &port_addr);
++
++ hcd->hub_port[hub_addr] &= ~(1 << port_addr);
++ hcd->hub_port_alloc[hub_addr * 16 + port_addr] = -1;
++
++ fiq_print(FIQDBG_PORTHUB, "H%dP%d:RO%d", hub_addr, port_addr, DWC_CIRCLEQ_FIRST(&qh->qtd_list)->urb->pipe_info.ep_num);
++
++}
++
++
+/**
+ * This function selects transactions from the HCD transfer schedule and
+ * assigns them to available host channels. It is called from HCD interrupt
@@ -246443,11 +246556,22 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd.c linux-3.8.10/
+
+ while (qh_ptr != &hcd->periodic_sched_ready &&
+ !DWC_CIRCLEQ_EMPTY(&hcd->free_hc_list)) {
++
++ qh = DWC_LIST_ENTRY(qh_ptr, dwc_otg_qh_t, qh_list_entry);
++
++ if(qh->do_split && dwc_otg_hcd_allocate_port(hcd, qh))
++ {
++ qh_ptr = DWC_LIST_NEXT(qh_ptr);
++ g_next_sched_frame = dwc_frame_num_inc(dwc_otg_hcd_get_frame_number(hcd), 1);
++ continue;
++ }
++
+ if (microframe_schedule) {
+ // Make sure we leave one channel for non periodic transactions.
+ DWC_SPINLOCK_IRQSAVE(channel_lock, &flags);
+ if (hcd->available_host_channels <= 1) {
+ DWC_SPINUNLOCK_IRQRESTORE(channel_lock, flags);
++ if(qh->do_split) dwc_otg_hcd_release_port(hcd, qh);
+ break;
+ }
+ hcd->available_host_channels--;
@@ -246468,8 +246592,6 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd.c linux-3.8.10/
+ DWC_LIST_MOVE_HEAD(&hcd->periodic_sched_assigned,
+ &qh->qh_list_entry);
+ DWC_SPINUNLOCK_IRQRESTORE(channel_lock, flags);
-+
-+ ret_val = DWC_OTG_TRANSACTION_PERIODIC;
+ }
+
+ /*
@@ -246508,10 +246630,19 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd.c linux-3.8.10/
+ qh->nak_frame = 0xffff;
+ }
+ }
++
++ if (qh->do_split && dwc_otg_hcd_allocate_port(hcd, qh))
++ {
++ g_next_sched_frame = dwc_frame_num_inc(dwc_otg_hcd_get_frame_number(hcd), 1);
++ qh_ptr = DWC_LIST_NEXT(qh_ptr);
++ continue;
++ }
++
+ if (microframe_schedule) {
+ DWC_SPINLOCK_IRQSAVE(channel_lock, &flags);
+ if (hcd->available_host_channels < 1) {
+ DWC_SPINUNLOCK_IRQRESTORE(channel_lock, flags);
++ if(qh->do_split) dwc_otg_hcd_release_port(hcd, qh);
+ break;
+ }
+ hcd->available_host_channels--;
@@ -246535,16 +246666,17 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd.c linux-3.8.10/
+
+ g_np_sent++;
+
-+ if (ret_val == DWC_OTG_TRANSACTION_NONE) {
-+ ret_val = DWC_OTG_TRANSACTION_NON_PERIODIC;
-+ } else {
-+ ret_val = DWC_OTG_TRANSACTION_ALL;
-+ }
-+
+ if (!microframe_schedule)
+ hcd->non_periodic_channels++;
+ }
+
++ if(!DWC_LIST_EMPTY(&hcd->periodic_sched_assigned))
++ ret_val |= DWC_OTG_TRANSACTION_PERIODIC;
++
++ if(!DWC_LIST_EMPTY(&hcd->non_periodic_sched_active))
++ ret_val |= DWC_OTG_TRANSACTION_NON_PERIODIC;
++
++
+#ifdef DEBUG_HOST_CHANNELS
+ last_sel_trans_num_avail_hc_at_end = hcd->available_host_channels;
+#endif /* DEBUG_HOST_CHANNELS */
@@ -246661,6 +246793,15 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd.c linux-3.8.10/
+
+ qh = DWC_LIST_ENTRY(qh_ptr, dwc_otg_qh_t, qh_list_entry);
+
++ // Do not send a split start transaction any later than frame .6
++ // Note, we have to schedule a periodic in .5 to make it go in .6
++ if(fiq_split_enable && qh->do_split && ((dwc_otg_hcd_get_frame_number(hcd) + 1) & 7) > 6)
++ {
++ qh_ptr = qh_ptr->next;
++ g_next_sched_frame = dwc_otg_hcd_get_frame_number(hcd) | 7;
++ continue;
++ }
++
+ /*
+ * Set a flag if we're queuing high-bandwidth in slave mode.
+ * The flag prevents any halts to get into the request queue in
@@ -246790,6 +246931,15 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd.c linux-3.8.10/
+
+ qh = DWC_LIST_ENTRY(hcd->non_periodic_qh_ptr, dwc_otg_qh_t,
+ qh_list_entry);
++
++ // Do not send a split start transaction any later than frame .5
++ // non periodic transactions will start immediately in this uframe
++ if(fiq_split_enable && qh->do_split && ((dwc_otg_hcd_get_frame_number(hcd) + 1) & 7) > 6)
++ {
++ g_next_sched_frame = dwc_otg_hcd_get_frame_number(hcd) | 7;
++ break;
++ }
++
+ status =
+ queue_transaction(hcd, qh->channel,
+ tx_status.b.nptxfspcavail);
@@ -248670,9 +248820,9 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd.c linux-3.8.10/
+}
+
+#endif /* DWC_DEVICE_ONLY */
-diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c linux-3.8.10/drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c
---- linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c 2013-05-06 12:55:18.000000000 +0200
+diff -Nur linux-3.9.9/drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c
+--- linux-3.9.9/drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,1132 @@
+/*==========================================================================
+ * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_hcd_ddma.c $
@@ -249806,10 +249956,10 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c linux-3.
+}
+
+#endif /* DWC_DEVICE_ONLY */
-diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd.h linux-3.8.10/drivers/usb/host/dwc_otg/dwc_otg_hcd.h
---- linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/usb/host/dwc_otg/dwc_otg_hcd.h 2013-05-06 12:55:18.000000000 +0200
-@@ -0,0 +1,839 @@
+diff -Nur linux-3.9.9/drivers/usb/host/dwc_otg/dwc_otg_hcd.h linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_hcd.h
+--- linux-3.9.9/drivers/usb/host/dwc_otg/dwc_otg_hcd.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_hcd.h 2013-07-08 13:33:17.000000000 +0200
+@@ -0,0 +1,849 @@
+/* ==========================================================================
+ * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_hcd.h $
+ * $Revision: #58 $
@@ -249980,10 +250130,10 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd.h linux-3.8.10/
+
+/** Transaction types. */
+typedef enum dwc_otg_transaction_type {
-+ DWC_OTG_TRANSACTION_NONE,
-+ DWC_OTG_TRANSACTION_PERIODIC,
-+ DWC_OTG_TRANSACTION_NON_PERIODIC,
-+ DWC_OTG_TRANSACTION_ALL
++ DWC_OTG_TRANSACTION_NONE = 0,
++ DWC_OTG_TRANSACTION_PERIODIC = 1,
++ DWC_OTG_TRANSACTION_NON_PERIODIC = 2,
++ DWC_OTG_TRANSACTION_ALL = DWC_OTG_TRANSACTION_PERIODIC + DWC_OTG_TRANSACTION_NON_PERIODIC
+} dwc_otg_transaction_type_e;
+
+struct dwc_otg_qh;
@@ -250182,6 +250332,8 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd.h linux-3.8.10/
+
+ uint16_t speed;
+ uint16_t frame_usecs[8];
++
++ uint32_t skip_count;
+} dwc_otg_qh_t;
+
+DWC_CIRCLEQ_HEAD(hc_list, dwc_hc);
@@ -250386,6 +250538,10 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd.h linux-3.8.10/
+ /** Frame List */
+ uint32_t *frame_list;
+
++ /** Hub - Port assignment */
++ int hub_port[16];
++ int hub_port_alloc[256];
++
+ /** Frame List DMA address */
+ dma_addr_t frame_list_dma;
+
@@ -250416,12 +250572,16 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd.h linux-3.8.10/
+extern void dwc_otg_hcd_queue_transactions(dwc_otg_hcd_t * hcd,
+ dwc_otg_transaction_type_e tr_type);
+
++int dwc_otg_hcd_allocate_port(dwc_otg_hcd_t * hcd, dwc_otg_qh_t *qh);
++void dwc_otg_hcd_release_port(dwc_otg_hcd_t * dwc_otg_hcd, dwc_otg_qh_t *qh);
++
++
+/** @} */
+
+/** @name Interrupt Handler Functions */
+/** @{ */
+extern int32_t dwc_otg_hcd_handle_intr(dwc_otg_hcd_t * dwc_otg_hcd);
-+extern int32_t dwc_otg_hcd_handle_sof_intr(dwc_otg_hcd_t * dwc_otg_hcd, int32_t);
++extern int32_t dwc_otg_hcd_handle_sof_intr(dwc_otg_hcd_t * dwc_otg_hcd);
+extern int32_t dwc_otg_hcd_handle_rx_status_q_level_intr(dwc_otg_hcd_t *
+ dwc_otg_hcd);
+extern int32_t dwc_otg_hcd_handle_np_tx_fifo_empty_intr(dwc_otg_hcd_t *
@@ -250649,9 +250809,9 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd.h linux-3.8.10/
+#endif
+#endif
+#endif /* DWC_DEVICE_ONLY */
-diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_if.h linux-3.8.10/drivers/usb/host/dwc_otg/dwc_otg_hcd_if.h
---- linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_if.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/usb/host/dwc_otg/dwc_otg_hcd_if.h 2013-05-06 12:55:18.000000000 +0200
+diff -Nur linux-3.9.9/drivers/usb/host/dwc_otg/dwc_otg_hcd_if.h linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_hcd_if.h
+--- linux-3.9.9/drivers/usb/host/dwc_otg/dwc_otg_hcd_if.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_hcd_if.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,417 @@
+/* ==========================================================================
+ * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_hcd_if.h $
@@ -251070,10 +251230,10 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_if.h linux-3.8.
+
+#endif /* __DWC_HCD_IF_H__ */
+#endif /* DWC_DEVICE_ONLY */
-diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c linux-3.8.10/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
---- linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c 2013-05-06 12:55:18.000000000 +0200
-@@ -0,0 +1,2258 @@
+diff -Nur linux-3.9.9/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
+--- linux-3.9.9/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c 2013-07-08 13:33:17.000000000 +0200
+@@ -0,0 +1,2668 @@
+/* ==========================================================================
+ * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_hcd_intr.c $
+ * $Revision: #89 $
@@ -251114,6 +251274,7 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c linux-3.
+
+#include <linux/jiffies.h>
+#include <mach/hardware.h>
++#include <asm/fiq.h>
+
+
+extern bool microframe_schedule;
@@ -251128,21 +251289,295 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c linux-3.
+
+void * dummy_send;
+mphi_regs_t c_mphi_regs;
++volatile void *dwc_regs_base;
+int fiq_done, int_done;
-+int g_next_sched_frame, g_np_count, g_np_sent, g_work_expected;
-+static int mphi_int_count = 0 ;
+
-+extern bool fiq_fix_enable, nak_holdoff_enable;
++gintsts_data_t gintsts_saved = {.d32 = 0};
++hcint_data_t hcint_saved[MAX_EPS_CHANNELS];
++hcintmsk_data_t hcintmsk_saved[MAX_EPS_CHANNELS];
++int split_out_xfersize[MAX_EPS_CHANNELS];
++haint_data_t haint_saved;
++
++int g_next_sched_frame, g_np_count, g_np_sent;
++static int mphi_int_count = 0 ;
+
+hcchar_data_t nak_hcchar;
+hctsiz_data_t nak_hctsiz;
+hcsplt_data_t nak_hcsplt;
+int nak_count;
+
++int complete_sched[MAX_EPS_CHANNELS] = { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1};
++int split_start_frame[MAX_EPS_CHANNELS];
++int queued_port[MAX_EPS_CHANNELS];
++
++#ifdef FIQ_DEBUG
++char buffer[1000*16];
++int wptr;
++void _fiq_print(FIQDBG_T dbg_lvl, char *fmt, ...)
++{
++ FIQDBG_T dbg_lvl_req = FIQDBG_PORTHUB;
++ va_list args;
++ char text[17];
++ hfnum_data_t hfnum = { .d32 = FIQ_READ(dwc_regs_base + 0x408) };
++ unsigned long flags;
++
++ local_irq_save(flags);
++ local_fiq_disable();
++ if(dbg_lvl & dbg_lvl_req || dbg_lvl == FIQDBG_ERR)
++ {
++ snprintf(text, 9, "%4d%d:%d ", hfnum.b.frnum/8, hfnum.b.frnum%8, 8 - hfnum.b.frrem/937);
++ va_start(args, fmt);
++ vsnprintf(text+8, 9, fmt, args);
++ va_end(args);
++
++ memcpy(buffer + wptr, text, 16);
++ wptr = (wptr + 16) % sizeof(buffer);
++ }
++ local_irq_restore(flags);
++}
++#endif
++
++void fiq_queue_request(int channel, int odd_frame)
++{
++ hcchar_data_t hcchar = { .d32 = FIQ_READ(dwc_regs_base + 0x500 + (channel * 0x20) + 0x0) };
++ hcsplt_data_t hcsplt = { .d32 = FIQ_READ(dwc_regs_base + 0x500 + (channel * 0x20) + 0x4) };
++ hctsiz_data_t hctsiz = { .d32 = FIQ_READ(dwc_regs_base + 0x500 + (channel * 0x20) + 0x10) };
++
++ if(hcsplt.b.spltena == 0)
++ {
++ fiq_print(FIQDBG_ERR, "SPLTENA ");
++ BUG();
++ }
++
++ if(hcchar.b.epdir == 1)
++ {
++ fiq_print(FIQDBG_SCHED, "IN Ch %d", channel);
++ }
++ else
++ {
++ hctsiz.b.xfersize = 0;
++ fiq_print(FIQDBG_SCHED, "OUT Ch %d", channel);
++ }
++ FIQ_WRITE((dwc_regs_base + 0x500 + (channel * 0x20) + 0x10), hctsiz.d32);
++
++ hcsplt.b.compsplt = 1;
++ FIQ_WRITE((dwc_regs_base + 0x500 + (channel * 0x20) + 0x4), hcsplt.d32);
++
++ // Send the Split complete
++ hcchar.b.chen = 1;
++ hcchar.b.oddfrm = odd_frame ? 1 : 0;
++
++ // Post this for transmit on the next frame for periodic or this frame for non-periodic
++ fiq_print(FIQDBG_SCHED, "SND_%s", odd_frame ? "ODD " : "EVEN");
++
++ FIQ_WRITE((dwc_regs_base + 0x500 + (channel * 0x20) + 0x0), hcchar.d32);
++}
++
++static int last_sof = -1;
++
++/*
++** Function to handle the start of frame interrupt, choose whether we need to do anything and
++** therefore trigger the main interrupt
++**
++** returns int != 0 - interrupt has been handled
++*/
++int diff;
++
++int fiq_sof_handle(hfnum_data_t hfnum)
++{
++ int handled = 0;
++ int i;
++
++ // Just check that once we're running we don't miss a SOF
++ /*if(last_sof != -1 && (hfnum.b.frnum != ((last_sof + 1) & 0x3fff)))
++ {
++ fiq_print(FIQDBG_ERR, "LASTSOF ");
++ fiq_print(FIQDBG_ERR, "%4d%d ", last_sof / 8, last_sof & 7);
++ fiq_print(FIQDBG_ERR, "%4d%d ", hfnum.b.frnum / 8, hfnum.b.frnum & 7);
++ BUG();
++ }*/
++
++ // Only start remembering the last sof when the interrupt has been
++ // enabled (we don't check the mask to come in here...)
++ if(last_sof != -1 || FIQ_READ(dwc_regs_base + 0x18) & (1<<3))
++ last_sof = hfnum.b.frnum;
++
++ for(i = 0; i < MAX_EPS_CHANNELS; i++)
++ {
++ if(complete_sched[i] != -1)
++ {
++ if(complete_sched[i] <= hfnum.b.frnum || (complete_sched[i] > 0x3f00 && hfnum.b.frnum < 0xf0))
++ {
++ fiq_queue_request(i, hfnum.b.frnum & 1);
++ complete_sched[i] = -1;
++ }
++ }
++
++ if(complete_sched[i] != -1)
++ {
++ // This is because we've seen a split complete occur with no start...
++ // most likely because missed the complete 0x3fff frames ago!
++
++ diff = (hfnum.b.frnum + 0x3fff - complete_sched[i]) & 0x3fff ;
++ if(diff > 32 && diff < 0x3f00)
++ {
++ fiq_print(FIQDBG_ERR, "SPLTMISS");
++ BUG();
++ }
++ }
++ }
++
++ if(g_np_count == g_np_sent && dwc_frame_num_gt(g_next_sched_frame, hfnum.b.frnum))
++ {
++ /*
++ * If np_count != np_sent that means we need to queue non-periodic (bulk) packets this packet
++ * g_next_sched_frame is the next frame we have periodic packets for
++ *
++ * if neither of these are required for this frame then just clear the interrupt
++ */
++ handled = 1;
++
++ }
++
++ return handled;
++}
++
++int port_id(hcsplt_data_t hcsplt)
++{
++ return hcsplt.b.prtaddr + (hcsplt.b.hubaddr << 8);
++}
++
++int fiq_hcintr_handle(int channel, hfnum_data_t hfnum)
++{
++ hcchar_data_t hcchar = { .d32 = FIQ_READ(dwc_regs_base + 0x500 + (channel * 0x20) + 0x0) };
++ hcsplt_data_t hcsplt = { .d32 = FIQ_READ(dwc_regs_base + 0x500 + (channel * 0x20) + 0x4) };
++ hcint_data_t hcint = { .d32 = FIQ_READ(dwc_regs_base + 0x500 + (channel * 0x20) + 0x8) };
++ hcintmsk_data_t hcintmsk = { .d32 = FIQ_READ(dwc_regs_base + 0x500 + (channel * 0x20) + 0xc) };
++ hctsiz_data_t hctsiz = { .d32 = FIQ_READ(dwc_regs_base + 0x500 + (channel * 0x20) + 0x10)};
++
++ hcint_saved[channel].d32 |= hcint.d32;
++ hcintmsk_saved[channel].d32 = hcintmsk.d32;
++
++ if(hcsplt.b.spltena)
++ {
++ fiq_print(FIQDBG_PORTHUB, "ph: %4x", port_id(hcsplt));
++ if(hcint.b.chhltd)
++ {
++ fiq_print(FIQDBG_SCHED, "CH HLT %d", channel);
++ fiq_print(FIQDBG_SCHED, "%08x", hcint_saved[channel]);
++ }
++ if(hcint.b.stall || hcint.b.xacterr || hcint.b.bblerr || hcint.b.frmovrun || hcint.b.datatglerr)
++ {
++ queued_port[channel] = 0;
++ fiq_print(FIQDBG_ERR, "CHAN ERR");
++ }
++ if(hcint.b.xfercomp)
++ {
++ // Clear the port allocation and transmit anything also on this port
++ queued_port[channel] = 0;
++ fiq_print(FIQDBG_SCHED, "XFERCOMP");
++ }
++ if(hcint.b.nak)
++ {
++ queued_port[channel] = 0;
++ fiq_print(FIQDBG_SCHED, "NAK");
++ }
++ if(hcint.b.ack && !hcsplt.b.compsplt)
++ {
++ int i;
++
++ // Do not complete isochronous out transactions
++ if(hcchar.b.eptype == 1 && hcchar.b.epdir == 0)
++ {
++ queued_port[channel] = 0;
++ fiq_print(FIQDBG_SCHED, "ISOC_OUT");
++ }
++ else
++ {
++ // Make sure we check the port / hub combination that we sent this split on.
++ // Do not queue a second request to the same port
++ for(i = 0; i < MAX_EPS_CHANNELS; i++)
++ {
++ if(port_id(hcsplt) == queued_port[i])
++ {
++ fiq_print(FIQDBG_ERR, "PORTERR ");
++ //BUG();
++ }
++ }
++
++ split_start_frame[channel] = (hfnum.b.frnum + 1) & ~7;
++
++ // Note, the size of an OUT is in the start split phase, not
++ // the complete split
++ split_out_xfersize[channel] = hctsiz.b.xfersize;
++
++ hcint_saved[channel].b.chhltd = 0;
++ hcint_saved[channel].b.ack = 0;
++
++ queued_port[channel] = port_id(hcsplt);
++
++ if(hcchar.b.eptype & 1)
++ {
++ // Send the periodic complete in the same oddness frame as the ACK went...
++ fiq_queue_request(channel, !(hfnum.b.frnum & 1));
++ // complete_sched[channel] = dwc_frame_num_inc(hfnum.b.frnum, 1);
++ }
++ else
++ {
++ // Schedule the split complete to occur later
++ complete_sched[channel] = dwc_frame_num_inc(hfnum.b.frnum, 2);
++ fiq_print(FIQDBG_SCHED, "ACK%04d%d", complete_sched[channel]/8, complete_sched[channel]%8);
++ }
++ }
++ }
++ if(hcint.b.nyet)
++ {
++ fiq_print(FIQDBG_ERR, "NYETERR1");
++ //BUG();
++ // Can transmit a split complete up to uframe .0 of the next frame
++ if(hfnum.b.frnum <= dwc_frame_num_inc(split_start_frame[channel], 8))
++ {
++ // Send it next frame
++ if(hcchar.b.eptype & 1) // type 1 & 3 are interrupt & isoc
++ {
++ fiq_print(FIQDBG_SCHED, "NYT:SEND");
++ fiq_queue_request(channel, !(hfnum.b.frnum & 1));
++ }
++ else
++ {
++ // Schedule non-periodic access for next frame (the odd-even bit doesn't effect NP)
++ complete_sched[channel] = dwc_frame_num_inc(hfnum.b.frnum, 1);
++ fiq_print(FIQDBG_SCHED, "NYT%04d%d", complete_sched[channel]/8, complete_sched[channel]%8);
++ }
++ hcint_saved[channel].b.chhltd = 0;
++ hcint_saved[channel].b.nyet = 0;
++ }
++ else
++ {
++ queued_port[channel] = 0;
++ fiq_print(FIQDBG_ERR, "NYETERR2");
++ //BUG();
++ }
++ }
++ }
++
++ // Clear the interrupt, this will also clear the HAINT bit
++ FIQ_WRITE((dwc_regs_base + 0x500 + (channel * 0x20) + 0x8), hcint.d32);
++ return hcint_saved[channel].d32 == 0;
++}
++
++gintsts_data_t gintsts;
++gintmsk_data_t gintmsk;
++// triggered: The set of interrupts that were triggered
++// handled: The set of interrupts that have been handled (no IRQ is
++// required)
++// keep: The set of interrupts we want to keep unmasked even though we
++// want to trigger an IRQ to handle it (SOF and HCINTR)
++gintsts_data_t triggered, handled, keep;
++hfnum_data_t hfnum;
++
+void __attribute__ ((naked)) dwc_otg_hcd_handle_fiq(void)
+{
-+ gintsts_data_t gintsts;
-+ hfnum_data_t hfnum;
+
+ /* entry takes care to store registers we will be treading on here */
+ asm __volatile__ (
@@ -251150,43 +251585,112 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c linux-3.
+ /* stash FIQ and normal regs */
+ "stmdb sp!, {r0-r12, lr};"
+ /* !! THIS SETS THE FRAME, adjust to > sizeof locals */
-+ "sub fp, ip, #256 ;"
++ "sub fp, ip, #512 ;"
+ );
+
-+ fiq_done++;
-+ gintsts.d32 = FIQ_READ_IO_ADDRESS(USB_BASE + 0x14) & FIQ_READ_IO_ADDRESS(USB_BASE + 0x18);
-+ hfnum.d32 = FIQ_READ_IO_ADDRESS(USB_BASE + 0x408);
-+
-+ if(gintsts.d32)
++ // Cannot put local variables at the beginning of the function
++ // because otherwise 'C' will play with the stack pointer. any locals
++ // need to be inside the following block
++ do
+ {
-+ if(gintsts.b.sofintr && g_np_count == g_np_sent && dwc_frame_num_gt(g_next_sched_frame, hfnum.b.frnum))
-+ {
-+ /*
-+ * If np_count != np_sent that means we need to queue non-periodic (bulk) packets this packet
-+ * g_next_sched_frame is the next frame we have periodic packets for
-+ *
-+ * if neither of these are required for this frame then just clear the interrupt
-+ */
-+ gintsts.d32 = 0;
-+ gintsts.b.sofintr = 1;
-+ FIQ_WRITE_IO_ADDRESS((USB_BASE + 0x14), gintsts.d32);
++ fiq_done++;
++ gintsts.d32 = FIQ_READ(dwc_regs_base + 0x14);
++ gintmsk.d32 = FIQ_READ(dwc_regs_base + 0x18);
++ hfnum.d32 = FIQ_READ(dwc_regs_base + 0x408);
++ triggered.d32 = gintsts.d32 & gintmsk.d32;
++ handled.d32 = 0;
++ keep.d32 = 0;
++ fiq_print(FIQDBG_INT, "FIQ ");
++ fiq_print(FIQDBG_INT, "%08x", gintsts.d32);
++ fiq_print(FIQDBG_INT, "%08x", gintmsk.d32);
++ if(gintsts.d32)
++ {
++ // If port enabled
++ if((FIQ_READ(dwc_regs_base + 0x440) & 0xf) == 0x5)
++ {
++ if(gintsts.b.sofintr)
++ {
++ if(fiq_sof_handle(hfnum))
++ {
++ handled.b.sofintr = 1; /* Handled in FIQ */
++ }
++ else
++ {
++ /* Keer interrupt unmasked */
++ keep.b.sofintr = 1;
++ }
++ {
++ // Need to make sure the read and clearing of the SOF interrupt is as close as possible to avoid the possibility of missing
++ // a start of frame interrupt
++ gintsts_data_t gintsts = { .b.sofintr = 1 };
++ FIQ_WRITE((dwc_regs_base + 0x14), gintsts.d32);
++ }
++ }
++
++ if(fiq_split_enable && gintsts.b.hcintr)
++ {
++ int i;
++ haint_data_t haint;
++ haintmsk_data_t haintmsk;
++
++ haint.d32 = FIQ_READ(dwc_regs_base + 0x414);
++ haintmsk.d32 = FIQ_READ(dwc_regs_base + 0x418);
++ haint.d32 &= haintmsk.d32;
++ haint_saved.d32 |= haint.d32;
++
++ fiq_print(FIQDBG_INT, "hcintr");
++ fiq_print(FIQDBG_INT, "%08x", FIQ_READ(dwc_regs_base + 0x414));
+
-+ g_work_expected = 0;
++ // Go through each channel that has an enabled interrupt
++ for(i = 0; i < 16; i++)
++ if((haint.d32 >> i) & 1)
++ if(fiq_hcintr_handle(i, hfnum))
++ haint_saved.d32 &= ~(1 << i); /* this was handled */
++
++ /* If we've handled all host channel interrupts then don't trigger the interrupt */
++ if(haint_saved.d32 == 0)
++ {
++ handled.b.hcintr = 1;
++ }
++ else
++ {
++ /* Make sure we keep the channel interrupt unmasked when triggering the IRQ */
++ keep.b.hcintr = 1;
++ }
++
++ {
++ gintsts_data_t gintsts = { .b.hcintr = 1 };
++
++ // Always clear the channel interrupt
++ FIQ_WRITE((dwc_regs_base + 0x14), gintsts.d32);
++ }
++ }
++ }
++ else
++ {
++ last_sof = -1;
++ }
+ }
-+ else
++
++ // Mask out the interrupts triggered - those handled - don't mask out the ones we want to keep
++ gintmsk.d32 = keep.d32 | (gintmsk.d32 & ~(triggered.d32 & ~handled.d32));
++ // Save those that were triggered but not handled
++ gintsts_saved.d32 |= triggered.d32 & ~handled.d32;
++ FIQ_WRITE(dwc_regs_base + 0x18, gintmsk.d32);
++
++ // Clear and save any unhandled interrupts and trigger the interrupt
++ if(gintsts_saved.d32)
+ {
-+ g_work_expected = 1;
+ /* To enable the MPHI interrupt (INT 32)
+ */
-+ FIQ_WRITE( c_mphi_regs.outdda, (int) dummy_send);
++ FIQ_WRITE( c_mphi_regs.outdda, (int) dummy_send);
+ FIQ_WRITE( c_mphi_regs.outddb, (1 << 29));
+
+ mphi_int_count++;
-+ /* Clear the USB global interrupt so we don't just sit in the FIQ */
-+ FIQ_MODIFY_IO_ADDRESS((USB_BASE + 0x8),1,0);
-+
+ }
+ }
++ while(0);
++
+ mb();
+
+ /* exit back to normal mode restoring everything */
@@ -251209,6 +251713,7 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c linux-3.
+
+ dwc_otg_core_if_t *core_if = dwc_otg_hcd->core_if;
+ gintsts_data_t gintsts;
++ gintmsk_data_t gintmsk;
+ hfnum_data_t hfnum;
+
+#ifdef DEBUG
@@ -251216,6 +251721,9 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c linux-3.
+
+#endif
+
++ gintsts.d32 = DWC_READ_REG32(&core_if->core_global_regs->gintsts);
++ gintmsk.d32 = DWC_READ_REG32(&core_if->core_global_regs->gintmsk);
++
+ /* Exit from ISR if core is hibernated */
+ if (core_if->hibernation_suspend == 1) {
+ goto exit_handler_routine;
@@ -251223,11 +251731,18 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c linux-3.
+ DWC_SPINLOCK(dwc_otg_hcd->lock);
+ /* Check if HOST Mode */
+ if (dwc_otg_is_host_mode(core_if)) {
-+ gintsts.d32 = dwc_otg_read_core_intr(core_if);
++ local_fiq_disable();
++ gintmsk.d32 |= gintsts_saved.d32;
++ gintsts.d32 |= gintsts_saved.d32;
++ gintsts_saved.d32 = 0;
++ local_fiq_enable();
+ if (!gintsts.d32) {
+ goto exit_handler_routine;
+ }
++ gintsts.d32 &= gintmsk.d32;
++
+#ifdef DEBUG
++ // We should be OK doing this because the common interrupts should already have been serviced
+ /* Don't print debug message in the interrupt handler on SOF */
+#ifndef DEBUG_SOF
+ if (gintsts.d32 != DWC_SOF_INTR_MASK)
@@ -251247,11 +251762,12 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c linux-3.
+ if (gintsts.b.sofintr && g_np_count == g_np_sent && dwc_frame_num_gt(g_next_sched_frame, hfnum.b.frnum))
+ {
+ /* Note, we should never get here if the FIQ is doing it's job properly*/
-+ retval |= dwc_otg_hcd_handle_sof_intr(dwc_otg_hcd, g_work_expected);
++ retval |= dwc_otg_hcd_handle_sof_intr(dwc_otg_hcd);
+ }
+ else if (gintsts.b.sofintr) {
-+ retval |= dwc_otg_hcd_handle_sof_intr(dwc_otg_hcd, g_work_expected);
++ retval |= dwc_otg_hcd_handle_sof_intr(dwc_otg_hcd);
+ }
++
+ if (gintsts.b.rxstsqlvl) {
+ retval |=
+ dwc_otg_hcd_handle_rx_status_q_level_intr
@@ -251266,7 +251782,10 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c linux-3.
+ /** @todo Implement i2cintr handler. */
+ }
+ if (gintsts.b.portintr) {
++
++ gintmsk_data_t gintmsk = { .b.portintr = 1};
+ retval |= dwc_otg_hcd_handle_port_intr(dwc_otg_hcd);
++ DWC_MODIFY_REG32(&core_if->core_global_regs->gintmsk, 0, gintmsk.d32);
+ }
+ if (gintsts.b.hcintr) {
+ retval |= dwc_otg_hcd_handle_hc_intr(dwc_otg_hcd);
@@ -251303,26 +251822,35 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c linux-3.
+
+ if (fiq_fix_enable)
+ {
-+ /* Clear the MPHI interrupt */
-+ DWC_WRITE_REG32(c_mphi_regs.intstat, (1<<16));
-+ if (mphi_int_count >= 60)
++ local_fiq_disable();
++ // Make sure that we don't clear the interrupt if we've still got pending work to do
++ if(gintsts_saved.d32 == 0)
+ {
-+ DWC_WRITE_REG32(c_mphi_regs.ctrl, ((1<<31) + (1<<16)));
-+ while(!(DWC_READ_REG32(c_mphi_regs.ctrl) & (1 << 17)))
-+ ;
-+ DWC_WRITE_REG32(c_mphi_regs.ctrl, (1<<31));
-+ mphi_int_count = 0;
++ /* Clear the MPHI interrupt */
++ DWC_WRITE_REG32(c_mphi_regs.intstat, (1<<16));
++ if (mphi_int_count >= 60)
++ {
++ DWC_WRITE_REG32(c_mphi_regs.ctrl, ((1<<31) + (1<<16)));
++ while(!(DWC_READ_REG32(c_mphi_regs.ctrl) & (1 << 17)))
++ ;
++ DWC_WRITE_REG32(c_mphi_regs.ctrl, (1<<31));
++ mphi_int_count = 0;
++ }
++ int_done++;
+ }
-+ int_done++;
++
++ // Unmask handled interrupts
++ FIQ_WRITE(dwc_regs_base + 0x18, gintmsk.d32);
++ //DWC_MODIFY_REG32((uint32_t *)IO_ADDRESS(USB_BASE + 0x8), 0 , 1);
++
++ local_fiq_enable();
++
+ if((jiffies / HZ) > last_time)
+ {
+ /* Once a second output the fiq and irq numbers, useful for debug */
+ last_time = jiffies / HZ;
+ DWC_DEBUGPL(DBG_USER, "int_done = %d fiq_done = %d\n", int_done, fiq_done);
+ }
-+
-+ /* Re-Enable FIQ interrupt from USB peripheral */
-+ DWC_MODIFY_REG32((uint32_t *)IO_ADDRESS(USB_BASE + 0x8), 0 , 1);
+ }
+
+ DWC_SPINUNLOCK(dwc_otg_hcd->lock);
@@ -251370,13 +251898,12 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c linux-3.
+ * (micro)frame. Periodic transactions may be queued to the controller for the
+ * next (micro)frame.
+ */
-+int32_t dwc_otg_hcd_handle_sof_intr(dwc_otg_hcd_t * hcd, int32_t work_expected)
++int32_t dwc_otg_hcd_handle_sof_intr(dwc_otg_hcd_t * hcd)
+{
+ hfnum_data_t hfnum;
+ dwc_list_link_t *qh_entry;
+ dwc_otg_qh_t *qh;
+ dwc_otg_transaction_type_e tr_type;
-+ gintsts_data_t gintsts = {.d32 = 0 };
+ int did_something = 0;
+ int32_t next_sched_frame = -1;
+
@@ -251402,6 +251929,7 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c linux-3.
+ qh = DWC_LIST_ENTRY(qh_entry, dwc_otg_qh_t, qh_list_entry);
+ qh_entry = qh_entry->next;
+ if (dwc_frame_num_le(qh->sched_frame, hcd->frame_number)) {
++
+ /*
+ * Move QH to the ready list to be executed next
+ * (micro)frame.
@@ -251427,15 +251955,10 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c linux-3.
+ dwc_otg_hcd_queue_transactions(hcd, tr_type);
+ did_something = 1;
+ }
-+ if(work_expected && !did_something)
-+ DWC_DEBUGPL(DBG_USER, "Nothing to do !! frame = %x, g_next_sched_frame = %x\n", (int) hfnum.b.frnum, g_next_sched_frame);
-+ if(!work_expected && did_something)
-+ DWC_DEBUGPL(DBG_USER, "Unexpected work done !! frame = %x, g_next_sched_frame = %x\n", (int) hfnum.b.frnum, g_next_sched_frame);
-+
+
+ /* Clear interrupt */
-+ gintsts.b.sofintr = 1;
-+ DWC_WRITE_REG32(&hcd->core_if->core_global_regs->gintsts, gintsts.d32);
++ //gintsts.b.sofintr = 1;
++ //DWC_WRITE_REG32(&hcd->core_if->core_global_regs->gintsts, gintsts.d32);
+
+ return 1;
+}
@@ -251719,6 +252242,15 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c linux-3.
+
+ haint.d32 = dwc_otg_read_host_all_channels_intr(dwc_otg_hcd->core_if);
+
++ // Overwrite with saved interrupts from fiq handler
++ if(fiq_split_enable)
++ {
++ local_fiq_disable();
++ haint.d32 = haint_saved.d32;
++ haint_saved.d32 = 0;
++ local_fiq_enable();
++ }
++
+ for (i = 0; i < dwc_otg_hcd->core_if->core_params->host_channels; i++) {
+ if (haint.b2.chint & (1 << i)) {
+ retval |= dwc_otg_hcd_handle_hc_n_intr(dwc_otg_hcd, i);
@@ -251759,7 +252291,10 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c linux-3.
+ *short_read = (hctsiz.b.xfersize != 0);
+ }
+ } else if (hc->qh->do_split) {
-+ length = qtd->ssplit_out_xfer_count;
++ if(fiq_split_enable)
++ length = split_out_xfersize[hc->hc_num];
++ else
++ length = qtd->ssplit_out_xfer_count;
+ } else {
+ length = hc->xfer_len;
+ }
@@ -251803,7 +252338,6 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c linux-3.
+ DWC_OTG_HC_XFER_COMPLETE,
+ &short_read);
+
-+
+ /* non DWORD-aligned buffer case handling. */
+ if (hc->align_buff && xfer_length && hc->ep_is_in) {
+ dwc_memcpy(urb->buf + urb->actual_length, hc->qh->dw_align_buf,
@@ -252006,6 +252540,9 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c linux-3.
+ int free_qtd;
+ dwc_irqflags_t flags;
+ dwc_spinlock_t *channel_lock = hcd->channel_lock;
++#ifdef FIQ_DEBUG
++ int endp = qtd->urb ? qtd->urb->pipe_info.ep_num : 0;
++#endif
+
+ DWC_DEBUGPL(DBG_HCDV, " %s: channel %d, halt_status %d, xfer_len %d\n",
+ __func__, hc->hc_num, halt_status, hc->xfer_len);
@@ -252084,9 +252621,24 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c linux-3.
+
+ DWC_SPINLOCK_IRQSAVE(channel_lock, &flags);
+ hcd->available_host_channels++;
++ fiq_print(FIQDBG_PORTHUB, "AHC = %d ", hcd->available_host_channels);
+ DWC_SPINUNLOCK_IRQRESTORE(channel_lock, flags);
+ }
+
++ if(fiq_split_enable && hc->do_split)
++ {
++ if(!(hcd->hub_port[hc->hub_addr] & (1 << hc->port_addr)))
++ {
++ fiq_print(FIQDBG_ERR, "PRTNOTAL");
++ //BUG();
++ }
++
++ hcd->hub_port[hc->hub_addr] &= ~(1 << hc->port_addr);
++ hcd->hub_port_alloc[hc->hub_addr * 16 + hc->port_addr] = -1;
++
++ fiq_print(FIQDBG_PORTHUB, "H%dP%d:RR%d", hc->hub_addr, hc->port_addr, endp);
++ }
++
+ /* Try to queue more transfers now that there's a free channel. */
+ tr_type = dwc_otg_hcd_select_transactions(hcd);
+ if (tr_type != DWC_OTG_TRANSACTION_NONE) {
@@ -252709,8 +253261,10 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c linux-3.
+ hc->ep_type == DWC_OTG_EP_TYPE_ISOC) {
+ int frnum = dwc_otg_hcd_get_frame_number(hcd);
+
++ // With the FIQ running we only ever see the failed NYET
+ if (dwc_full_frame_num(frnum) !=
-+ dwc_full_frame_num(hc->qh->sched_frame)) {
++ dwc_full_frame_num(hc->qh->sched_frame) ||
++ fiq_split_enable) {
+ /*
+ * No longer in the same full speed frame.
+ * Treat this as a transaction error.
@@ -253088,10 +253642,10 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c linux-3.
+static void handle_hc_chhltd_intr_dma(dwc_otg_hcd_t * hcd,
+ dwc_hc_t * hc,
+ dwc_otg_hc_regs_t * hc_regs,
-+ dwc_otg_qtd_t * qtd)
++ dwc_otg_qtd_t * qtd,
++ hcint_data_t hcint,
++ hcintmsk_data_t hcintmsk)
+{
-+ hcint_data_t hcint;
-+ hcintmsk_data_t hcintmsk;
+ int out_nak_enh = 0;
+
+ /* For core with OUT NAK enhancement, the flow for high-
@@ -253123,8 +253677,11 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c linux-3.
+ }
+
+ /* Read the HCINTn register to determine the cause for the halt. */
-+ hcint.d32 = DWC_READ_REG32(&hc_regs->hcint);
-+ hcintmsk.d32 = DWC_READ_REG32(&hc_regs->hcintmsk);
++ if(!fiq_split_enable)
++ {
++ hcint.d32 = DWC_READ_REG32(&hc_regs->hcint);
++ hcintmsk.d32 = DWC_READ_REG32(&hc_regs->hcintmsk);
++ }
+
+ if (hcint.b.xfercomp) {
+ /** @todo This is here because of a possible hardware bug. Spec
@@ -253237,13 +253794,15 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c linux-3.
+static int32_t handle_hc_chhltd_intr(dwc_otg_hcd_t * hcd,
+ dwc_hc_t * hc,
+ dwc_otg_hc_regs_t * hc_regs,
-+ dwc_otg_qtd_t * qtd)
++ dwc_otg_qtd_t * qtd,
++ hcint_data_t hcint,
++ hcintmsk_data_t hcintmsk)
+{
+ DWC_DEBUGPL(DBG_HCDI, "--Host Channel %d Interrupt: "
+ "Channel Halted--\n", hc->hc_num);
+
+ if (hcd->core_if->dma_enable) {
-+ handle_hc_chhltd_intr_dma(hcd, hc, hc_regs, qtd);
++ handle_hc_chhltd_intr_dma(hcd, hc, hc_regs, qtd, hcint, hcintmsk);
+ } else {
+#ifdef DEBUG
+ if (!halt_status_ok(hcd, hc, hc_regs, qtd)) {
@@ -253260,7 +253819,7 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c linux-3.
+int32_t dwc_otg_hcd_handle_hc_n_intr(dwc_otg_hcd_t * dwc_otg_hcd, uint32_t num)
+{
+ int retval = 0;
-+ hcint_data_t hcint;
++ hcint_data_t hcint, hcint_orig;
+ hcintmsk_data_t hcintmsk;
+ dwc_hc_t *hc;
+ dwc_otg_hc_regs_t *hc_regs;
@@ -253273,12 +253832,23 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c linux-3.
+ qtd = DWC_CIRCLEQ_FIRST(&hc->qh->qtd_list);
+
+ hcint.d32 = DWC_READ_REG32(&hc_regs->hcint);
++ hcint_orig = hcint;
+ hcintmsk.d32 = DWC_READ_REG32(&hc_regs->hcintmsk);
+ DWC_DEBUGPL(DBG_HCDV,
+ " hcint 0x%08x, hcintmsk 0x%08x, hcint&hcintmsk 0x%08x\n",
+ hcint.d32, hcintmsk.d32, (hcint.d32 & hcintmsk.d32));
+ hcint.d32 = hcint.d32 & hcintmsk.d32;
+
++ if(fiq_split_enable)
++ {
++ // replace with the saved interrupts from the fiq handler
++ local_fiq_disable();
++ hcint_orig.d32 = hcint_saved[num].d32;
++ hcint.d32 = hcint_orig.d32 & hcintmsk_saved[num].d32;
++ hcint_saved[num].d32 = 0;
++ local_fiq_enable();
++ }
++
+ if (!dwc_otg_hcd->core_if->dma_enable) {
+ if (hcint.b.chhltd && hcint.d32 != 0x2) {
+ hcint.b.chhltd = 0;
@@ -253296,7 +253866,7 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c linux-3.
+ hcint.b.nyet = 0;
+ }
+ if (hcint.b.chhltd) {
-+ retval |= handle_hc_chhltd_intr(dwc_otg_hcd, hc, hc_regs, qtd);
++ retval |= handle_hc_chhltd_intr(dwc_otg_hcd, hc, hc_regs, qtd, hcint_orig, hcintmsk_saved[num]);
+ }
+ if (hcint.b.ahberr) {
+ retval |= handle_hc_ahberr_intr(dwc_otg_hcd, hc, hc_regs, qtd);
@@ -253332,10 +253902,10 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c linux-3.
+ return retval;
+}
+#endif /* DWC_DEVICE_ONLY */
-diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c linux-3.8.10/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c
---- linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c 2013-05-06 12:55:18.000000000 +0200
-@@ -0,0 +1,945 @@
+diff -Nur linux-3.9.9/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c
+--- linux-3.9.9/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c 2013-07-08 13:33:17.000000000 +0200
+@@ -0,0 +1,967 @@
+
+/* ==========================================================================
+ * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_hcd_linux.c $
@@ -253603,13 +254173,15 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c linux-3
+
+/**
+ * Sets the final status of an URB and returns it to the device driver. Any
-+ * required cleanup of the URB is performed.
++ * required cleanup of the URB is performed. The HCD lock should be held on
++ * entry.
+ */
+static int _complete(dwc_otg_hcd_t * hcd, void *urb_handle,
+ dwc_otg_hcd_urb_t * dwc_otg_urb, int32_t status)
+{
+ struct urb *urb = (struct urb *)urb_handle;
+ urb_tq_entry_t *new_entry;
++ int rc = 0;
+ if (CHK_DEBUG_LEVEL(DBG_HCDV | DBG_HCD_URB)) {
+ DWC_PRINTF("%s: urb %p, device %d, ep %d %s, status=%d\n",
+ __func__, urb, usb_pipedevice(urb->pipe),
@@ -253701,9 +254273,17 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c linux-3
+#endif
+ } else {
+ new_entry->urb = urb;
-+ DWC_TAILQ_INSERT_TAIL(&hcd->completed_urb_list, new_entry,
-+ urb_tq_entries);
-+ DWC_TASK_HI_SCHEDULE(hcd->completion_tasklet);
++#if USB_URB_EP_LINKING
++ rc = usb_hcd_check_unlink_urb(dwc_otg_hcd_to_hcd(hcd), urb, urb->status);
++ if(0 == rc) {
++ usb_hcd_unlink_urb_from_ep(dwc_otg_hcd_to_hcd(hcd), urb);
++ }
++#endif
++ if(0 == rc) {
++ DWC_TAILQ_INSERT_TAIL(&hcd->completed_urb_list, new_entry,
++ urb_tq_entries);
++ DWC_TASK_HI_SCHEDULE(hcd->completion_tasklet);
++ }
+ }
+ return 0;
+}
@@ -253720,7 +254300,11 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c linux-3
+static struct fiq_handler fh = {
+ .name = "usb_fiq",
+};
-+static uint8_t fiqStack[1024];
++struct fiq_stack_s {
++ int magic1;
++ uint8_t stack[2048];
++ int magic2;
++} fiq_stack;
+
+extern mphi_regs_t c_mphi_regs;
+/**
@@ -253758,13 +254342,15 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c linux-3
+ {
+ // Set up fiq
+ claim_fiq(&fh);
-+ set_fiq_handler(__FIQ_Branch, 8);
++ set_fiq_handler(__FIQ_Branch, 4);
+ memset(&regs,0,sizeof(regs));
+ regs.ARM_r8 = (long)dwc_otg_hcd_handle_fiq;
+ regs.ARM_r9 = (long)0;
-+ regs.ARM_sp = (long)fiqStack + sizeof(fiqStack) - 4;
++ regs.ARM_sp = (long)fiq_stack.stack + sizeof(fiq_stack.stack) - 4;
+ set_fiq_regs(&regs);
-+ }
++ fiq_stack.magic1 = 0xdeadbeef;
++ fiq_stack.magic2 = 0xaa995566;
++ }
+
+ /*
+ * Allocate memory for the base HCD plus the DWC OTG HCD.
@@ -253787,6 +254373,8 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c linux-3
+
+ if (fiq_fix_enable)
+ {
++ volatile extern void *dwc_regs_base;
++
+ //Set the mphi periph to the required registers
+ c_mphi_regs.base = otg_dev->os_dep.mphi_base;
+ c_mphi_regs.ctrl = otg_dev->os_dep.mphi_base + 0x4c;
@@ -253794,6 +254382,8 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c linux-3
+ c_mphi_regs.outddb = otg_dev->os_dep.mphi_base + 0x2c;
+ c_mphi_regs.intstat = otg_dev->os_dep.mphi_base + 0x50;
+
++ dwc_regs_base = otg_dev->os_dep.base;
++
+ //Enable mphi peripheral
+ writel((1<<31),c_mphi_regs.ctrl);
+#ifdef DEBUG
@@ -254167,6 +254757,8 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c linux-3
+ usb_hcd_unlink_urb_from_ep(hcd, urb);
+#endif
+ DWC_SPINUNLOCK_IRQRESTORE(dwc_otg_hcd->lock, flags);
++
++
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,28)
+ usb_hcd_giveback_urb(hcd, urb);
+#else
@@ -254281,10 +254873,10 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c linux-3
+}
+
+#endif /* DWC_DEVICE_ONLY */
-diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c linux-3.8.10/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c
---- linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c 2013-05-06 12:55:18.000000000 +0200
-@@ -0,0 +1,958 @@
+diff -Nur linux-3.9.9/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c
+--- linux-3.9.9/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c 2013-07-08 13:33:17.000000000 +0200
+@@ -0,0 +1,963 @@
+/* ==========================================================================
+ * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_hcd_queue.c $
+ * $Revision: #44 $
@@ -254328,6 +254920,7 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c linux-3
+
+#include "dwc_otg_hcd.h"
+#include "dwc_otg_regs.h"
++#include "dwc_otg_mphi_fix.h"
+
+extern bool microframe_schedule;
+
@@ -254478,6 +255071,7 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c linux-3
+ dwc_otg_hcd_get_ep_num(&urb->pipe_info), hub_addr,
+ hub_port);
+ qh->do_split = 1;
++ qh->skip_count = 0;
+ }
+
+ if (qh->ep_type == UE_INTERRUPT || qh->ep_type == UE_ISOCHRONOUS) {
@@ -255024,6 +255618,9 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c linux-3
+ hcd->non_periodic_qh_ptr->next;
+ }
+ DWC_LIST_REMOVE_INIT(&qh->qh_list_entry);
++
++ // If we've removed the last non-periodic entry then there are none left!
++ g_np_count = g_np_sent;
+ } else {
+ deschedule_periodic(hcd, qh);
+ hcd->periodic_qh_count--;
@@ -255053,21 +255650,21 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c linux-3
+{
+ if (dwc_qh_is_non_per(qh)) {
+
-+ dwc_otg_qh_t *qh_tmp;
-+ dwc_list_link_t *qh_list;
-+ DWC_LIST_FOREACH(qh_list, &hcd->non_periodic_sched_inactive)
-+ {
-+ qh_tmp = DWC_LIST_ENTRY(qh_list, struct dwc_otg_qh, qh_list_entry);
-+ if(qh_tmp == qh)
++ dwc_otg_qh_t *qh_tmp;
++ dwc_list_link_t *qh_list;
++ DWC_LIST_FOREACH(qh_list, &hcd->non_periodic_sched_inactive)
+ {
-+ /*
-+ * FIQ is being disabled because this one nevers gets a np_count increment
-+ * This is still not absolutely correct, but it should fix itself with
-+ * just an unnecessary extra interrupt
-+ */
-+ g_np_sent = g_np_count;
++ qh_tmp = DWC_LIST_ENTRY(qh_list, struct dwc_otg_qh, qh_list_entry);
++ if(qh_tmp == qh)
++ {
++ /*
++ * FIQ is being disabled because this one nevers gets a np_count increment
++ * This is still not absolutely correct, but it should fix itself with
++ * just an unnecessary extra interrupt
++ */
++ g_np_sent = g_np_count;
++ }
+ }
-+ }
+
+
+ dwc_otg_hcd_qh_remove(hcd, qh);
@@ -255243,9 +255840,9 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c linux-3
+}
+
+#endif /* DWC_DEVICE_ONLY */
-diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_mphi_fix.c linux-3.8.10/drivers/usb/host/dwc_otg/dwc_otg_mphi_fix.c
---- linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_mphi_fix.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/usb/host/dwc_otg/dwc_otg_mphi_fix.c 2013-05-06 12:55:18.000000000 +0200
+diff -Nur linux-3.9.9/drivers/usb/host/dwc_otg/dwc_otg_mphi_fix.c linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_mphi_fix.c
+--- linux-3.9.9/drivers/usb/host/dwc_otg/dwc_otg_mphi_fix.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_mphi_fix.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,113 @@
+#include "dwc_otg_regs.h"
+#include "dwc_otg_dbg.h"
@@ -255360,17 +255957,14 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_mphi_fix.c linux-3.
+
+ return;
+}
-diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_mphi_fix.h linux-3.8.10/drivers/usb/host/dwc_otg/dwc_otg_mphi_fix.h
---- linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_mphi_fix.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/usb/host/dwc_otg/dwc_otg_mphi_fix.h 2013-05-06 12:55:18.000000000 +0200
-@@ -0,0 +1,36 @@
+diff -Nur linux-3.9.9/drivers/usb/host/dwc_otg/dwc_otg_mphi_fix.h linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_mphi_fix.h
+--- linux-3.9.9/drivers/usb/host/dwc_otg/dwc_otg_mphi_fix.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_mphi_fix.h 2013-07-08 13:33:17.000000000 +0200
+@@ -0,0 +1,48 @@
+#ifndef __DWC_OTG_MPHI_FIX_H__
+#define __DWC_OTG_MPHI_FIX_H__
-+
-+#define FIQ_WRITE_IO_ADDRESS(_addr_,_data_) *(volatile uint32_t *) IO_ADDRESS(_addr_) = _data_
-+#define FIQ_READ_IO_ADDRESS(_addr_) *(volatile uint32_t *) IO_ADDRESS(_addr_)
-+#define FIQ_MODIFY_IO_ADDRESS(_addr_,_clear_,_set_) FIQ_WRITE_IO_ADDRESS(_addr_ , (FIQ_READ_IO_ADDRESS(_addr_)&~_clear_)|_set_)
-+#define FIQ_WRITE(_addr_,_data_) *(volatile uint32_t *) _addr_ = _data_
++#define FIQ_WRITE(_addr_,_data_) (*(volatile uint32_t *) (_addr_) = (_data_))
++#define FIQ_READ(_addr_) (*(volatile uint32_t *) (_addr_))
+
+typedef struct {
+ volatile void* base;
@@ -255378,13 +255972,13 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_mphi_fix.h linux-3.
+ volatile void* outdda;
+ volatile void* outddb;
+ volatile void* intstat;
-+} mphi_regs_t;
++} mphi_regs_t;
+
+void dwc_debug_print_core_int_reg(gintsts_data_t gintsts, const char* function_name);
+void dwc_debug_core_int_mask(gintsts_data_t gintmsk, const char* function_name);
+void dwc_debug_otg_int(gotgint_data_t gotgint, const char* function_name);
+
-+
++extern gintsts_data_t gintsts_saved;
+
+#ifdef DEBUG
+#define DWC_DBG_PRINT_CORE_INT(_arg_) dwc_debug_print_core_int_reg(_arg_,__func__)
@@ -255396,13 +255990,28 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_mphi_fix.h linux-3.
+#define DWC_DBG_PRINT_CORE_INT_MASK(_arg_)
+#define DWC_DBG_PRINT_OTG_INT(_arg_)
+
++#endif
+
++typedef enum {
++ FIQDBG_SCHED = (1 << 0),
++ FIQDBG_INT = (1 << 1),
++ FIQDBG_ERR = (1 << 2),
++ FIQDBG_PORTHUB = (1 << 3),
++} FIQDBG_T;
++
++void _fiq_print(FIQDBG_T dbg_lvl, char *fmt, ...);
++#ifdef FIQ_DEBUG
++#define fiq_print _fiq_print
++#else
++#define fiq_print(x, y, ...)
+#endif
+
++extern bool fiq_fix_enable, nak_holdoff_enable, fiq_split_enable;
++
+#endif
-diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_os_dep.h linux-3.8.10/drivers/usb/host/dwc_otg/dwc_otg_os_dep.h
---- linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_os_dep.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/usb/host/dwc_otg/dwc_otg_os_dep.h 2013-05-06 12:55:18.000000000 +0200
+diff -Nur linux-3.9.9/drivers/usb/host/dwc_otg/dwc_otg_os_dep.h linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_os_dep.h
+--- linux-3.9.9/drivers/usb/host/dwc_otg/dwc_otg_os_dep.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_os_dep.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,188 @@
+#ifndef _DWC_OS_DEP_H_
+#define _DWC_OS_DEP_H_
@@ -255592,9 +256201,9 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_os_dep.h linux-3.8.
+
+
+#endif /* _DWC_OS_DEP_H_ */
-diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_pcd.c linux-3.8.10/drivers/usb/host/dwc_otg/dwc_otg_pcd.c
---- linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_pcd.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/usb/host/dwc_otg/dwc_otg_pcd.c 2013-05-06 12:55:18.000000000 +0200
+diff -Nur linux-3.9.9/drivers/usb/host/dwc_otg/dwc_otg_pcd.c linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_pcd.c
+--- linux-3.9.9/drivers/usb/host/dwc_otg/dwc_otg_pcd.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_pcd.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,2708 @@
+/* ==========================================================================
+ * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_pcd.c $
@@ -258304,9 +258913,9 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_pcd.c linux-3.8.10/
+}
+
+#endif /* DWC_HOST_ONLY */
-diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_pcd.h linux-3.8.10/drivers/usb/host/dwc_otg/dwc_otg_pcd.h
---- linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_pcd.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/usb/host/dwc_otg/dwc_otg_pcd.h 2013-05-06 12:55:18.000000000 +0200
+diff -Nur linux-3.9.9/drivers/usb/host/dwc_otg/dwc_otg_pcd.h linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_pcd.h
+--- linux-3.9.9/drivers/usb/host/dwc_otg/dwc_otg_pcd.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_pcd.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,266 @@
+/* ==========================================================================
+ * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_pcd.h $
@@ -258574,9 +259183,9 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_pcd.h linux-3.8.10/
+extern void do_test_mode(void *data);
+#endif
+#endif /* DWC_HOST_ONLY */
-diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_pcd_if.h linux-3.8.10/drivers/usb/host/dwc_otg/dwc_otg_pcd_if.h
---- linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_pcd_if.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/usb/host/dwc_otg/dwc_otg_pcd_if.h 2013-05-06 12:55:18.000000000 +0200
+diff -Nur linux-3.9.9/drivers/usb/host/dwc_otg/dwc_otg_pcd_if.h linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_pcd_if.h
+--- linux-3.9.9/drivers/usb/host/dwc_otg/dwc_otg_pcd_if.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_pcd_if.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,360 @@
+/* ==========================================================================
+ * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_pcd_if.h $
@@ -258938,9 +259547,9 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_pcd_if.h linux-3.8.
+#endif /* __DWC_PCD_IF_H__ */
+
+#endif /* DWC_HOST_ONLY */
-diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c linux-3.8.10/drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c
---- linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c 2013-05-06 12:55:18.000000000 +0200
+diff -Nur linux-3.9.9/drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c
+--- linux-3.9.9/drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,5147 @@
+/* ==========================================================================
+ * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_pcd_intr.c $
@@ -263220,7 +263829,7 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c linux-3.
+ && (pcd->ep0state == EP0_OUT_DATA_PHASE))
+ status.d32 = core_if->dev_if->out_desc_addr->status.d32;
+ if (pcd->ep0state == EP0_OUT_STATUS_PHASE)
-+ status.d32 = status.d32 = core_if->dev_if->
++ status.d32 = core_if->dev_if->
+ out_desc_addr->status.d32;
+
+ if (status.b.sr) {
@@ -264089,9 +264698,9 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c linux-3.
+}
+
+#endif /* DWC_HOST_ONLY */
-diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c linux-3.8.10/drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c
---- linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c 2013-05-06 12:55:18.000000000 +0200
+diff -Nur linux-3.9.9/drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c
+--- linux-3.9.9/drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,1358 @@
+ /* ==========================================================================
+ * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_pcd_linux.c $
@@ -265451,9 +266060,9 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c linux-3
+EXPORT_SYMBOL(usb_gadget_unregister_driver);
+
+#endif /* DWC_HOST_ONLY */
-diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_regs.h linux-3.8.10/drivers/usb/host/dwc_otg/dwc_otg_regs.h
---- linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_regs.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/usb/host/dwc_otg/dwc_otg_regs.h 2013-05-06 12:55:18.000000000 +0200
+diff -Nur linux-3.9.9/drivers/usb/host/dwc_otg/dwc_otg_regs.h linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_regs.h
+--- linux-3.9.9/drivers/usb/host/dwc_otg/dwc_otg_regs.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/usb/host/dwc_otg/dwc_otg_regs.h 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,2550 @@
+/* ==========================================================================
+ * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_regs.h $
@@ -268005,9 +268614,9 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/dwc_otg_regs.h linux-3.8.10
+} gpwrdn_data_t;
+
+#endif
-diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/Makefile linux-3.8.10/drivers/usb/host/dwc_otg/Makefile
---- linux-3.8.10.orig/drivers/usb/host/dwc_otg/Makefile 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/usb/host/dwc_otg/Makefile 2013-05-06 12:55:18.000000000 +0200
+diff -Nur linux-3.9.9/drivers/usb/host/dwc_otg/Makefile linux-rpi/drivers/usb/host/dwc_otg/Makefile
+--- linux-3.9.9/drivers/usb/host/dwc_otg/Makefile 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/usb/host/dwc_otg/Makefile 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,81 @@
+#
+# Makefile for DWC_otg Highspeed USB controller driver
@@ -268090,9 +268699,9 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/Makefile linux-3.8.10/drive
+ rm -rf *.o *.ko .*cmd *.mod.c .tmp_versions Module.symvers
+
+endif
-diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/test/dwc_otg_test.pm linux-3.8.10/drivers/usb/host/dwc_otg/test/dwc_otg_test.pm
---- linux-3.8.10.orig/drivers/usb/host/dwc_otg/test/dwc_otg_test.pm 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/usb/host/dwc_otg/test/dwc_otg_test.pm 2013-05-06 12:55:18.000000000 +0200
+diff -Nur linux-3.9.9/drivers/usb/host/dwc_otg/test/dwc_otg_test.pm linux-rpi/drivers/usb/host/dwc_otg/test/dwc_otg_test.pm
+--- linux-3.9.9/drivers/usb/host/dwc_otg/test/dwc_otg_test.pm 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/usb/host/dwc_otg/test/dwc_otg_test.pm 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,337 @@
+package dwc_otg_test;
+
@@ -268431,9 +269040,9 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/test/dwc_otg_test.pm linux-
+);
+
+1;
-diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/test/Makefile linux-3.8.10/drivers/usb/host/dwc_otg/test/Makefile
---- linux-3.8.10.orig/drivers/usb/host/dwc_otg/test/Makefile 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/usb/host/dwc_otg/test/Makefile 2013-05-06 12:55:18.000000000 +0200
+diff -Nur linux-3.9.9/drivers/usb/host/dwc_otg/test/Makefile linux-rpi/drivers/usb/host/dwc_otg/test/Makefile
+--- linux-3.9.9/drivers/usb/host/dwc_otg/test/Makefile 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/usb/host/dwc_otg/test/Makefile 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,16 @@
+
+PERL=/usr/bin/perl
@@ -268451,9 +269060,9 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/test/Makefile linux-3.8.10/
+ else echo "=======> $$test, FAILED" ; \
+ fi \
+ done
-diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/test/test_mod_param.pl linux-3.8.10/drivers/usb/host/dwc_otg/test/test_mod_param.pl
---- linux-3.8.10.orig/drivers/usb/host/dwc_otg/test/test_mod_param.pl 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/usb/host/dwc_otg/test/test_mod_param.pl 2013-05-06 12:55:18.000000000 +0200
+diff -Nur linux-3.9.9/drivers/usb/host/dwc_otg/test/test_mod_param.pl linux-rpi/drivers/usb/host/dwc_otg/test/test_mod_param.pl
+--- linux-3.9.9/drivers/usb/host/dwc_otg/test/test_mod_param.pl 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/usb/host/dwc_otg/test/test_mod_param.pl 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,133 @@
+#!/usr/bin/perl -w
+#
@@ -268588,9 +269197,9 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/test/test_mod_param.pl linu
+
+test_main();
+0;
-diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/test/test_sysfs.pl linux-3.8.10/drivers/usb/host/dwc_otg/test/test_sysfs.pl
---- linux-3.8.10.orig/drivers/usb/host/dwc_otg/test/test_sysfs.pl 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/usb/host/dwc_otg/test/test_sysfs.pl 2013-05-06 12:55:18.000000000 +0200
+diff -Nur linux-3.9.9/drivers/usb/host/dwc_otg/test/test_sysfs.pl linux-rpi/drivers/usb/host/dwc_otg/test/test_sysfs.pl
+--- linux-3.9.9/drivers/usb/host/dwc_otg/test/test_sysfs.pl 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/usb/host/dwc_otg/test/test_sysfs.pl 2013-07-08 13:33:17.000000000 +0200
@@ -0,0 +1,193 @@
+#!/usr/bin/perl -w
+#
@@ -268785,9 +269394,9 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/dwc_otg/test/test_sysfs.pl linux-3.
+
+test_main();
+0;
-diff -Nur linux-3.8.10.orig/drivers/usb/host/Kconfig linux-3.8.10/drivers/usb/host/Kconfig
---- linux-3.8.10.orig/drivers/usb/host/Kconfig 2013-04-26 21:18:32.000000000 +0200
-+++ linux-3.8.10/drivers/usb/host/Kconfig 2013-05-06 12:55:18.000000000 +0200
+diff -Nur linux-3.9.9/drivers/usb/host/Kconfig linux-rpi/drivers/usb/host/Kconfig
+--- linux-3.9.9/drivers/usb/host/Kconfig 2013-07-03 19:56:36.000000000 +0200
++++ linux-rpi/drivers/usb/host/Kconfig 2013-07-08 13:33:17.000000000 +0200
@@ -623,6 +623,19 @@
To compile this driver a module, choose M here: the module
will be called "hwa-hc".
@@ -268808,9 +269417,9 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/Kconfig linux-3.8.10/drivers/usb/ho
config USB_IMX21_HCD
tristate "i.MX21 HCD support"
depends on USB && ARM && ARCH_MXC
-diff -Nur linux-3.8.10.orig/drivers/usb/host/Makefile linux-3.8.10/drivers/usb/host/Makefile
---- linux-3.8.10.orig/drivers/usb/host/Makefile 2013-04-26 21:18:32.000000000 +0200
-+++ linux-3.8.10/drivers/usb/host/Makefile 2013-05-06 12:55:18.000000000 +0200
+diff -Nur linux-3.9.9/drivers/usb/host/Makefile linux-rpi/drivers/usb/host/Makefile
+--- linux-3.9.9/drivers/usb/host/Makefile 2013-07-03 19:56:36.000000000 +0200
++++ linux-rpi/drivers/usb/host/Makefile 2013-07-08 13:33:17.000000000 +0200
@@ -41,6 +41,8 @@
obj-$(CONFIG_USB_R8A66597_HCD) += r8a66597-hcd.o
obj-$(CONFIG_USB_ISP1760_HCD) += isp1760.o
@@ -268820,9 +269429,9 @@ diff -Nur linux-3.8.10.orig/drivers/usb/host/Makefile linux-3.8.10/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_OCTEON2_COMMON) += octeon2-common.o
-diff -Nur linux-3.8.10.orig/drivers/usb/Makefile linux-3.8.10/drivers/usb/Makefile
---- linux-3.8.10.orig/drivers/usb/Makefile 2013-04-26 21:18:32.000000000 +0200
-+++ linux-3.8.10/drivers/usb/Makefile 2013-05-06 12:55:18.000000000 +0200
+diff -Nur linux-3.9.9/drivers/usb/Makefile linux-rpi/drivers/usb/Makefile
+--- linux-3.9.9/drivers/usb/Makefile 2013-07-03 19:56:36.000000000 +0200
++++ linux-rpi/drivers/usb/Makefile 2013-07-08 13:33:17.000000000 +0200
@@ -25,6 +25,7 @@
obj-$(CONFIG_USB_R8A66597_HCD) += host/
obj-$(CONFIG_USB_HWA_HCD) += host/
@@ -268831,10 +269440,10 @@ diff -Nur linux-3.8.10.orig/drivers/usb/Makefile linux-3.8.10/drivers/usb/Makefi
obj-$(CONFIG_USB_IMX21_HCD) += host/
obj-$(CONFIG_USB_FSL_MPH_DR_OF) += host/
-diff -Nur linux-3.8.10.orig/drivers/video/bcm2708_fb.c linux-3.8.10/drivers/video/bcm2708_fb.c
---- linux-3.8.10.orig/drivers/video/bcm2708_fb.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/video/bcm2708_fb.c 2013-05-06 12:55:18.000000000 +0200
-@@ -0,0 +1,491 @@
+diff -Nur linux-3.9.9/drivers/video/bcm2708_fb.c linux-rpi/drivers/video/bcm2708_fb.c
+--- linux-3.9.9/drivers/video/bcm2708_fb.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/video/bcm2708_fb.c 2013-07-08 13:33:18.000000000 +0200
+@@ -0,0 +1,647 @@
+/*
+ * linux/drivers/video/bcm2708_fb.c
+ *
@@ -268865,6 +269474,7 @@ diff -Nur linux-3.8.10.orig/drivers/video/bcm2708_fb.c linux-3.8.10/drivers/vide
+#include <linux/printk.h>
+#include <linux/console.h>
+
++#include <mach/dma.h>
+#include <mach/platform.h>
+#include <mach/vcio.h>
+
@@ -268900,6 +269510,11 @@ diff -Nur linux-3.8.10.orig/drivers/video/bcm2708_fb.c linux-3.8.10/drivers/vide
+ struct fbinfo_s *info;
+ dma_addr_t dma;
+ u32 cmap[16];
++ int dma_chan;
++ int dma_irq;
++ void __iomem *dma_chan_base;
++ void *cb_base; /* DMA control blocks */
++ dma_addr_t cb_handle;
+};
+
+#define to_bcm2708(info) container_of(info, struct bcm2708_fb, fb)
@@ -269149,11 +269764,133 @@ diff -Nur linux-3.8.10.orig/drivers/video/bcm2708_fb.c linux-3.8.10/drivers/vide
+ cfb_fillrect(info, rect);
+}
+
++/* A helper function for configuring dma control block */
++static void set_dma_cb(struct bcm2708_dma_cb *cb,
++ int burst_size,
++ dma_addr_t dst,
++ int dst_stride,
++ dma_addr_t src,
++ int src_stride,
++ int w,
++ int h)
++{
++ cb->info = BCM2708_DMA_BURST(burst_size) | BCM2708_DMA_S_WIDTH |
++ BCM2708_DMA_S_INC | BCM2708_DMA_D_WIDTH |
++ BCM2708_DMA_D_INC | BCM2708_DMA_TDMODE;
++ cb->dst = dst;
++ cb->src = src;
++ /*
++ * This is not really obvious from the DMA documentation,
++ * but the top 16 bits must be programmmed to "height -1"
++ * and not "height" in 2D mode.
++ */
++ cb->length = ((h - 1) << 16) | w;
++ cb->stride = ((dst_stride - w) << 16) | (u16)(src_stride - w);
++ cb->pad[0] = 0;
++ cb->pad[1] = 0;
++}
++
+static void bcm2708_fb_copyarea(struct fb_info *info,
+ const struct fb_copyarea *region)
+{
-+ /*print_debug("bcm2708_fb_copyarea\n"); */
-+ cfb_copyarea(info, region);
++ struct bcm2708_fb *fb = to_bcm2708(info);
++ struct bcm2708_dma_cb *cb = fb->cb_base;
++ int bytes_per_pixel = (info->var.bits_per_pixel + 7) >> 3;
++ /* Channel 0 supports larger bursts and is a bit faster */
++ int burst_size = (fb->dma_chan == 0) ? 8 : 2;
++
++ /* Fallback to cfb_copyarea() if we don't like something */
++ if (bytes_per_pixel > 4 ||
++ info->var.xres > 1920 || info->var.yres > 1200 ||
++ region->width <= 0 || region->width > info->var.xres ||
++ region->height <= 0 || region->height > info->var.yres ||
++ region->sx < 0 || region->sx >= info->var.xres ||
++ region->sy < 0 || region->sy >= info->var.yres ||
++ region->dx < 0 || region->dx >= info->var.xres ||
++ region->dy < 0 || region->dy >= info->var.yres ||
++ region->sx + region->width > info->var.xres ||
++ region->dx + region->width > info->var.xres ||
++ region->sy + region->height > info->var.yres ||
++ region->dy + region->height > info->var.yres) {
++ cfb_copyarea(info, region);
++ return;
++ }
++
++ if (region->dy == region->sy && region->dx > region->sx) {
++ /*
++ * A difficult case of overlapped copy. Because DMA can't
++ * copy individual scanlines in backwards direction, we need
++ * two-pass processing. We do it by programming a chain of dma
++ * control blocks in the first 16K part of the buffer and use
++ * the remaining 48K as the intermediate temporary scratch
++ * buffer. The buffer size is sufficient to handle up to
++ * 1920x1200 resolution at 32bpp pixel depth.
++ */
++ int y;
++ dma_addr_t control_block_pa = fb->cb_handle;
++ dma_addr_t scratchbuf = fb->cb_handle + 16 * 1024;
++ int scanline_size = bytes_per_pixel * region->width;
++ int scanlines_per_cb = (64 * 1024 - 16 * 1024) / scanline_size;
++
++ for (y = 0; y < region->height; y += scanlines_per_cb) {
++ dma_addr_t src =
++ fb->fb.fix.smem_start +
++ bytes_per_pixel * region->sx +
++ (region->sy + y) * fb->fb.fix.line_length;
++ dma_addr_t dst =
++ fb->fb.fix.smem_start +
++ bytes_per_pixel * region->dx +
++ (region->dy + y) * fb->fb.fix.line_length;
++
++ if (region->height - y < scanlines_per_cb)
++ scanlines_per_cb = region->height - y;
++
++ set_dma_cb(cb, burst_size, scratchbuf, scanline_size,
++ src, fb->fb.fix.line_length,
++ scanline_size, scanlines_per_cb);
++ control_block_pa += sizeof(struct bcm2708_dma_cb);
++ cb->next = control_block_pa;
++ cb++;
++
++ set_dma_cb(cb, burst_size, dst, fb->fb.fix.line_length,
++ scratchbuf, scanline_size,
++ scanline_size, scanlines_per_cb);
++ control_block_pa += sizeof(struct bcm2708_dma_cb);
++ cb->next = control_block_pa;
++ cb++;
++ }
++ /* move the pointer back to the last dma control block */
++ cb--;
++ } else {
++ /* A single dma control block is enough. */
++ int sy, dy, stride;
++ if (region->dy <= region->sy) {
++ /* processing from top to bottom */
++ dy = region->dy;
++ sy = region->sy;
++ stride = fb->fb.fix.line_length;
++ } else {
++ /* processing from bottom to top */
++ dy = region->dy + region->height - 1;
++ sy = region->sy + region->height - 1;
++ stride = -fb->fb.fix.line_length;
++ }
++ set_dma_cb(cb, burst_size,
++ fb->fb.fix.smem_start + dy * fb->fb.fix.line_length +
++ bytes_per_pixel * region->dx,
++ stride,
++ fb->fb.fix.smem_start + sy * fb->fb.fix.line_length +
++ bytes_per_pixel * region->sx,
++ stride,
++ region->width * bytes_per_pixel,
++ region->height);
++ }
++
++ /* end of dma control blocks chain */
++ cb->next = 0;
++
++ bcm_dma_start(fb->dma_chan_base, fb->cb_handle);
++ bcm_dma_wait_idle(fb->dma_chan_base);
+}
+
+static void bcm2708_fb_imageblit(struct fb_info *info,
@@ -269196,7 +269933,7 @@ diff -Nur linux-3.8.10.orig/drivers/video/bcm2708_fb.c linux-3.8.10/drivers/vide
+ fb->dma = dma;
+ }
+ fb->fb.fbops = &bcm2708_fb_ops;
-+ fb->fb.flags = FBINFO_FLAG_DEFAULT;
++ fb->fb.flags = FBINFO_FLAG_DEFAULT | FBINFO_HWACCEL_COPYAREA;
+ fb->fb.pseudo_palette = fb->cmap;
+
+ strncpy(fb->fb.fix.id, bcm2708_name, sizeof(fb->fb.fix.id));
@@ -269261,6 +269998,28 @@ diff -Nur linux-3.8.10.orig/drivers/video/bcm2708_fb.c linux-3.8.10/drivers/vide
+ }
+ memset(fb, 0, sizeof(struct bcm2708_fb));
+
++ fb->cb_base = dma_alloc_writecombine(&dev->dev, SZ_64K,
++ &fb->cb_handle, GFP_KERNEL);
++ if (!fb->cb_base) {
++ dev_err(&dev->dev, "cannot allocate DMA CBs\n");
++ ret = -ENOMEM;
++ goto free_fb;
++ }
++
++ pr_info("BCM2708FB: allocated DMA memory %08x\n",
++ fb->cb_handle);
++
++ ret = bcm_dma_chan_alloc(BCM_DMA_FEATURE_BULK,
++ &fb->dma_chan_base, &fb->dma_irq);
++ if (ret < 0) {
++ dev_err(&dev->dev, "couldn't allocate a DMA channel\n");
++ goto free_cb;
++ }
++ fb->dma_chan = ret;
++
++ pr_info("BCM2708FB: allocated DMA channel %d @ %p\n",
++ fb->dma_chan, fb->dma_chan_base);
++
+ fb->dev = dev;
+
+ ret = bcm2708_fb_register(fb);
@@ -269269,6 +270028,9 @@ diff -Nur linux-3.8.10.orig/drivers/video/bcm2708_fb.c linux-3.8.10/drivers/vide
+ goto out;
+ }
+
++free_cb:
++ dma_free_writecombine(&dev->dev, SZ_64K, fb->cb_base, fb->cb_handle);
++free_fb:
+ kfree(fb);
+free_region:
+ dev_err(&dev->dev, "probe failed, err %d\n", ret);
@@ -269286,6 +270048,9 @@ diff -Nur linux-3.8.10.orig/drivers/video/bcm2708_fb.c linux-3.8.10/drivers/vide
+ iounmap(fb->fb.screen_base);
+ unregister_framebuffer(&fb->fb);
+
++ dma_free_writecombine(&dev->dev, SZ_64K, fb->cb_base, fb->cb_handle);
++ bcm_dma_chan_free(fb->dma_chan);
++
+ dma_free_coherent(NULL, PAGE_ALIGN(sizeof(*fb->info)), (void *)fb->info,
+ fb->dma);
+ kfree(fb);
@@ -269326,31 +270091,247 @@ diff -Nur linux-3.8.10.orig/drivers/video/bcm2708_fb.c linux-3.8.10/drivers/vide
+MODULE_PARM_DESC(fbwidth, "Width of ARM Framebuffer");
+MODULE_PARM_DESC(fbheight, "Height of ARM Framebuffer");
+MODULE_PARM_DESC(fbdepth, "Bit depth of ARM Framebuffer");
-diff -Nur linux-3.8.10.orig/drivers/video/console/fbcon.c linux-3.8.10/drivers/video/console/fbcon.c
---- linux-3.8.10.orig/drivers/video/console/fbcon.c 2013-04-26 21:18:32.000000000 +0200
-+++ linux-3.8.10/drivers/video/console/fbcon.c 2013-05-06 12:55:18.000000000 +0200
-@@ -1275,8 +1275,16 @@
- if (!height || !width)
- return;
-
-- if (sy < vc->vc_top && vc->vc_top == logo_lines)
-+ if (sy < vc->vc_top && vc->vc_top == logo_lines) {
- vc->vc_top = 0;
-+ /*
-+ * If the font dimensions are not an integral of the display
-+ * dimensions then the ops->clear below won't end up clearing
-+ * the margins. Call clear_margins here in case the logo
-+ * bitmap stretched into the margin area.
-+ */
-+ fbcon_clear_margins(vc, 0);
+diff -Nur linux-3.9.9/drivers/video/cfbimgblt.c linux-rpi/drivers/video/cfbimgblt.c
+--- linux-3.9.9/drivers/video/cfbimgblt.c 2013-07-03 19:56:36.000000000 +0200
++++ linux-rpi/drivers/video/cfbimgblt.c 2013-07-08 13:33:18.000000000 +0200
+@@ -28,6 +28,11 @@
+ *
+ * Also need to add code to deal with cards endians that are different than
+ * the native cpu endians. I also need to deal with MSB position in the word.
++ * Modified by Harm Hanemaaijer (fgenfb@yahoo.com) 2013:
++ * - Provide optimized versions of fast_imageblit for 16 and 32bpp that are
++ * significantly faster than the previous implementation.
++ * - Simplify the fast/slow_imageblit selection code, avoiding integer
++ * divides.
+ */
+ #include <linux/module.h>
+ #include <linux/string.h>
+@@ -262,6 +267,133 @@
+ }
+ }
+
++/*
++ * Optimized fast_imageblit for bpp == 16. ppw = 2, bit_mask = 3 folded
++ * into the code, main loop unrolled.
++ */
++
++static inline void fast_imageblit16(const struct fb_image *image,
++ struct fb_info *p, u8 __iomem * dst1,
++ u32 fgcolor, u32 bgcolor)
++{
++ u32 fgx = fgcolor, bgx = bgcolor;
++ u32 spitch = (image->width + 7) / 8;
++ u32 end_mask, eorx;
++ const char *s = image->data, *src;
++ u32 __iomem *dst;
++ const u32 *tab = NULL;
++ int i, j, k;
++
++ tab = fb_be_math(p) ? cfb_tab16_be : cfb_tab16_le;
++
++ fgx <<= 16;
++ bgx <<= 16;
++ fgx |= fgcolor;
++ bgx |= bgcolor;
++
++ eorx = fgx ^ bgx;
++ k = image->width / 2;
++
++ for (i = image->height; i--;) {
++ dst = (u32 __iomem *) dst1;
++ src = s;
++
++ j = k;
++ while (j >= 4) {
++ u8 bits = *src;
++ end_mask = tab[(bits >> 6) & 3];
++ FB_WRITEL((end_mask & eorx) ^ bgx, dst++);
++ end_mask = tab[(bits >> 4) & 3];
++ FB_WRITEL((end_mask & eorx) ^ bgx, dst++);
++ end_mask = tab[(bits >> 2) & 3];
++ FB_WRITEL((end_mask & eorx) ^ bgx, dst++);
++ end_mask = tab[bits & 3];
++ FB_WRITEL((end_mask & eorx) ^ bgx, dst++);
++ src++;
++ j -= 4;
++ }
++ if (j != 0) {
++ u8 bits = *src;
++ end_mask = tab[(bits >> 6) & 3];
++ FB_WRITEL((end_mask & eorx) ^ bgx, dst++);
++ if (j >= 2) {
++ end_mask = tab[(bits >> 4) & 3];
++ FB_WRITEL((end_mask & eorx) ^ bgx, dst++);
++ if (j == 3) {
++ end_mask = tab[(bits >> 2) & 3];
++ FB_WRITEL((end_mask & eorx) ^ bgx, dst);
++ }
++ }
++ }
++ dst1 += p->fix.line_length;
++ s += spitch;
+ }
++}
++
++/*
++ * Optimized fast_imageblit for bpp == 32. ppw = 1, bit_mask = 1 folded
++ * into the code, main loop unrolled.
++ */
++
++static inline void fast_imageblit32(const struct fb_image *image,
++ struct fb_info *p, u8 __iomem * dst1,
++ u32 fgcolor, u32 bgcolor)
++{
++ u32 fgx = fgcolor, bgx = bgcolor;
++ u32 spitch = (image->width + 7) / 8;
++ u32 end_mask, eorx;
++ const char *s = image->data, *src;
++ u32 __iomem *dst;
++ const u32 *tab = NULL;
++ int i, j, k;
++
++ tab = cfb_tab32;
++
++ eorx = fgx ^ bgx;
++ k = image->width;
++
++ for (i = image->height; i--;) {
++ dst = (u32 __iomem *) dst1;
++ src = s;
++
++ j = k;
++ while (j >= 8) {
++ u8 bits = *src;
++ end_mask = tab[(bits >> 7) & 1];
++ FB_WRITEL((end_mask & eorx) ^ bgx, dst++);
++ end_mask = tab[(bits >> 6) & 1];
++ FB_WRITEL((end_mask & eorx) ^ bgx, dst++);
++ end_mask = tab[(bits >> 5) & 1];
++ FB_WRITEL((end_mask & eorx) ^ bgx, dst++);
++ end_mask = tab[(bits >> 4) & 1];
++ FB_WRITEL((end_mask & eorx) ^ bgx, dst++);
++ end_mask = tab[(bits >> 3) & 1];
++ FB_WRITEL((end_mask & eorx) ^ bgx, dst++);
++ end_mask = tab[(bits >> 2) & 1];
++ FB_WRITEL((end_mask & eorx) ^ bgx, dst++);
++ end_mask = tab[(bits >> 1) & 1];
++ FB_WRITEL((end_mask & eorx) ^ bgx, dst++);
++ end_mask = tab[bits & 1];
++ FB_WRITEL((end_mask & eorx) ^ bgx, dst++);
++ src++;
++ j -= 8;
++ }
++ if (j != 0) {
++ u32 bits = (u32) * src;
++ while (j > 1) {
++ end_mask = tab[(bits >> 7) & 1];
++ FB_WRITEL((end_mask & eorx) ^ bgx, dst++);
++ bits <<= 1;
++ j--;
++ }
++ end_mask = tab[(bits >> 7) & 1];
++ FB_WRITEL((end_mask & eorx) ^ bgx, dst);
++ }
++ dst1 += p->fix.line_length;
++ s += spitch;
++ }
++}
++
+ void cfb_imageblit(struct fb_info *p, const struct fb_image *image)
+ {
+ u32 fgcolor, bgcolor, start_index, bitstart, pitch_index = 0;
+@@ -294,11 +426,21 @@
+ bgcolor = image->bg_color;
+ }
+
+- if (32 % bpp == 0 && !start_index && !pitch_index &&
+- ((width & (32/bpp-1)) == 0) &&
+- bpp >= 8 && bpp <= 32)
+- fast_imageblit(image, p, dst1, fgcolor, bgcolor);
+- else
++ if (!start_index && !pitch_index) {
++ if (bpp == 32)
++ fast_imageblit32(image, p, dst1, fgcolor,
++ bgcolor);
++ else if (bpp == 16 && (width & 1) == 0)
++ fast_imageblit16(image, p, dst1, fgcolor,
++ bgcolor);
++ else if (bpp == 8 && (width & 3) == 0)
++ fast_imageblit(image, p, dst1, fgcolor,
++ bgcolor);
++ else
++ slow_imageblit(image, p, dst1, fgcolor,
++ bgcolor,
++ start_index, pitch_index);
++ } else
+ slow_imageblit(image, p, dst1, fgcolor, bgcolor,
+ start_index, pitch_index);
+ } else
+diff -Nur linux-3.9.9/drivers/video/fbmem.c linux-rpi/drivers/video/fbmem.c
+--- linux-3.9.9/drivers/video/fbmem.c 2013-07-03 19:56:36.000000000 +0200
++++ linux-rpi/drivers/video/fbmem.c 2013-07-08 13:33:18.000000000 +0200
+@@ -1074,6 +1074,25 @@
+ return ret;
+ }
- /* Split blits that cross physical y_wrap boundary */
++static int fb_copyarea_user(struct fb_info *info,
++ struct fb_copyarea *copy)
++{
++ int ret = 0;
++ if (!lock_fb_info(info))
++ return -ENODEV;
++ if (copy->dx + copy->width > info->var.xres ||
++ copy->sx + copy->width > info->var.xres ||
++ copy->dy + copy->height > info->var.yres ||
++ copy->sy + copy->height > info->var.yres) {
++ ret = -EINVAL;
++ goto out;
++ }
++ info->fbops->fb_copyarea(info, copy);
++out:
++ unlock_fb_info(info);
++ return ret;
++}
++
+ static long do_fb_ioctl(struct fb_info *info, unsigned int cmd,
+ unsigned long arg)
+ {
+@@ -1084,6 +1103,7 @@
+ struct fb_cmap cmap_from;
+ struct fb_cmap_user cmap;
+ struct fb_event event;
++ struct fb_copyarea copy;
+ void __user *argp = (void __user *)arg;
+ long ret = 0;
-diff -Nur linux-3.8.10.orig/drivers/video/Kconfig linux-3.8.10/drivers/video/Kconfig
---- linux-3.8.10.orig/drivers/video/Kconfig 2013-04-26 21:18:32.000000000 +0200
-+++ linux-3.8.10/drivers/video/Kconfig 2013-05-06 12:55:18.000000000 +0200
-@@ -312,6 +312,20 @@
+@@ -1193,6 +1213,15 @@
+ console_unlock();
+ unlock_fb_info(info);
+ break;
++ case FBIOCOPYAREA:
++ if (info->flags & FBINFO_HWACCEL_COPYAREA) {
++ /* only provide this ioctl if it is accelerated */
++ if (copy_from_user(&copy, argp, sizeof(copy)))
++ return -EFAULT;
++ ret = fb_copyarea_user(info, &copy);
++ break;
++ }
++ /* fall through */
+ default:
+ if (!lock_fb_info(info))
+ return -ENODEV;
+@@ -1345,6 +1374,7 @@
+ case FBIOPAN_DISPLAY:
+ case FBIOGET_CON2FBMAP:
+ case FBIOPUT_CON2FBMAP:
++ case FBIOCOPYAREA:
+ arg = (unsigned long) compat_ptr(arg);
+ case FBIOBLANK:
+ ret = do_fb_ioctl(info, cmd, arg);
+diff -Nur linux-3.9.9/drivers/video/Kconfig linux-rpi/drivers/video/Kconfig
+--- linux-3.9.9/drivers/video/Kconfig 2013-07-03 19:56:36.000000000 +0200
++++ linux-rpi/drivers/video/Kconfig 2013-07-08 13:33:18.000000000 +0200
+@@ -334,6 +334,20 @@
help
Support the Permedia2 FIFO disconnect feature.
@@ -269371,9 +270352,9 @@ diff -Nur linux-3.8.10.orig/drivers/video/Kconfig linux-3.8.10/drivers/video/Kco
config FB_ARMCLCD
tristate "ARM PrimeCell PL110 support"
depends on FB && ARM && ARM_AMBA
-diff -Nur linux-3.8.10.orig/drivers/video/logo/logo_linux_clut224.ppm linux-3.8.10/drivers/video/logo/logo_linux_clut224.ppm
---- linux-3.8.10.orig/drivers/video/logo/logo_linux_clut224.ppm 2013-04-26 21:18:32.000000000 +0200
-+++ linux-3.8.10/drivers/video/logo/logo_linux_clut224.ppm 2013-05-06 12:55:18.000000000 +0200
+diff -Nur linux-3.9.9/drivers/video/logo/logo_linux_clut224.ppm linux-rpi/drivers/video/logo/logo_linux_clut224.ppm
+--- linux-3.9.9/drivers/video/logo/logo_linux_clut224.ppm 2013-07-03 19:56:36.000000000 +0200
++++ linux-rpi/drivers/video/logo/logo_linux_clut224.ppm 2013-07-08 13:33:18.000000000 +0200
@@ -1,1604 +1,883 @@
P3
-# Standard 224-color Linux logo
@@ -271860,20 +272841,20 @@ diff -Nur linux-3.8.10.orig/drivers/video/logo/logo_linux_clut224.ppm linux-3.8.
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0
-diff -Nur linux-3.8.10.orig/drivers/video/Makefile linux-3.8.10/drivers/video/Makefile
---- linux-3.8.10.orig/drivers/video/Makefile 2013-04-26 21:18:32.000000000 +0200
-+++ linux-3.8.10/drivers/video/Makefile 2013-05-06 12:55:18.000000000 +0200
-@@ -98,6 +98,7 @@
- obj-$(CONFIG_FB_PVR2) += pvr2fb.o
+diff -Nur linux-3.9.9/drivers/video/Makefile linux-rpi/drivers/video/Makefile
+--- linux-3.9.9/drivers/video/Makefile 2013-07-03 19:56:36.000000000 +0200
++++ linux-rpi/drivers/video/Makefile 2013-07-08 13:33:18.000000000 +0200
+@@ -100,6 +100,7 @@
obj-$(CONFIG_FB_VOODOO1) += sstfb.o
obj-$(CONFIG_FB_ARMCLCD) += amba-clcd.o
+ obj-$(CONFIG_FB_GOLDFISH) += goldfishfb.o
+obj-$(CONFIG_FB_BCM2708) += bcm2708_fb.o
obj-$(CONFIG_FB_68328) += 68328fb.o
obj-$(CONFIG_FB_GBE) += gbefb.o
obj-$(CONFIG_FB_CIRRUS) += cirrusfb.o
-diff -Nur linux-3.8.10.orig/drivers/w1/masters/w1-gpio.c linux-3.8.10/drivers/w1/masters/w1-gpio.c
---- linux-3.8.10.orig/drivers/w1/masters/w1-gpio.c 2013-04-26 21:18:32.000000000 +0200
-+++ linux-3.8.10/drivers/w1/masters/w1-gpio.c 2013-05-06 12:55:18.000000000 +0200
+diff -Nur linux-3.9.9/drivers/w1/masters/w1-gpio.c linux-rpi/drivers/w1/masters/w1-gpio.c
+--- linux-3.9.9/drivers/w1/masters/w1-gpio.c 2013-07-03 19:56:36.000000000 +0200
++++ linux-rpi/drivers/w1/masters/w1-gpio.c 2013-07-08 13:33:18.000000000 +0200
@@ -23,6 +23,9 @@
#include "../w1.h"
#include "../w1_int.h"
@@ -271898,10 +272879,10 @@ diff -Nur linux-3.8.10.orig/drivers/w1/masters/w1-gpio.c linux-3.8.10/drivers/w1
+ gpio_direction_input(pdata->pin);
+}
+
+ #if defined(CONFIG_OF)
static struct of_device_id w1_gpio_dt_ids[] = {
{ .compatible = "w1-gpio" },
- {}
-@@ -131,6 +144,13 @@
+@@ -133,6 +146,13 @@
master->write_bit = w1_gpio_write_bit_dir;
}
@@ -271915,362 +272896,29 @@ diff -Nur linux-3.8.10.orig/drivers/w1/masters/w1-gpio.c linux-3.8.10/drivers/w1
err = w1_add_master_device(master);
if (err) {
dev_err(&pdev->dev, "w1_add_master device failed\n");
-@@ -147,12 +167,12 @@
-
- return 0;
-
-- free_gpio_ext_pu:
-+free_gpio_ext_pu:
- if (gpio_is_valid(pdata->ext_pullup_enable_pin))
- gpio_free(pdata->ext_pullup_enable_pin);
-- free_gpio:
-+free_gpio:
- gpio_free(pdata->pin);
-- free_master:
-+free_master:
- kfree(master);
-
- return err;
-diff -Nur linux-3.8.10.orig/drivers/w1/w1.h linux-3.8.10/drivers/w1/w1.h
---- linux-3.8.10.orig/drivers/w1/w1.h 2013-04-26 21:18:32.000000000 +0200
-+++ linux-3.8.10/drivers/w1/w1.h 2013-05-06 12:55:18.000000000 +0200
-@@ -22,16 +22,11 @@
- #ifndef __W1_H
- #define __W1_H
-
--struct w1_reg_num
--{
-+struct w1_reg_num {
- #if defined(__LITTLE_ENDIAN_BITFIELD)
-- __u64 family:8,
-- id:48,
-- crc:8;
-+ __u64 family:8, id:48, crc:8;
- #elif defined(__BIG_ENDIAN_BITFIELD)
-- __u64 crc:8,
-- id:48,
-- family:8;
-+ __u64 crc:8, id:48, family:8;
- #else
- #error "Please fix <asm/byteorder.h>"
- #endif
-@@ -59,26 +54,24 @@
-
- #define W1_SLAVE_ACTIVE 0
-
--struct w1_slave
--{
-- struct module *owner;
-- unsigned char name[W1_MAXNAMELEN];
-- struct list_head w1_slave_entry;
-- struct w1_reg_num reg_num;
-- atomic_t refcnt;
-- u8 rom[9];
-- u32 flags;
-- int ttl;
--
-- struct w1_master *master;
-- struct w1_family *family;
-- void *family_data;
-- struct device dev;
-- struct completion released;
-+struct w1_slave {
-+ struct module *owner;
-+ unsigned char name[W1_MAXNAMELEN];
-+ struct list_head w1_slave_entry;
-+ struct w1_reg_num reg_num;
-+ atomic_t refcnt;
-+ u8 rom[9];
-+ u32 flags;
-+ int ttl;
-+
-+ struct w1_master *master;
-+ struct w1_family *family;
-+ void *family_data;
-+ struct device dev;
-+ struct completion released;
- };
-
--typedef void (*w1_slave_found_callback)(struct w1_master *, u64);
--
-+typedef void (*w1_slave_found_callback) (struct w1_master *, u64);
-
- /**
- * Note: read_bit and write_bit are very low level functions and should only
-@@ -87,19 +80,18 @@
- * Either define read_bit and write_bit OR define, at minimum, touch_bit and
- * reset_bus.
- */
--struct w1_bus_master
--{
-+struct w1_bus_master {
- /** the first parameter in all the functions below */
-- void *data;
-+ void *data;
-
- /**
- * Sample the line level
- * @return the level read (0 or 1)
+diff -Nur linux-3.9.9/drivers/w1/w1.h linux-rpi/drivers/w1/w1.h
+--- linux-3.9.9/drivers/w1/w1.h 2013-07-03 19:56:36.000000000 +0200
++++ linux-rpi/drivers/w1/w1.h 2013-07-08 13:33:18.000000000 +0200
+@@ -148,6 +148,12 @@
*/
-- u8 (*read_bit)(void *);
-+ u8(*read_bit) (void *);
+ u8 (*set_pullup)(void *, int);
- /** Sets the line level */
-- void (*write_bit)(void *, u8);
-+ void (*write_bit) (void *, u8);
-
- /**
- * touch_bit is the lowest-level function for devices that really
-@@ -108,96 +100,103 @@
- * touch_bit(1) = write-1 / read cycle
- * @return the bit read (0 or 1)
- */
-- u8 (*touch_bit)(void *, u8);
-+ u8(*touch_bit) (void *, u8);
-
- /**
- * Reads a bytes. Same as 8 touch_bit(1) calls.
- * @return the byte read
- */
-- u8 (*read_byte)(void *);
-+ u8(*read_byte) (void *);
-
- /**
- * Writes a byte. Same as 8 touch_bit(x) calls.
- */
-- void (*write_byte)(void *, u8);
-+ void (*write_byte) (void *, u8);
-
- /**
- * Same as a series of read_byte() calls
- * @return the number of bytes read
- */
-- u8 (*read_block)(void *, u8 *, int);
-+ u8(*read_block) (void *, u8 *, int);
-
- /** Same as a series of write_byte() calls */
-- void (*write_block)(void *, const u8 *, int);
-+ void (*write_block) (void *, const u8 *, int);
-
- /**
- * Combines two reads and a smart write for ROM searches
- * @return bit0=Id bit1=comp_id bit2=dir_taken
- */
-- u8 (*triplet)(void *, u8);
-+ u8(*triplet) (void *, u8);
-
- /**
- * long write-0 with a read for the presence pulse detection
- * @return -1=Error, 0=Device present, 1=No device present
- */
-- u8 (*reset_bus)(void *);
-+ u8(*reset_bus) (void *);
-
- /**
- * Put out a strong pull-up pulse of the specified duration.
- * @return -1=Error, 0=completed
- */
-- u8 (*set_pullup)(void *, int);
-+ u8(*set_pullup) (void *, int);
-+
+ /**
+ * Turns the pullup on/off in bitbanging mode, takes an on/off argument.
+ * @return -1=Error, 0=completed
+ */
+ void (*bitbang_pullup) (void *, u8);
-
++
/** Really nice hardware can handles the different types of ROM search
* w1_master* is passed to the slave found callback.
*/
-- void (*search)(void *, struct w1_master *,
-- u8, w1_slave_found_callback);
-+ void (*search) (void *, struct w1_master *,
-+ u8, w1_slave_found_callback);
- };
-
--struct w1_master
--{
-- struct list_head w1_master_entry;
-- struct module *owner;
-- unsigned char name[W1_MAXNAMELEN];
-- struct list_head slist;
-- int max_slave_count, slave_count;
-- unsigned long attempts;
-- int slave_ttl;
-- int initialized;
-- u32 id;
-- int search_count;
-+struct w1_master {
-+ struct list_head w1_master_entry;
-+ struct module *owner;
-+ unsigned char name[W1_MAXNAMELEN];
-+ struct list_head slist;
-+ int max_slave_count, slave_count;
-+ unsigned long attempts;
-+ int slave_ttl;
-+ int initialized;
-+ u32 id;
-+ int search_count;
-
-- atomic_t refcnt;
-+ atomic_t refcnt;
-
-- void *priv;
-- int priv_size;
-+ void *priv;
-+ int priv_size;
-
- /** 5V strong pullup enabled flag, 1 enabled, zero disabled. */
-- int enable_pullup;
-+ int enable_pullup;
- /** 5V strong pullup duration in milliseconds, zero disabled. */
-- int pullup_duration;
-+ int pullup_duration;
-
-- struct task_struct *thread;
-- struct mutex mutex;
-- struct mutex bus_mutex;
-+ struct task_struct *thread;
-+ struct mutex mutex;
-+ struct mutex bus_mutex;
-
-- struct device_driver *driver;
-- struct device dev;
-+ struct device_driver *driver;
-+ struct device dev;
-
-- struct w1_bus_master *bus_master;
-+ struct w1_bus_master *bus_master;
-
-- u32 seq;
-+ u32 seq;
- };
-
- int w1_create_master_attributes(struct w1_master *);
- void w1_destroy_master_attributes(struct w1_master *master);
--void w1_search(struct w1_master *dev, u8 search_type, w1_slave_found_callback cb);
--void w1_search_devices(struct w1_master *dev, u8 search_type, w1_slave_found_callback cb);
-+void w1_search(struct w1_master *dev, u8 search_type,
-+ w1_slave_found_callback cb);
-+void w1_search_devices(struct w1_master *dev, u8 search_type,
-+ w1_slave_found_callback cb);
- struct w1_slave *w1_search_slave(struct w1_reg_num *id);
- void w1_slave_found(struct w1_master *dev, u64 rn);
- void w1_search_process_cb(struct w1_master *dev, u8 search_type,
-- w1_slave_found_callback cb);
-+ w1_slave_found_callback cb);
- struct w1_master *w1_search_master_id(u32 id);
-
- /* Disconnect and reconnect devices in the given family. Used for finding
-@@ -220,17 +219,17 @@
- int w1_reset_resume_command(struct w1_master *);
- void w1_next_pullup(struct w1_master *, int);
-
--static inline struct w1_slave* dev_to_w1_slave(struct device *dev)
-+static inline struct w1_slave *dev_to_w1_slave(struct device *dev)
- {
- return container_of(dev, struct w1_slave, dev);
- }
-
--static inline struct w1_slave* kobj_to_w1_slave(struct kobject *kobj)
-+static inline struct w1_slave *kobj_to_w1_slave(struct kobject *kobj)
- {
- return dev_to_w1_slave(container_of(kobj, struct device, kobj));
- }
-
--static inline struct w1_master* dev_to_w1_master(struct device *dev)
-+static inline struct w1_master *dev_to_w1_master(struct device *dev)
- {
- return container_of(dev, struct w1_master, dev);
- }
-diff -Nur linux-3.8.10.orig/drivers/w1/w1_int.c linux-3.8.10/drivers/w1/w1_int.c
---- linux-3.8.10.orig/drivers/w1/w1_int.c 2013-04-26 21:18:32.000000000 +0200
-+++ linux-3.8.10/drivers/w1/w1_int.c 2013-05-06 12:55:18.000000000 +0200
-@@ -32,15 +32,15 @@
- #include "w1_netlink.h"
- #include "w1_int.h"
-
--static int w1_search_count = -1; /* Default is continual scan */
-+static int w1_search_count = -1; /* Default is continual scan */
- module_param_named(search_count, w1_search_count, int, 0);
-
- static int w1_enable_pullup = 1;
- module_param_named(enable_pullup, w1_enable_pullup, int, 0);
-
--static struct w1_master * w1_alloc_dev(u32 id, int slave_count, int slave_ttl,
-- struct device_driver *driver,
-- struct device *device)
-+static struct w1_master *w1_alloc_dev(u32 id, int slave_count, int slave_ttl,
-+ struct device_driver *driver,
-+ struct device *device)
- {
- struct w1_master *dev;
- int err;
-@@ -48,26 +48,27 @@
- /*
- * We are in process context(kernel thread), so can sleep.
- */
-- dev = kzalloc(sizeof(struct w1_master) + sizeof(struct w1_bus_master), GFP_KERNEL);
-+ dev =
-+ kzalloc(sizeof(struct w1_master) + sizeof(struct w1_bus_master),
-+ GFP_KERNEL);
- if (!dev) {
- printk(KERN_ERR
-- "Failed to allocate %zd bytes for new w1 device.\n",
-- sizeof(struct w1_master));
-+ "Failed to allocate %zd bytes for new w1 device.\n",
-+ sizeof(struct w1_master));
- return NULL;
- }
-
--
- dev->bus_master = (struct w1_bus_master *)(dev + 1);
-
-- dev->owner = THIS_MODULE;
-- dev->max_slave_count = slave_count;
-- dev->slave_count = 0;
-- dev->attempts = 0;
-- dev->initialized = 0;
-- dev->id = id;
-- dev->slave_ttl = slave_ttl;
-- dev->search_count = w1_search_count;
-- dev->enable_pullup = w1_enable_pullup;
-+ dev->owner = THIS_MODULE;
-+ dev->max_slave_count = slave_count;
-+ dev->slave_count = 0;
-+ dev->attempts = 0;
-+ dev->initialized = 0;
-+ dev->id = id;
-+ dev->slave_ttl = slave_ttl;
-+ dev->search_count = w1_search_count;
-+ dev->enable_pullup = w1_enable_pullup;
-
- /* 1 for w1_process to decrement
- * 1 for __w1_remove_master_device to decrement
-@@ -89,7 +90,8 @@
-
- err = device_register(&dev->dev);
- if (err) {
-- printk(KERN_ERR "Failed to register master device. err=%d\n", err);
-+ printk(KERN_ERR "Failed to register master device. err=%d\n",
-+ err);
- memset(dev, 0, sizeof(struct w1_master));
- kfree(dev);
- dev = NULL;
-@@ -110,23 +112,25 @@
- struct w1_netlink_msg msg;
- int id, found;
-
-- /* validate minimum functionality */
-- if (!(master->touch_bit && master->reset_bus) &&
-- !(master->write_bit && master->read_bit) &&
-+ /* validate minimum functionality */
-+ if (!(master->touch_bit && master->reset_bus) &&
-+ !(master->write_bit && master->read_bit) &&
- !(master->write_byte && master->read_byte && master->reset_bus)) {
+diff -Nur linux-3.9.9/drivers/w1/w1_int.c linux-rpi/drivers/w1/w1_int.c
+--- linux-3.9.9/drivers/w1/w1_int.c 2013-07-03 19:56:36.000000000 +0200
++++ linux-rpi/drivers/w1/w1_int.c 2013-07-08 13:33:18.000000000 +0200
+@@ -117,19 +117,21 @@
printk(KERN_ERR "w1_add_master_device: invalid function set\n");
-- return(-EINVAL);
-- }
+ return(-EINVAL);
+ }
- /* While it would be electrically possible to make a device that
- * generated a strong pullup in bit bang mode, only hardware that
- * controls 1-wire time frames are even expected to support a strong
@@ -272278,138 +272926,28 @@ diff -Nur linux-3.8.10.orig/drivers/w1/w1_int.c linux-3.8.10/drivers/w1/w1_int.c
- * the last write_bit operation of a w1_write_8 which it currently
- * doesn't.
- */
-+ return (-EINVAL);
-+ }
+
+ /* bitbanging hardware uses bitbang_pullup, other hardware uses set_pullup
+ * and takes care of timing itself */
if (!master->write_byte && !master->touch_bit && master->set_pullup) {
printk(KERN_ERR "w1_add_master_device: set_pullup requires "
-- "write_byte or touch_bit, disabling\n");
-+ "write_byte or touch_bit, disabling\n");
-+ master->set_pullup = NULL;
-+ }
-+
-+ if (master->set_pullup && master->bitbang_pullup) {
-+ printk(KERN_ERR "w1_add_master_device: set_pullup should not "
-+ "be set when bitbang_pullup is used, disabling\n");
+ "write_byte or touch_bit, disabling\n");
master->set_pullup = NULL;
}
-@@ -146,13 +150,13 @@
- } while (found);
-
- dev = w1_alloc_dev(id, w1_max_slave_count, w1_max_slave_ttl,
-- &w1_master_driver, &w1_master_device);
-+ &w1_master_driver, &w1_master_device);
- if (!dev) {
- mutex_unlock(&w1_mlock);
- return -ENOMEM;
- }
-
-- retval = w1_create_master_attributes(dev);
-+ retval = w1_create_master_attributes(dev);
- if (retval) {
- mutex_unlock(&w1_mlock);
- goto err_out_free_dev;
-@@ -166,8 +170,7 @@
- if (IS_ERR(dev->thread)) {
- retval = PTR_ERR(dev->thread);
- dev_err(&dev->dev,
-- "Failed to create new kernel thread. err=%d\n",
-- retval);
-+ "Failed to create new kernel thread. err=%d\n", retval);
- mutex_unlock(&w1_mlock);
- goto err_out_rm_attr;
- }
-@@ -182,7 +185,7 @@
-
- return 0;
-
--#if 0 /* Thread cleanup code, not required currently. */
-+#if 0 /* Thread cleanup code, not required currently. */
- err_out_kill_thread:
- kthread_stop(dev->thread);
- #endif
-@@ -207,14 +210,15 @@
-
- mutex_lock(&dev->mutex);
- list_for_each_entry_safe(sl, sln, &dev->slist, w1_slave_entry)
-- w1_slave_detach(sl);
-+ w1_slave_detach(sl);
- w1_destroy_master_attributes(dev);
- mutex_unlock(&dev->mutex);
- atomic_dec(&dev->refcnt);
-
- while (atomic_read(&dev->refcnt)) {
-- dev_info(&dev->dev, "Waiting for %s to become free: refcnt=%d.\n",
-- dev->name, atomic_read(&dev->refcnt));
-+ dev_info(&dev->dev,
-+ "Waiting for %s to become free: refcnt=%d.\n",
-+ dev->name, atomic_read(&dev->refcnt));
-
- if (msleep_interruptible(1000))
- flush_signals(current);
-diff -Nur linux-3.8.10.orig/drivers/w1/w1_io.c linux-3.8.10/drivers/w1/w1_io.c
---- linux-3.8.10.orig/drivers/w1/w1_io.c 2013-04-26 21:18:32.000000000 +0200
-+++ linux-3.8.10/drivers/w1/w1_io.c 2013-05-06 12:55:18.000000000 +0200
-@@ -43,14 +43,15 @@
- 219, 133, 103, 57, 186, 228, 6, 88, 25, 71, 165, 251, 120, 38, 196, 154,
- 101, 59, 217, 135, 4, 90, 184, 230, 167, 249, 27, 69, 198, 152, 122, 36,
- 248, 166, 68, 26, 153, 199, 37, 123, 58, 100, 134, 216, 91, 5, 231, 185,
-- 140, 210, 48, 110, 237, 179, 81, 15, 78, 16, 242, 172, 47, 113, 147, 205,
-- 17, 79, 173, 243, 112, 46, 204, 146, 211, 141, 111, 49, 178, 236, 14, 80,
-- 175, 241, 19, 77, 206, 144, 114, 44, 109, 51, 209, 143, 12, 82, 176, 238,
-- 50, 108, 142, 208, 83, 13, 239, 177, 240, 174, 76, 18, 145, 207, 45, 115,
-- 202, 148, 118, 40, 171, 245, 23, 73, 8, 86, 180, 234, 105, 55, 213, 139,
-- 87, 9, 235, 181, 54, 104, 138, 212, 149, 203, 41, 119, 244, 170, 72, 22,
-- 233, 183, 85, 11, 136, 214, 52, 106, 43, 117, 151, 201, 74, 20, 246, 168,
-- 116, 42, 200, 150, 21, 75, 169, 247, 182, 232, 10, 84, 215, 137, 107, 53
-+ 140, 210, 48, 110, 237, 179, 81, 15, 78, 16, 242, 172, 47, 113, 147,
-+ 205, 17, 79, 173, 243, 112, 46, 204, 146, 211, 141, 111, 49, 178,
-+ 236, 14, 80, 175, 241, 19, 77, 206, 144, 114, 44, 109, 51, 209, 143,
-+ 12, 82, 176, 238, 50, 108, 142, 208, 83, 13, 239, 177, 240, 174, 76,
-+ 18, 145, 207, 45, 115, 202, 148, 118, 40, 171, 245, 23, 73, 8, 86,
-+ 180, 234, 105, 55, 213, 139, 87, 9, 235, 181, 54, 104, 138, 212,
-+ 149, 203, 41, 119, 244, 170, 72, 22, 233, 183, 85, 11, 136, 214, 52,
-+ 106, 43, 117, 151, 201, 74, 20, 246, 168, 116, 42, 200, 150, 21, 75,
-+ 169, 247, 182, 232, 10, 84, 215, 137, 107, 53
- };
-
- static void w1_delay(unsigned long tm)
-@@ -84,7 +85,8 @@
- {
- unsigned long flags = 0;
-
-- if(w1_disable_irqs) local_irq_save(flags);
-+ if (w1_disable_irqs)
-+ local_irq_save(flags);
-
- if (bit) {
- dev->bus_master->write_bit(dev->bus_master->data, 0);
-@@ -98,7 +100,8 @@
- w1_delay(10);
- }
-
-- if(w1_disable_irqs) local_irq_restore(flags);
-+ if (w1_disable_irqs)
-+ local_irq_restore(flags);
- }
-
- /**
-@@ -111,9 +114,9 @@
- static void w1_pre_write(struct w1_master *dev)
- {
- if (dev->pullup_duration &&
-- dev->enable_pullup && dev->bus_master->set_pullup) {
-+ dev->enable_pullup && dev->bus_master->set_pullup) {
- dev->bus_master->set_pullup(dev->bus_master->data,
-- dev->pullup_duration);
-+ dev->pullup_duration);
- }
- }
-
-@@ -127,10 +130,22 @@
++ if (master->set_pullup && master->bitbang_pullup) {
++ printk(KERN_ERR "w1_add_master_device: set_pullup should not "
++ "be set when bitbang_pullup is used, disabling\n");
++ master->set_pullup = NULL;
++ }
++
+ /* Lock until the device is added (or not) to w1_masters. */
+ mutex_lock(&w1_mlock);
+ /* Search for the first available id (starting at 1). */
+diff -Nur linux-3.9.9/drivers/w1/w1_io.c linux-rpi/drivers/w1/w1_io.c
+--- linux-3.9.9/drivers/w1/w1_io.c 2013-07-03 19:56:36.000000000 +0200
++++ linux-rpi/drivers/w1/w1_io.c 2013-07-08 13:33:18.000000000 +0200
+@@ -127,10 +127,22 @@
static void w1_post_write(struct w1_master *dev)
{
if (dev->pullup_duration) {
@@ -272424,230 +272962,20 @@ diff -Nur linux-3.8.10.orig/drivers/w1/w1_io.c linux-3.8.10/drivers/w1/w1_io.c
+ } else if (dev->bus_master->bitbang_pullup) {
+ dev->bus_master->
+ bitbang_pullup(dev->bus_master->data, 1);
-+ msleep(dev->pullup_duration);
+ msleep(dev->pullup_duration);
+ dev->bus_master->
+ bitbang_pullup(dev->bus_master->data, 0);
+ }
+ } else {
- msleep(dev->pullup_duration);
++ msleep(dev->pullup_duration);
+ }
+
dev->pullup_duration = 0;
}
}
-@@ -148,8 +163,7 @@
- if (dev->bus_master->write_byte) {
- w1_pre_write(dev);
- dev->bus_master->write_byte(dev->bus_master->data, byte);
-- }
-- else
-+ } else
- for (i = 0; i < 8; ++i) {
- if (i == 7)
- w1_pre_write(dev);
-@@ -157,8 +171,8 @@
- }
- w1_post_write(dev);
- }
--EXPORT_SYMBOL_GPL(w1_write_8);
-
-+EXPORT_SYMBOL_GPL(w1_write_8);
-
- /**
- * Generates a write-1 cycle and samples the level.
-@@ -196,17 +210,17 @@
- * @param bdir the bit to write if both id_bit and comp_bit are 0
- * @return bit fields - see above
- */
--u8 w1_triplet(struct w1_master *dev, int bdir)
-+u8 w1_triplet(struct w1_master * dev, int bdir)
- {
- if (dev->bus_master->triplet)
- return dev->bus_master->triplet(dev->bus_master->data, bdir);
- else {
-- u8 id_bit = w1_touch_bit(dev, 1);
-+ u8 id_bit = w1_touch_bit(dev, 1);
- u8 comp_bit = w1_touch_bit(dev, 1);
- u8 retval;
-
- if (id_bit && comp_bit)
-- return 0x03; /* error */
-+ return 0x03; /* error */
-
- if (!id_bit && !comp_bit) {
- /* Both bits are valid, take the direction given */
-@@ -231,7 +245,7 @@
- * @param dev the master device
- * @return the byte read
- */
--u8 w1_read_8(struct w1_master *dev)
-+u8 w1_read_8(struct w1_master * dev)
- {
- int i;
- u8 res = 0;
-@@ -240,10 +254,11 @@
- res = dev->bus_master->read_byte(dev->bus_master->data);
- else
- for (i = 0; i < 8; ++i)
-- res |= (w1_touch_bit(dev,1) << i);
-+ res |= (w1_touch_bit(dev, 1) << i);
-
- return res;
- }
-+
- EXPORT_SYMBOL_GPL(w1_read_8);
-
- /**
-@@ -253,19 +268,19 @@
- * @param buf pointer to the data to write
- * @param len the number of bytes to write
- */
--void w1_write_block(struct w1_master *dev, const u8 *buf, int len)
-+void w1_write_block(struct w1_master *dev, const u8 * buf, int len)
- {
- int i;
-
- if (dev->bus_master->write_block) {
- w1_pre_write(dev);
- dev->bus_master->write_block(dev->bus_master->data, buf, len);
-- }
-- else
-+ } else
- for (i = 0; i < len; ++i)
-- w1_write_8(dev, buf[i]); /* calls w1_pre_write */
-+ w1_write_8(dev, buf[i]); /* calls w1_pre_write */
- w1_post_write(dev);
- }
-+
- EXPORT_SYMBOL_GPL(w1_write_block);
-
- /**
-@@ -275,7 +290,7 @@
- * @param buf pointer to the data to write
- * @param len the number of bytes to write
- */
--void w1_touch_block(struct w1_master *dev, u8 *buf, int len)
-+void w1_touch_block(struct w1_master *dev, u8 * buf, int len)
- {
- int i, j;
- u8 tmp;
-@@ -291,6 +306,7 @@
- buf[i] = tmp;
- }
- }
-+
- EXPORT_SYMBOL_GPL(w1_touch_block);
-
- /**
-@@ -301,13 +317,15 @@
- * @param len the number of bytes to read
- * @return the number of bytes read
- */
--u8 w1_read_block(struct w1_master *dev, u8 *buf, int len)
-+u8 w1_read_block(struct w1_master *dev, u8 * buf, int len)
- {
- int i;
- u8 ret;
-
- if (dev->bus_master->read_block)
-- ret = dev->bus_master->read_block(dev->bus_master->data, buf, len);
-+ ret =
-+ dev->bus_master->read_block(dev->bus_master->data, buf,
-+ len);
- else {
- for (i = 0; i < len; ++i)
- buf[i] = w1_read_8(dev);
-@@ -316,6 +334,7 @@
-
- return ret;
- }
-+
- EXPORT_SYMBOL_GPL(w1_read_block);
-
- /**
-@@ -329,10 +348,12 @@
- int result;
- unsigned long flags = 0;
-
-- if(w1_disable_irqs) local_irq_save(flags);
-+ if (w1_disable_irqs)
-+ local_irq_save(flags);
-
- if (dev->bus_master->reset_bus)
-- result = dev->bus_master->reset_bus(dev->bus_master->data) & 0x1;
-+ result =
-+ dev->bus_master->reset_bus(dev->bus_master->data) & 0x1;
- else {
- dev->bus_master->write_bit(dev->bus_master->data, 0);
- /* minimum 480, max ? us
-@@ -355,10 +376,12 @@
- msleep(1);
- }
-
-- if(w1_disable_irqs) local_irq_restore(flags);
-+ if (w1_disable_irqs)
-+ local_irq_restore(flags);
-
- return result;
- }
-+
- EXPORT_SYMBOL_GPL(w1_reset_bus);
-
- u8 w1_calc_crc8(u8 * data, int len)
-@@ -370,14 +393,16 @@
-
- return crc;
- }
-+
- EXPORT_SYMBOL_GPL(w1_calc_crc8);
-
--void w1_search_devices(struct w1_master *dev, u8 search_type, w1_slave_found_callback cb)
-+void w1_search_devices(struct w1_master *dev, u8 search_type,
-+ w1_slave_found_callback cb)
- {
- dev->attempts++;
- if (dev->bus_master->search)
- dev->bus_master->search(dev->bus_master->data, dev,
-- search_type, cb);
-+ search_type, cb);
- else
- w1_search(dev, search_type, cb);
- }
-@@ -398,14 +423,15 @@
- if (sl->master->slave_count == 1)
- w1_write_8(sl->master, W1_SKIP_ROM);
- else {
-- u8 match[9] = {W1_MATCH_ROM, };
-- u64 rn = le64_to_cpu(*((u64*)&sl->reg_num));
-+ u8 match[9] = { W1_MATCH_ROM, };
-+ u64 rn = le64_to_cpu(*((u64 *) & sl->reg_num));
-
- memcpy(&match[1], &rn, 8);
- w1_write_block(sl->master, match, 9);
- }
- return 0;
- }
-+
- EXPORT_SYMBOL_GPL(w1_reset_select_slave);
-
- /**
-@@ -432,6 +458,7 @@
- w1_write_8(dev, W1_RESUME_CMD);
- return 0;
- }
-+
- EXPORT_SYMBOL_GPL(w1_reset_resume_command);
-
- /**
-@@ -449,4 +476,5 @@
- {
- dev->pullup_duration = delay;
- }
-+
- EXPORT_SYMBOL_GPL(w1_next_pullup);
-diff -Nur linux-3.8.10.orig/drivers/watchdog/bcm2708_wdog.c linux-3.8.10/drivers/watchdog/bcm2708_wdog.c
---- linux-3.8.10.orig/drivers/watchdog/bcm2708_wdog.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/drivers/watchdog/bcm2708_wdog.c 2013-05-06 12:55:18.000000000 +0200
+diff -Nur linux-3.9.9/drivers/watchdog/bcm2708_wdog.c linux-rpi/drivers/watchdog/bcm2708_wdog.c
+--- linux-3.9.9/drivers/watchdog/bcm2708_wdog.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/drivers/watchdog/bcm2708_wdog.c 2013-07-08 13:33:18.000000000 +0200
@@ -0,0 +1,385 @@
+/*
+ * Broadcom BCM2708 watchdog driver.
@@ -273034,12 +273362,12 @@ diff -Nur linux-3.8.10.orig/drivers/watchdog/bcm2708_wdog.c linux-3.8.10/drivers
+MODULE_ALIAS_MISCDEV(TEMP_MINOR);
+MODULE_LICENSE("GPL");
+
-diff -Nur linux-3.8.10.orig/drivers/watchdog/Kconfig linux-3.8.10/drivers/watchdog/Kconfig
---- linux-3.8.10.orig/drivers/watchdog/Kconfig 2013-04-26 21:18:32.000000000 +0200
-+++ linux-3.8.10/drivers/watchdog/Kconfig 2013-05-06 12:55:18.000000000 +0200
-@@ -365,6 +365,12 @@
+diff -Nur linux-3.9.9/drivers/watchdog/Kconfig linux-rpi/drivers/watchdog/Kconfig
+--- linux-3.9.9/drivers/watchdog/Kconfig 2013-07-03 19:56:36.000000000 +0200
++++ linux-rpi/drivers/watchdog/Kconfig 2013-07-08 13:33:18.000000000 +0200
+@@ -391,6 +391,12 @@
To compile this driver as a module, choose M here: the
- module will be called imx2_wdt.
+ module will be called retu_wdt.
+config BCM2708_WDT
+ tristate "BCM2708 Watchdog"
@@ -273050,44 +273378,44 @@ diff -Nur linux-3.8.10.orig/drivers/watchdog/Kconfig linux-3.8.10/drivers/watchd
# AVR32 Architecture
config AT32AP700X_WDT
-diff -Nur linux-3.8.10.orig/drivers/watchdog/Makefile linux-3.8.10/drivers/watchdog/Makefile
---- linux-3.8.10.orig/drivers/watchdog/Makefile 2013-04-26 21:18:32.000000000 +0200
-+++ linux-3.8.10/drivers/watchdog/Makefile 2013-05-06 12:55:18.000000000 +0200
-@@ -52,6 +52,7 @@
- obj-$(CONFIG_NUC900_WATCHDOG) += nuc900_wdt.o
- obj-$(CONFIG_TS72XX_WATCHDOG) += ts72xx_wdt.o
+diff -Nur linux-3.9.9/drivers/watchdog/Makefile linux-rpi/drivers/watchdog/Makefile
+--- linux-3.9.9/drivers/watchdog/Makefile 2013-07-03 19:56:36.000000000 +0200
++++ linux-rpi/drivers/watchdog/Makefile 2013-07-08 13:33:18.000000000 +0200
+@@ -54,6 +54,7 @@
obj-$(CONFIG_IMX2_WDT) += imx2_wdt.o
+ obj-$(CONFIG_UX500_WATCHDOG) += ux500_wdt.o
+ obj-$(CONFIG_RETU_WATCHDOG) += retu_wdt.o
+obj-$(CONFIG_BCM2708_WDT) += bcm2708_wdog.o
# AVR32 Architecture
obj-$(CONFIG_AT32AP700X_WDT) += at32ap700x_wdt.o
-diff -Nur linux-3.8.10.orig/.git/config linux-3.8.10/.git/config
---- linux-3.8.10.orig/.git/config 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/.git/config 2013-05-06 12:55:19.000000000 +0200
+diff -Nur linux-3.9.9/.git/config linux-rpi/.git/config
+--- linux-3.9.9/.git/config 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/.git/config 2013-07-08 13:27:22.000000000 +0200
@@ -0,0 +1,5 @@
+[core]
+ repositoryformatversion = 0
+ filemode = true
+ bare = false
+ logallrefupdates = true
-diff -Nur linux-3.8.10.orig/.git/description linux-3.8.10/.git/description
---- linux-3.8.10.orig/.git/description 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/.git/description 2013-05-06 12:55:19.000000000 +0200
+diff -Nur linux-3.9.9/.git/description linux-rpi/.git/description
+--- linux-3.9.9/.git/description 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/.git/description 2013-04-23 14:09:20.000000000 +0200
@@ -0,0 +1 @@
+Unnamed repository; edit this file 'description' to name the repository.
-diff -Nur linux-3.8.10.orig/.git/FETCH_HEAD linux-3.8.10/.git/FETCH_HEAD
---- linux-3.8.10.orig/.git/FETCH_HEAD 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/.git/FETCH_HEAD 2013-05-06 12:55:19.000000000 +0200
+diff -Nur linux-3.9.9/.git/FETCH_HEAD linux-rpi/.git/FETCH_HEAD
+--- linux-3.9.9/.git/FETCH_HEAD 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/.git/FETCH_HEAD 2013-07-08 13:32:55.000000000 +0200
@@ -0,0 +1 @@
-+6f7bf37f218560bedfc13eff6b1a91eb8c937e4b branch 'rpi-3.8.y' of git://github.com/raspberrypi/linux
-diff -Nur linux-3.8.10.orig/.git/HEAD linux-3.8.10/.git/HEAD
---- linux-3.8.10.orig/.git/HEAD 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/.git/HEAD 2013-05-06 12:55:19.000000000 +0200
++5aa1ec1a1c09d05adb83f5b6aaa98edf55fb6668 branch 'rpi-3.9.y' of git://github.com/raspberrypi/linux
+diff -Nur linux-3.9.9/.git/HEAD linux-rpi/.git/HEAD
+--- linux-3.9.9/.git/HEAD 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/.git/HEAD 2013-07-08 13:33:20.000000000 +0200
@@ -0,0 +1 @@
-+ref: refs/heads/rpi-3.8.y
-diff -Nur linux-3.8.10.orig/.git/hooks/applypatch-msg.sample linux-3.8.10/.git/hooks/applypatch-msg.sample
---- linux-3.8.10.orig/.git/hooks/applypatch-msg.sample 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/.git/hooks/applypatch-msg.sample 2013-05-06 12:55:19.000000000 +0200
++ref: refs/heads/rpi-3.9.y
+diff -Nur linux-3.9.9/.git/hooks/applypatch-msg.sample linux-rpi/.git/hooks/applypatch-msg.sample
+--- linux-3.9.9/.git/hooks/applypatch-msg.sample 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/.git/hooks/applypatch-msg.sample 2013-04-23 14:09:20.000000000 +0200
@@ -0,0 +1,15 @@
+#!/bin/sh
+#
@@ -273104,9 +273432,9 @@ diff -Nur linux-3.8.10.orig/.git/hooks/applypatch-msg.sample linux-3.8.10/.git/h
+test -x "$GIT_DIR/hooks/commit-msg" &&
+ exec "$GIT_DIR/hooks/commit-msg" ${1+"$@"}
+:
-diff -Nur linux-3.8.10.orig/.git/hooks/commit-msg.sample linux-3.8.10/.git/hooks/commit-msg.sample
---- linux-3.8.10.orig/.git/hooks/commit-msg.sample 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/.git/hooks/commit-msg.sample 2013-05-06 12:55:19.000000000 +0200
+diff -Nur linux-3.9.9/.git/hooks/commit-msg.sample linux-rpi/.git/hooks/commit-msg.sample
+--- linux-3.9.9/.git/hooks/commit-msg.sample 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/.git/hooks/commit-msg.sample 2013-04-23 14:09:20.000000000 +0200
@@ -0,0 +1,24 @@
+#!/bin/sh
+#
@@ -273132,9 +273460,9 @@ diff -Nur linux-3.8.10.orig/.git/hooks/commit-msg.sample linux-3.8.10/.git/hooks
+ echo >&2 Duplicate Signed-off-by lines.
+ exit 1
+}
-diff -Nur linux-3.8.10.orig/.git/hooks/post-commit.sample linux-3.8.10/.git/hooks/post-commit.sample
---- linux-3.8.10.orig/.git/hooks/post-commit.sample 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/.git/hooks/post-commit.sample 2013-05-06 12:55:19.000000000 +0200
+diff -Nur linux-3.9.9/.git/hooks/post-commit.sample linux-rpi/.git/hooks/post-commit.sample
+--- linux-3.9.9/.git/hooks/post-commit.sample 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/.git/hooks/post-commit.sample 2013-04-23 14:09:20.000000000 +0200
@@ -0,0 +1,8 @@
+#!/bin/sh
+#
@@ -273144,9 +273472,9 @@ diff -Nur linux-3.8.10.orig/.git/hooks/post-commit.sample linux-3.8.10/.git/hook
+# To enable this hook, rename this file to "post-commit".
+
+: Nothing
-diff -Nur linux-3.8.10.orig/.git/hooks/post-receive.sample linux-3.8.10/.git/hooks/post-receive.sample
---- linux-3.8.10.orig/.git/hooks/post-receive.sample 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/.git/hooks/post-receive.sample 2013-05-06 12:55:19.000000000 +0200
+diff -Nur linux-3.9.9/.git/hooks/post-receive.sample linux-rpi/.git/hooks/post-receive.sample
+--- linux-3.9.9/.git/hooks/post-receive.sample 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/.git/hooks/post-receive.sample 2013-04-23 14:09:20.000000000 +0200
@@ -0,0 +1,15 @@
+#!/bin/sh
+#
@@ -273163,9 +273491,9 @@ diff -Nur linux-3.8.10.orig/.git/hooks/post-receive.sample linux-3.8.10/.git/hoo
+# rename the file to "post-receive".
+
+#. /usr/share/doc/git-core/contrib/hooks/post-receive-email
-diff -Nur linux-3.8.10.orig/.git/hooks/post-update.sample linux-3.8.10/.git/hooks/post-update.sample
---- linux-3.8.10.orig/.git/hooks/post-update.sample 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/.git/hooks/post-update.sample 2013-05-06 12:55:19.000000000 +0200
+diff -Nur linux-3.9.9/.git/hooks/post-update.sample linux-rpi/.git/hooks/post-update.sample
+--- linux-3.9.9/.git/hooks/post-update.sample 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/.git/hooks/post-update.sample 2013-04-23 14:09:20.000000000 +0200
@@ -0,0 +1,8 @@
+#!/bin/sh
+#
@@ -273175,9 +273503,9 @@ diff -Nur linux-3.8.10.orig/.git/hooks/post-update.sample linux-3.8.10/.git/hook
+# To enable this hook, rename this file to "post-update".
+
+exec git update-server-info
-diff -Nur linux-3.8.10.orig/.git/hooks/pre-applypatch.sample linux-3.8.10/.git/hooks/pre-applypatch.sample
---- linux-3.8.10.orig/.git/hooks/pre-applypatch.sample 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/.git/hooks/pre-applypatch.sample 2013-05-06 12:55:19.000000000 +0200
+diff -Nur linux-3.9.9/.git/hooks/pre-applypatch.sample linux-rpi/.git/hooks/pre-applypatch.sample
+--- linux-3.9.9/.git/hooks/pre-applypatch.sample 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/.git/hooks/pre-applypatch.sample 2013-04-23 14:09:20.000000000 +0200
@@ -0,0 +1,14 @@
+#!/bin/sh
+#
@@ -273193,9 +273521,9 @@ diff -Nur linux-3.8.10.orig/.git/hooks/pre-applypatch.sample linux-3.8.10/.git/h
+test -x "$GIT_DIR/hooks/pre-commit" &&
+ exec "$GIT_DIR/hooks/pre-commit" ${1+"$@"}
+:
-diff -Nur linux-3.8.10.orig/.git/hooks/pre-commit.sample linux-3.8.10/.git/hooks/pre-commit.sample
---- linux-3.8.10.orig/.git/hooks/pre-commit.sample 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/.git/hooks/pre-commit.sample 2013-05-06 12:55:19.000000000 +0200
+diff -Nur linux-3.9.9/.git/hooks/pre-commit.sample linux-rpi/.git/hooks/pre-commit.sample
+--- linux-3.9.9/.git/hooks/pre-commit.sample 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/.git/hooks/pre-commit.sample 2013-04-23 14:09:20.000000000 +0200
@@ -0,0 +1,46 @@
+#!/bin/sh
+#
@@ -273243,9 +273571,9 @@ diff -Nur linux-3.8.10.orig/.git/hooks/pre-commit.sample linux-3.8.10/.git/hooks
+fi
+
+exec git diff-index --check --cached $against --
-diff -Nur linux-3.8.10.orig/.git/hooks/prepare-commit-msg.sample linux-3.8.10/.git/hooks/prepare-commit-msg.sample
---- linux-3.8.10.orig/.git/hooks/prepare-commit-msg.sample 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/.git/hooks/prepare-commit-msg.sample 2013-05-06 12:55:19.000000000 +0200
+diff -Nur linux-3.9.9/.git/hooks/prepare-commit-msg.sample linux-rpi/.git/hooks/prepare-commit-msg.sample
+--- linux-3.9.9/.git/hooks/prepare-commit-msg.sample 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/.git/hooks/prepare-commit-msg.sample 2013-04-23 14:09:20.000000000 +0200
@@ -0,0 +1,36 @@
+#!/bin/sh
+#
@@ -273283,9 +273611,9 @@ diff -Nur linux-3.8.10.orig/.git/hooks/prepare-commit-msg.sample linux-3.8.10/.g
+
+# SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')
+# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1"
-diff -Nur linux-3.8.10.orig/.git/hooks/pre-rebase.sample linux-3.8.10/.git/hooks/pre-rebase.sample
---- linux-3.8.10.orig/.git/hooks/pre-rebase.sample 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/.git/hooks/pre-rebase.sample 2013-05-06 12:55:19.000000000 +0200
+diff -Nur linux-3.9.9/.git/hooks/pre-rebase.sample linux-rpi/.git/hooks/pre-rebase.sample
+--- linux-3.9.9/.git/hooks/pre-rebase.sample 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/.git/hooks/pre-rebase.sample 2013-04-23 14:09:20.000000000 +0200
@@ -0,0 +1,169 @@
+#!/bin/sh
+#
@@ -273456,9 +273784,9 @@ diff -Nur linux-3.8.10.orig/.git/hooks/pre-rebase.sample linux-3.8.10/.git/hooks
+ git rev-list master..topic
+
+ if this is empty, it is fully merged to "master".
-diff -Nur linux-3.8.10.orig/.git/hooks/update.sample linux-3.8.10/.git/hooks/update.sample
---- linux-3.8.10.orig/.git/hooks/update.sample 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/.git/hooks/update.sample 2013-05-06 12:55:19.000000000 +0200
+diff -Nur linux-3.9.9/.git/hooks/update.sample linux-rpi/.git/hooks/update.sample
+--- linux-3.9.9/.git/hooks/update.sample 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/.git/hooks/update.sample 2013-04-23 14:09:20.000000000 +0200
@@ -0,0 +1,128 @@
+#!/bin/sh
+#
@@ -273588,9 +273916,10 @@ diff -Nur linux-3.8.10.orig/.git/hooks/update.sample linux-3.8.10/.git/hooks/upd
+
+# --- Finished
+exit 0
-diff -Nur linux-3.8.10.orig/.git/info/exclude linux-3.8.10/.git/info/exclude
---- linux-3.8.10.orig/.git/info/exclude 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/.git/info/exclude 2013-05-06 12:55:19.000000000 +0200
+Binärdateien linux-3.9.9/.git/index and linux-rpi/.git/index sind verschieden.
+diff -Nur linux-3.9.9/.git/info/exclude linux-rpi/.git/info/exclude
+--- linux-3.9.9/.git/info/exclude 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/.git/info/exclude 2013-04-23 14:09:20.000000000 +0200
@@ -0,0 +1,6 @@
+# git ls-files --others --exclude-from=.git/info/exclude
+# Lines that start with '#' are comments.
@@ -273598,34 +273927,36 @@ diff -Nur linux-3.8.10.orig/.git/info/exclude linux-3.8.10/.git/info/exclude
+# exclude patterns (uncomment them if you want to use them):
+# *.[oa]
+# *~
-diff -Nur linux-3.8.10.orig/.git/logs/HEAD linux-3.8.10/.git/logs/HEAD
---- linux-3.8.10.orig/.git/logs/HEAD 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/.git/logs/HEAD 2013-05-06 12:55:19.000000000 +0200
+diff -Nur linux-3.9.9/.git/logs/HEAD linux-rpi/.git/logs/HEAD
+--- linux-3.9.9/.git/logs/HEAD 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/.git/logs/HEAD 2013-07-08 13:33:20.000000000 +0200
@@ -0,0 +1 @@
-+0000000000000000000000000000000000000000 6f7bf37f218560bedfc13eff6b1a91eb8c937e4b vmadmin <vmadmin@vproxy2.bildung-rp.de> 1366727246 +0200 checkout: moving from master to rpi-3.8.y
-diff -Nur linux-3.8.10.orig/.git/logs/refs/heads/rpi-3.8.y linux-3.8.10/.git/logs/refs/heads/rpi-3.8.y
---- linux-3.8.10.orig/.git/logs/refs/heads/rpi-3.8.y 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/.git/logs/refs/heads/rpi-3.8.y 2013-05-06 12:55:19.000000000 +0200
++0000000000000000000000000000000000000000 5aa1ec1a1c09d05adb83f5b6aaa98edf55fb6668 vmadmin <vmadmin@vproxy2.bildung-rp.de> 1373283200 +0200 checkout: moving from master to rpi-3.9.y
+diff -Nur linux-3.9.9/.git/logs/refs/heads/rpi-3.9.y linux-rpi/.git/logs/refs/heads/rpi-3.9.y
+--- linux-3.9.9/.git/logs/refs/heads/rpi-3.9.y 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/.git/logs/refs/heads/rpi-3.9.y 2013-07-08 13:33:20.000000000 +0200
@@ -0,0 +1 @@
-+0000000000000000000000000000000000000000 6f7bf37f218560bedfc13eff6b1a91eb8c937e4b vmadmin <vmadmin@vproxy2.bildung-rp.de> 1366727246 +0200 branch: Created from refs/remotes/origin/rpi-3.8.y
-diff -Nur linux-3.8.10.orig/.git/logs/refs/remotes/origin/rpi-3.8.y linux-3.8.10/.git/logs/refs/remotes/origin/rpi-3.8.y
---- linux-3.8.10.orig/.git/logs/refs/remotes/origin/rpi-3.8.y 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/.git/logs/refs/remotes/origin/rpi-3.8.y 2013-05-06 12:55:19.000000000 +0200
++0000000000000000000000000000000000000000 5aa1ec1a1c09d05adb83f5b6aaa98edf55fb6668 vmadmin <vmadmin@vproxy2.bildung-rp.de> 1373283200 +0200 branch: Created from refs/remotes/origin/rpi-3.9.y
+diff -Nur linux-3.9.9/.git/logs/refs/remotes/origin/rpi-3.9.y linux-rpi/.git/logs/refs/remotes/origin/rpi-3.9.y
+--- linux-3.9.9/.git/logs/refs/remotes/origin/rpi-3.9.y 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/.git/logs/refs/remotes/origin/rpi-3.9.y 2013-07-08 13:32:54.000000000 +0200
@@ -0,0 +1 @@
-+0000000000000000000000000000000000000000 6f7bf37f218560bedfc13eff6b1a91eb8c937e4b vmadmin <vmadmin@vproxy2.bildung-rp.de> 1366727092 +0200 fetch git://github.com/raspberrypi/linux.git rpi-3.8.y:refs/remotes/origin/rpi-3.8.y: storing head
-diff -Nur linux-3.8.10.orig/.git/refs/heads/rpi-3.8.y linux-3.8.10/.git/refs/heads/rpi-3.8.y
---- linux-3.8.10.orig/.git/refs/heads/rpi-3.8.y 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/.git/refs/heads/rpi-3.8.y 2013-05-06 12:55:19.000000000 +0200
++0000000000000000000000000000000000000000 5aa1ec1a1c09d05adb83f5b6aaa98edf55fb6668 vmadmin <vmadmin@vproxy2.bildung-rp.de> 1373283174 +0200 fetch git://github.com/raspberrypi/linux.git rpi-3.9.y:refs/remotes/origin/rpi-3.9.y: storing head
+Binärdateien linux-3.9.9/.git/objects/pack/pack-f730020f930aa44c6ad24fbb2cd9e91fbcdc244a.idx and linux-rpi/.git/objects/pack/pack-f730020f930aa44c6ad24fbb2cd9e91fbcdc244a.idx sind verschieden.
+Binärdateien linux-3.9.9/.git/objects/pack/pack-f730020f930aa44c6ad24fbb2cd9e91fbcdc244a.pack and linux-rpi/.git/objects/pack/pack-f730020f930aa44c6ad24fbb2cd9e91fbcdc244a.pack sind verschieden.
+diff -Nur linux-3.9.9/.git/refs/heads/rpi-3.9.y linux-rpi/.git/refs/heads/rpi-3.9.y
+--- linux-3.9.9/.git/refs/heads/rpi-3.9.y 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/.git/refs/heads/rpi-3.9.y 2013-07-08 13:33:20.000000000 +0200
@@ -0,0 +1 @@
-+6f7bf37f218560bedfc13eff6b1a91eb8c937e4b
-diff -Nur linux-3.8.10.orig/.git/refs/remotes/origin/rpi-3.8.y linux-3.8.10/.git/refs/remotes/origin/rpi-3.8.y
---- linux-3.8.10.orig/.git/refs/remotes/origin/rpi-3.8.y 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/.git/refs/remotes/origin/rpi-3.8.y 2013-05-06 12:55:19.000000000 +0200
++5aa1ec1a1c09d05adb83f5b6aaa98edf55fb6668
+diff -Nur linux-3.9.9/.git/refs/remotes/origin/rpi-3.9.y linux-rpi/.git/refs/remotes/origin/rpi-3.9.y
+--- linux-3.9.9/.git/refs/remotes/origin/rpi-3.9.y 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/.git/refs/remotes/origin/rpi-3.9.y 2013-07-08 13:32:54.000000000 +0200
@@ -0,0 +1 @@
-+6f7bf37f218560bedfc13eff6b1a91eb8c937e4b
-diff -Nur linux-3.8.10.orig/include/linux/broadcom/vc_cma.h linux-3.8.10/include/linux/broadcom/vc_cma.h
---- linux-3.8.10.orig/include/linux/broadcom/vc_cma.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/include/linux/broadcom/vc_cma.h 2013-05-06 12:55:19.000000000 +0200
++5aa1ec1a1c09d05adb83f5b6aaa98edf55fb6668
+diff -Nur linux-3.9.9/include/linux/broadcom/vc_cma.h linux-rpi/include/linux/broadcom/vc_cma.h
+--- linux-3.9.9/include/linux/broadcom/vc_cma.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/include/linux/broadcom/vc_cma.h 2013-07-08 13:33:18.000000000 +0200
@@ -0,0 +1,30 @@
+/*****************************************************************************
+* Copyright 2012 Broadcom Corporation. All rights reserved.
@@ -273657,29 +273988,29 @@ diff -Nur linux-3.8.10.orig/include/linux/broadcom/vc_cma.h linux-3.8.10/include
+
+#endif /* VC_CMA_H */
+
-diff -Nur linux-3.8.10.orig/include/linux/mmc/host.h linux-3.8.10/include/linux/mmc/host.h
---- linux-3.8.10.orig/include/linux/mmc/host.h 2013-04-26 21:18:32.000000000 +0200
-+++ linux-3.8.10/include/linux/mmc/host.h 2013-05-06 12:55:20.000000000 +0200
-@@ -258,6 +258,7 @@
- #define MMC_CAP2_HC_ERASE_SZ (1 << 9) /* High-capacity erase size */
- #define MMC_CAP2_CD_ACTIVE_HIGH (1 << 10) /* Card-detect signal active high */
- #define MMC_CAP2_RO_ACTIVE_HIGH (1 << 11) /* Write-protect signal active high */
+diff -Nur linux-3.9.9/include/linux/mmc/host.h linux-rpi/include/linux/mmc/host.h
+--- linux-3.9.9/include/linux/mmc/host.h 2013-07-03 19:56:36.000000000 +0200
++++ linux-rpi/include/linux/mmc/host.h 2013-07-08 13:33:19.000000000 +0200
+@@ -280,6 +280,7 @@
+ #define MMC_CAP2_PACKED_WR (1 << 13) /* Allow packed write */
+ #define MMC_CAP2_PACKED_CMD (MMC_CAP2_PACKED_RD | \
+ MMC_CAP2_PACKED_WR)
+#define MMC_CAP2_FORCE_MULTIBLOCK (1 << 12) /* Always use multiblock transfers */
mmc_pm_flag_t pm_caps; /* supported pm features */
-diff -Nur linux-3.8.10.orig/include/linux/mmc/sdhci.h linux-3.8.10/include/linux/mmc/sdhci.h
---- linux-3.8.10.orig/include/linux/mmc/sdhci.h 2013-04-26 21:18:32.000000000 +0200
-+++ linux-3.8.10/include/linux/mmc/sdhci.h 2013-05-06 12:55:20.000000000 +0200
-@@ -96,6 +96,7 @@
- #define SDHCI_QUIRK2_NO_1_8_V (1<<2)
+diff -Nur linux-3.9.9/include/linux/mmc/sdhci.h linux-rpi/include/linux/mmc/sdhci.h
+--- linux-3.9.9/include/linux/mmc/sdhci.h 2013-07-03 19:56:36.000000000 +0200
++++ linux-rpi/include/linux/mmc/sdhci.h 2013-07-08 13:33:19.000000000 +0200
+@@ -97,6 +97,7 @@
+ #define SDHCI_QUIRK2_PRESET_VALUE_BROKEN (1<<3)
int irq; /* Device IRQ */
+ int second_irq; /* Additional IRQ to disable/enable in low-latency mode */
void __iomem *ioaddr; /* Mapped address */
const struct sdhci_ops *ops; /* Low level hw interface */
-@@ -127,6 +128,7 @@
+@@ -128,6 +129,7 @@
#define SDHCI_SDIO_IRQ_ENABLED (1<<9) /* SDIO irq enabled */
#define SDHCI_HS200_NEEDS_TUNING (1<<10) /* HS200 needs tuning */
#define SDHCI_USING_RETUNING_TIMER (1<<11) /* Host is using a retuning timer for the card */
@@ -273687,7 +274018,7 @@ diff -Nur linux-3.8.10.orig/include/linux/mmc/sdhci.h linux-3.8.10/include/linux
unsigned int version; /* SDHCI spec. version */
-@@ -141,6 +143,7 @@
+@@ -142,6 +144,7 @@
struct mmc_request *mrq; /* Current request */
struct mmc_command *cmd; /* Current command */
@@ -273695,9 +274026,60 @@ diff -Nur linux-3.8.10.orig/include/linux/mmc/sdhci.h linux-3.8.10/include/linux
struct mmc_data *data; /* Current data request */
unsigned int data_early:1; /* Data finished before cmd */
-diff -Nur linux-3.8.10.orig/sound/arm/bcm2835.c linux-3.8.10/sound/arm/bcm2835.c
---- linux-3.8.10.orig/sound/arm/bcm2835.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/sound/arm/bcm2835.c 2013-05-06 12:55:22.000000000 +0200
+diff -Nur linux-3.9.9/include/uapi/linux/fb.h linux-rpi/include/uapi/linux/fb.h
+--- linux-3.9.9/include/uapi/linux/fb.h 2013-07-03 19:56:36.000000000 +0200
++++ linux-rpi/include/uapi/linux/fb.h 2013-07-08 13:33:19.000000000 +0200
+@@ -34,6 +34,11 @@
+ #define FBIOPUT_MODEINFO 0x4617
+ #define FBIOGET_DISPINFO 0x4618
+ #define FBIO_WAITFORVSYNC _IOW('F', 0x20, __u32)
++/*
++ * HACK: use 'z' in order not to clash with any other ioctl numbers which might
++ * be concurrently added to the mainline kernel
++ */
++#define FBIOCOPYAREA _IOW('z', 0x21, struct fb_copyarea)
+
+ #define FB_TYPE_PACKED_PIXELS 0 /* Packed Pixels */
+ #define FB_TYPE_PLANES 1 /* Non interleaved planes */
+diff -Nur linux-3.9.9/.lesshst linux-rpi/.lesshst
+--- linux-3.9.9/.lesshst 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/.lesshst 2013-04-15 10:44:16.000000000 +0200
+@@ -0,0 +1,6 @@
++.less-history-file:
++.search
++"N32
++"Compiler
++"format-patch
++.shell
+diff -Nur linux-3.9.9/.profile linux-rpi/.profile
+--- linux-3.9.9/.profile 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/.profile 2013-02-14 18:10:26.000000000 +0100
+@@ -0,0 +1,22 @@
++# ~/.profile: executed by the command interpreter for login shells.
++# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
++# exists.
++# see /usr/share/doc/bash/examples/startup-files for examples.
++# the files are located in the bash-doc package.
++
++# the default umask is set in /etc/profile; for setting the umask
++# for ssh logins, install and configure the libpam-umask package.
++#umask 022
++
++# if running bash
++if [ -n "$BASH_VERSION" ]; then
++ # include .bashrc if it exists
++ if [ -f "$HOME/.bashrc" ]; then
++ . "$HOME/.bashrc"
++ fi
++fi
++
++# set PATH so it includes user's private bin if it exists
++if [ -d "$HOME/bin" ] ; then
++ PATH="$HOME/bin:$PATH"
++fi
+diff -Nur linux-3.9.9/sound/arm/bcm2835.c linux-rpi/sound/arm/bcm2835.c
+--- linux-3.9.9/sound/arm/bcm2835.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/sound/arm/bcm2835.c 2013-07-08 13:33:19.000000000 +0200
@@ -0,0 +1,413 @@
+/*****************************************************************************
+* Copyright 2011 Broadcom Corporation. All rights reserved.
@@ -273811,20 +274193,20 @@ diff -Nur linux-3.8.10.orig/sound/arm/bcm2835.c linux-3.8.10/sound/arm/bcm2835.c
+
+ err = snd_bcm2835_create(g_card, pdev, &chip);
+ if (err < 0) {
-+ printk(KERN_ERR "Failed to create bcm2835 chip\n");
++ dev_err(&pdev->dev, "Failed to create bcm2835 chip\n");
+ goto out_bcm2835_create;
+ }
+
+ g_chip = chip;
+ err = snd_bcm2835_new_pcm(chip);
+ if (err < 0) {
-+ printk(KERN_ERR "Failed to create new BCM2835 pcm device\n");
++ dev_err(&pdev->dev, "Failed to create new BCM2835 pcm device\n");
+ goto out_bcm2835_new_pcm;
+ }
+
+ err = snd_bcm2835_new_ctl(chip);
+ if (err < 0) {
-+ printk(KERN_ERR "Failed to create new BCM2835 ctl\n");
++ dev_err(&pdev->dev, "Failed to create new BCM2835 ctl\n");
+ goto out_bcm2835_new_ctl;
+ }
+
@@ -273840,14 +274222,14 @@ diff -Nur linux-3.8.10.orig/sound/arm/bcm2835.c linux-3.8.10/sound/arm/bcm2835.c
+ if (dev == 0) {
+ err = snd_card_register(card);
+ if (err < 0) {
-+ printk(KERN_ERR
-+ "Failed to register bcm2835 ALSA card \n");
++ dev_err(&pdev->dev,
++ "Failed to register bcm2835 ALSA card \n");
+ goto out_card_register;
+ }
+ platform_set_drvdata(pdev, card);
-+ printk(KERN_INFO "bcm2835 ALSA card created!\n");
++ audio_info("bcm2835 ALSA card created!\n");
+ } else {
-+ printk(KERN_INFO "bcm2835 ALSA chip created!\n");
++ audio_info("bcm2835 ALSA chip created!\n");
+ platform_set_drvdata(pdev, (void *)dev);
+ }
+
@@ -273861,11 +274243,11 @@ diff -Nur linux-3.8.10.orig/sound/arm/bcm2835.c linux-3.8.10/sound/arm/bcm2835.c
+out_bcm2835_create:
+ BUG_ON(!g_card);
+ if (snd_card_free(g_card))
-+ printk(KERN_ERR "Failed to free Registered alsa card\n");
++ dev_err(&pdev->dev, "Failed to free Registered alsa card\n");
+ g_card = NULL;
+out:
+ dev = SNDRV_CARDS; /* stop more avail_substreams from being probed */
-+ printk(KERN_ERR "BCM2835 ALSA Probe failed !!\n");
++ dev_err(&pdev->dev, "BCM2835 ALSA Probe failed !!\n");
+ return err;
+}
+
@@ -274027,49 +274409,49 @@ diff -Nur linux-3.8.10.orig/sound/arm/bcm2835.c linux-3.8.10/sound/arm/bcm2835.c
+ int err;
+ err = platform_driver_register(&bcm2835_alsa0_driver);
+ if (err) {
-+ printk("Error registering bcm2835_alsa0_driver %d .\n", err);
++ pr_err("Error registering bcm2835_alsa0_driver %d .\n", err);
+ goto out;
+ }
+
+ err = platform_driver_register(&bcm2835_alsa1_driver);
+ if (err) {
-+ printk("Error registering bcm2835_alsa1_driver %d .\n", err);
++ pr_err("Error registering bcm2835_alsa0_driver %d .\n", err);
+ goto unregister_0;
+ }
+
+ err = platform_driver_register(&bcm2835_alsa2_driver);
+ if (err) {
-+ printk("Error registering bcm2835_alsa2_driver %d .\n", err);
++ pr_err("Error registering bcm2835_alsa0_driver %d .\n", err);
+ goto unregister_1;
+ }
+
+ err = platform_driver_register(&bcm2835_alsa3_driver);
+ if (err) {
-+ printk("Error registering bcm2835_alsa3_driver %d .\n", err);
++ pr_err("Error registering bcm2835_alsa0_driver %d .\n", err);
+ goto unregister_2;
+ }
+
+ err = platform_driver_register(&bcm2835_alsa4_driver);
+ if (err) {
-+ printk("Error registering bcm2835_alsa4_driver %d .\n", err);
++ pr_err("Error registering bcm2835_alsa0_driver %d .\n", err);
+ goto unregister_3;
+ }
+
+ err = platform_driver_register(&bcm2835_alsa5_driver);
+ if (err) {
-+ printk("Error registering bcm2835_alsa5_driver %d .\n", err);
++ pr_err("Error registering bcm2835_alsa0_driver %d .\n", err);
+ goto unregister_4;
+ }
+
+ err = platform_driver_register(&bcm2835_alsa6_driver);
+ if (err) {
-+ printk("Error registering bcm2835_alsa6_driver %d .\n", err);
++ pr_err("Error registering bcm2835_alsa0_driver %d .\n", err);
+ goto unregister_5;
+ }
+
+ err = platform_driver_register(&bcm2835_alsa7_driver);
+ if (err) {
-+ printk("Error registering bcm2835_alsa7_driver %d .\n", err);
++ pr_err("Error registering bcm2835_alsa0_driver %d .\n", err);
+ goto unregister_6;
+ }
+
@@ -274112,9 +274494,9 @@ diff -Nur linux-3.8.10.orig/sound/arm/bcm2835.c linux-3.8.10/sound/arm/bcm2835.c
+MODULE_DESCRIPTION("Alsa driver for BCM2835 chip");
+MODULE_LICENSE("GPL");
+MODULE_ALIAS("platform:bcm2835_alsa");
-diff -Nur linux-3.8.10.orig/sound/arm/bcm2835-ctl.c linux-3.8.10/sound/arm/bcm2835-ctl.c
---- linux-3.8.10.orig/sound/arm/bcm2835-ctl.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/sound/arm/bcm2835-ctl.c 2013-05-06 12:55:22.000000000 +0200
+diff -Nur linux-3.9.9/sound/arm/bcm2835-ctl.c linux-rpi/sound/arm/bcm2835-ctl.c
+--- linux-3.9.9/sound/arm/bcm2835-ctl.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/sound/arm/bcm2835-ctl.c 2013-07-08 13:33:19.000000000 +0200
@@ -0,0 +1,200 @@
+/*****************************************************************************
+* Copyright 2011 Broadcom Corporation. All rights reserved.
@@ -274316,10 +274698,10 @@ diff -Nur linux-3.8.10.orig/sound/arm/bcm2835-ctl.c linux-3.8.10/sound/arm/bcm28
+ }
+ return 0;
+}
-diff -Nur linux-3.8.10.orig/sound/arm/bcm2835.h linux-3.8.10/sound/arm/bcm2835.h
---- linux-3.8.10.orig/sound/arm/bcm2835.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/sound/arm/bcm2835.h 2013-05-06 12:55:22.000000000 +0200
-@@ -0,0 +1,155 @@
+diff -Nur linux-3.9.9/sound/arm/bcm2835.h linux-rpi/sound/arm/bcm2835.h
+--- linux-3.9.9/sound/arm/bcm2835.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/sound/arm/bcm2835.h 2013-07-08 13:33:19.000000000 +0200
+@@ -0,0 +1,157 @@
+/*****************************************************************************
+* Copyright 2011 Broadcom Corporation. All rights reserved.
+*
@@ -274345,6 +274727,7 @@ diff -Nur linux-3.8.10.orig/sound/arm/bcm2835.h linux-3.8.10/sound/arm/bcm2835.h
+#include <sound/initval.h>
+#include <sound/pcm.h>
+#include <sound/pcm_params.h>
++#include <sound/pcm-indirect.h>
+#include <linux/workqueue.h>
+
+/*
@@ -274432,6 +274815,7 @@ diff -Nur linux-3.8.10.orig/sound/arm/bcm2835.h linux-3.8.10/sound/arm/bcm2835.h
+typedef struct bcm2835_alsa_stream {
+ bcm2835_chip_t *chip;
+ struct snd_pcm_substream *substream;
++ struct snd_pcm_indirect pcm_indirect;
+
+ struct semaphore buffers_update_sem;
+ struct semaphore control_sem;
@@ -274475,10 +274859,10 @@ diff -Nur linux-3.8.10.orig/sound/arm/bcm2835.h linux-3.8.10/sound/arm/bcm2835.h
+void bcm2835_audio_flush_playback_buffers(bcm2835_alsa_stream_t * alsa_stream);
+
+#endif /* __SOUND_ARM_BCM2835_H */
-diff -Nur linux-3.8.10.orig/sound/arm/bcm2835-pcm.c linux-3.8.10/sound/arm/bcm2835-pcm.c
---- linux-3.8.10.orig/sound/arm/bcm2835-pcm.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/sound/arm/bcm2835-pcm.c 2013-05-06 12:55:22.000000000 +0200
-@@ -0,0 +1,409 @@
+diff -Nur linux-3.9.9/sound/arm/bcm2835-pcm.c linux-rpi/sound/arm/bcm2835-pcm.c
+--- linux-3.9.9/sound/arm/bcm2835-pcm.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/sound/arm/bcm2835-pcm.c 2013-07-08 13:33:19.000000000 +0200
+@@ -0,0 +1,426 @@
+/*****************************************************************************
+* Copyright 2011 Broadcom Corporation. All rights reserved.
+*
@@ -274500,7 +274884,8 @@ diff -Nur linux-3.8.10.orig/sound/arm/bcm2835-pcm.c linux-3.8.10/sound/arm/bcm28
+
+/* hardware definition */
+static struct snd_pcm_hardware snd_bcm2835_playback_hw = {
-+ .info = (SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER),
++ .info = (SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_BLOCK_TRANSFER |
++ SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_MMAP_VALID),
+ .formats = SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S16_LE,
+ .rates = SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000_48000,
+ .rate_min = 8000,
@@ -274732,6 +275117,12 @@ diff -Nur linux-3.8.10.orig/sound/arm/bcm2835-pcm.c linux-3.8.10/sound/arm/bcm28
+
+ audio_info(" .. IN\n");
+
++ memset(&alsa_stream->pcm_indirect, 0, sizeof(alsa_stream->pcm_indirect));
++
++ alsa_stream->pcm_indirect.hw_buffer_size =
++ alsa_stream->pcm_indirect.sw_buffer_size =
++ snd_pcm_lib_buffer_bytes(substream);
++
+ alsa_stream->buffer_size = snd_pcm_lib_buffer_bytes(substream);
+ alsa_stream->period_size = snd_pcm_lib_period_bytes(substream);
+ alsa_stream->pos = 0;
@@ -274744,6 +275135,32 @@ diff -Nur linux-3.8.10.orig/sound/arm/bcm2835-pcm.c linux-3.8.10/sound/arm/bcm28
+ return 0;
+}
+
++static void snd_bcm2835_pcm_transfer(struct snd_pcm_substream *substream,
++ struct snd_pcm_indirect *rec, size_t bytes)
++{
++ struct snd_pcm_runtime *runtime = substream->runtime;
++ bcm2835_alsa_stream_t *alsa_stream = runtime->private_data;
++ void *src = (void *)(substream->runtime->dma_area + rec->sw_data);
++ int err;
++
++ err = bcm2835_audio_write(alsa_stream, bytes, src);
++ if (err)
++ audio_error(" Failed to transfer to alsa device (%d)\n", err);
++
++}
++
++static int snd_bcm2835_pcm_ack(struct snd_pcm_substream *substream)
++{
++ struct snd_pcm_runtime *runtime = substream->runtime;
++ bcm2835_alsa_stream_t *alsa_stream = runtime->private_data;
++ struct snd_pcm_indirect *pcm_indirect = &alsa_stream->pcm_indirect;
++
++ pcm_indirect->hw_queue_size = runtime->hw.buffer_bytes_max;
++ snd_pcm_indirect_playback_transfer(substream, pcm_indirect,
++ snd_bcm2835_pcm_transfer);
++ return 0;
++}
++
+/* trigger callback */
+static int snd_bcm2835_pcm_trigger(struct snd_pcm_substream *substream, int cmd)
+{
@@ -274760,6 +275177,11 @@ diff -Nur linux-3.8.10.orig/sound/arm/bcm2835-pcm.c linux-3.8.10/sound/arm/bcm28
+ if (!alsa_stream->running) {
+ err = bcm2835_audio_start(alsa_stream);
+ if (err == 0) {
++ alsa_stream->pcm_indirect.hw_io =
++ alsa_stream->pcm_indirect.hw_data =
++ bytes_to_frames(runtime,
++ alsa_stream->pos);
++ substream->ops->ack(substream);
+ alsa_stream->running = 1;
+ alsa_stream->draining = 1;
+ } else {
@@ -274808,30 +275230,9 @@ diff -Nur linux-3.8.10.orig/sound/arm/bcm2835-pcm.c linux-3.8.10/sound/arm/bcm28
+ alsa_stream->pos);
+
+ audio_info(" .. OUT\n");
-+ return bytes_to_frames(runtime, alsa_stream->pos);
-+}
-+
-+static int snd_bcm2835_pcm_copy(struct snd_pcm_substream *substream,
-+ int channel, snd_pcm_uframes_t pos, void *src,
-+ snd_pcm_uframes_t count)
-+{
-+ int ret;
-+ struct snd_pcm_runtime *runtime = substream->runtime;
-+ bcm2835_alsa_stream_t *alsa_stream = runtime->private_data;
-+
-+ audio_info(" .. IN\n");
-+ audio_debug("copy.......... (%d) hwptr=%d appl=%d pos=%d\n",
-+ frames_to_bytes(runtime, count), frames_to_bytes(runtime,
-+ runtime->
-+ status->
-+ hw_ptr),
-+ frames_to_bytes(runtime, runtime->control->appl_ptr),
-+ alsa_stream->pos);
-+ ret =
-+ bcm2835_audio_write(alsa_stream, frames_to_bytes(runtime, count),
-+ src);
-+ audio_info(" .. OUT\n");
-+ return ret;
++ return snd_pcm_indirect_playback_pointer(substream,
++ &alsa_stream->pcm_indirect,
++ alsa_stream->pos);
+}
+
+static int snd_bcm2835_pcm_lib_ioctl(struct snd_pcm_substream *substream,
@@ -274853,7 +275254,7 @@ diff -Nur linux-3.8.10.orig/sound/arm/bcm2835-pcm.c linux-3.8.10/sound/arm/bcm28
+ .prepare = snd_bcm2835_pcm_prepare,
+ .trigger = snd_bcm2835_pcm_trigger,
+ .pointer = snd_bcm2835_pcm_pointer,
-+ .copy = snd_bcm2835_pcm_copy,
++ .ack = snd_bcm2835_pcm_ack,
+};
+
+/* create a pcm device */
@@ -274888,10 +275289,10 @@ diff -Nur linux-3.8.10.orig/sound/arm/bcm2835-pcm.c linux-3.8.10/sound/arm/bcm28
+
+ return 0;
+}
-diff -Nur linux-3.8.10.orig/sound/arm/bcm2835-vchiq.c linux-3.8.10/sound/arm/bcm2835-vchiq.c
---- linux-3.8.10.orig/sound/arm/bcm2835-vchiq.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/sound/arm/bcm2835-vchiq.c 2013-05-06 12:55:22.000000000 +0200
-@@ -0,0 +1,844 @@
+diff -Nur linux-3.9.9/sound/arm/bcm2835-vchiq.c linux-rpi/sound/arm/bcm2835-vchiq.c
+--- linux-3.9.9/sound/arm/bcm2835-vchiq.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/sound/arm/bcm2835-vchiq.c 2013-07-08 13:33:19.000000000 +0200
+@@ -0,0 +1,879 @@
+/*****************************************************************************
+* Copyright 2011 Broadcom Corporation. All rights reserved.
+*
@@ -274921,6 +275322,7 @@ diff -Nur linux-3.8.10.orig/sound/arm/bcm2835-vchiq.c linux-3.8.10/sound/arm/bcm
+#include <linux/delay.h>
+#include <linux/atomic.h>
+#include <linux/module.h>
++#include <linux/completion.h>
+
+#include "bcm2835.h"
+
@@ -274931,6 +275333,10 @@ diff -Nur linux-3.8.10.orig/sound/arm/bcm2835-vchiq.c linux-3.8.10/sound/arm/bcm
+
+/* ---- Private Constants and Types ------------------------------------------ */
+
++#define BCM2835_AUDIO_STOP 0
++#define BCM2835_AUDIO_START 1
++#define BCM2835_AUDIO_WRITE 2
++
+/* Logging macros (for remapping to other logging mechanisms, i.e., printf) */
+#ifdef AUDIO_DEBUG_ENABLE
+ #define LOG_ERR( fmt, arg... ) pr_err( "%s:%d " fmt, __func__, __LINE__, ##arg)
@@ -274947,7 +275353,7 @@ diff -Nur linux-3.8.10.orig/sound/arm/bcm2835-vchiq.c linux-3.8.10/sound/arm/bcm
+typedef struct opaque_AUDIO_INSTANCE_T {
+ uint32_t num_connections;
+ VCHI_SERVICE_HANDLE_T vchi_handle[VCHI_MAX_NUM_CONNECTIONS];
-+ struct semaphore msg_avail_event;
++ struct completion msg_avail_comp;
+ struct mutex vchi_mutex;
+ bcm2835_alsa_stream_t *alsa_stream;
+ int32_t result;
@@ -274964,27 +275370,35 @@ diff -Nur linux-3.8.10.orig/sound/arm/bcm2835-vchiq.c linux-3.8.10/sound/arm/bcm
+
+static int bcm2835_audio_stop_worker(bcm2835_alsa_stream_t * alsa_stream);
+static int bcm2835_audio_start_worker(bcm2835_alsa_stream_t * alsa_stream);
++static int bcm2835_audio_write_worker(bcm2835_alsa_stream_t *alsa_stream,
++ uint32_t count, void *src);
+
+typedef struct {
+ struct work_struct my_work;
+ bcm2835_alsa_stream_t *alsa_stream;
-+ int x;
++ int cmd;
++ void *src;
++ uint32_t count;
+} my_work_t;
+
+static void my_wq_function(struct work_struct *work)
+{
+ my_work_t *w = (my_work_t *) work;
+ int ret = -9;
-+ LOG_DBG(" .. IN %p:%d\n", w->alsa_stream, w->x);
-+ switch (w->x) {
-+ case 1:
++ LOG_DBG(" .. IN %p:%d\n", w->alsa_stream, w->cmd);
++ switch (w->cmd) {
++ case BCM2835_AUDIO_START:
+ ret = bcm2835_audio_start_worker(w->alsa_stream);
+ break;
-+ case 2:
++ case BCM2835_AUDIO_STOP:
+ ret = bcm2835_audio_stop_worker(w->alsa_stream);
+ break;
++ case BCM2835_AUDIO_WRITE:
++ ret = bcm2835_audio_write_worker(w->alsa_stream, w->count,
++ w->src);
++ break;
+ default:
-+ LOG_ERR(" Unexpected work: %p:%d\n", w->alsa_stream, w->x);
++ LOG_ERR(" Unexpected work: %p:%d\n", w->alsa_stream, w->cmd);
+ break;
+ }
+ kfree((void *)work);
@@ -275001,7 +275415,7 @@ diff -Nur linux-3.8.10.orig/sound/arm/bcm2835-vchiq.c linux-3.8.10/sound/arm/bcm
+ if (work) {
+ INIT_WORK((struct work_struct *)work, my_wq_function);
+ work->alsa_stream = alsa_stream;
-+ work->x = 1;
++ work->cmd = BCM2835_AUDIO_START;
+ if (queue_work
+ (alsa_stream->my_wq, (struct work_struct *)work))
+ ret = 0;
@@ -275022,7 +275436,31 @@ diff -Nur linux-3.8.10.orig/sound/arm/bcm2835-vchiq.c linux-3.8.10/sound/arm/bcm
+ if (work) {
+ INIT_WORK((struct work_struct *)work, my_wq_function);
+ work->alsa_stream = alsa_stream;
-+ work->x = 2;
++ work->cmd = BCM2835_AUDIO_STOP;
++ if (queue_work
++ (alsa_stream->my_wq, (struct work_struct *)work))
++ ret = 0;
++ } else
++ LOG_ERR(" .. Error: NULL work kmalloc\n");
++ }
++ LOG_DBG(" .. OUT %d\n", ret);
++ return ret;
++}
++
++int bcm2835_audio_write(bcm2835_alsa_stream_t *alsa_stream,
++ uint32_t count, void *src)
++{
++ int ret = -1;
++ LOG_DBG(" .. IN\n");
++ if (alsa_stream->my_wq) {
++ my_work_t *work = kmalloc(sizeof(my_work_t), GFP_ATOMIC);
++ /*--- Queue some work (item 1) ---*/
++ if (work) {
++ INIT_WORK((struct work_struct *)work, my_wq_function);
++ work->alsa_stream = alsa_stream;
++ work->cmd = BCM2835_AUDIO_WRITE;
++ work->src = src;
++ work->count = count;
+ if (queue_work
+ (alsa_stream->my_wq, (struct work_struct *)work))
+ ret = 0;
@@ -275072,7 +275510,7 @@ diff -Nur linux-3.8.10.orig/sound/arm/bcm2835-vchiq.c linux-3.8.10/sound/arm/bcm
+ (" .. instance=%p, m.type=VC_AUDIO_MSG_TYPE_RESULT, success=%d\n",
+ instance, m.u.result.success);
+ instance->result = m.u.result.success;
-+ up(&instance->msg_avail_event);
++ complete(&instance->msg_avail_comp);
+ } else if (m.type == VC_AUDIO_MSG_TYPE_COMPLETE) {
+ irq_handler_t callback = (irq_handler_t) m.u.complete.callback;
+ LOG_DBG
@@ -275329,8 +275767,8 @@ diff -Nur linux-3.8.10.orig/sound/arm/bcm2835-vchiq.c linux-3.8.10/sound/arm/bcm
+ m.u.control.dest = chip->dest;
+ m.u.control.volume = chip->volume;
+
-+ /* Create the message available event */
-+ sema_init(&instance->msg_avail_event, 0);
++ /* Create the message available completion */
++ init_completion(&instance->msg_avail_comp);
+
+ /* Send the message to the videocore */
+ success = vchi_msg_queue(instance->vchi_handle[0],
@@ -275346,11 +275784,10 @@ diff -Nur linux-3.8.10.orig/sound/arm/bcm2835-vchiq.c linux-3.8.10/sound/arm/bcm
+ }
+
+ /* We are expecting a reply from the videocore */
-+ if (down_interruptible(&instance->msg_avail_event)) {
++ ret = wait_for_completion_interruptible(&instance->msg_avail_comp);
++ if (ret) {
+ LOG_ERR("%s: failed on waiting for event (status=%d)\n",
+ __func__, success);
-+
-+ ret = -1;
+ goto unlock;
+ }
+
@@ -275433,8 +275870,8 @@ diff -Nur linux-3.8.10.orig/sound/arm/bcm2835-vchiq.c linux-3.8.10/sound/arm/bcm
+ m.u.config.samplerate = samplerate;
+ m.u.config.bps = bps;
+
-+ /* Create the message available event */
-+ sema_init(&instance->msg_avail_event, 0);
++ /* Create the message available completion */
++ init_completion(&instance->msg_avail_comp);
+
+ /* Send the message to the videocore */
+ success = vchi_msg_queue(instance->vchi_handle[0],
@@ -275450,11 +275887,10 @@ diff -Nur linux-3.8.10.orig/sound/arm/bcm2835-vchiq.c linux-3.8.10/sound/arm/bcm
+ }
+
+ /* We are expecting a reply from the videocore */
-+ if (down_interruptible(&instance->msg_avail_event)) {
++ ret = wait_for_completion_interruptible(&instance->msg_avail_comp);
++ if (ret) {
+ LOG_ERR("%s: failed on waiting for event (status=%d)\n",
+ __func__, success);
-+
-+ ret = -1;
+ goto unlock;
+ }
+
@@ -275582,8 +276018,8 @@ diff -Nur linux-3.8.10.orig/sound/arm/bcm2835-vchiq.c linux-3.8.10/sound/arm/bcm
+
+ m.type = VC_AUDIO_MSG_TYPE_CLOSE;
+
-+ /* Create the message available event */
-+ sema_init(&instance->msg_avail_event, 0);
++ /* Create the message available completion */
++ init_completion(&instance->msg_avail_comp);
+
+ /* Send the message to the videocore */
+ success = vchi_msg_queue(instance->vchi_handle[0],
@@ -275596,11 +276032,11 @@ diff -Nur linux-3.8.10.orig/sound/arm/bcm2835-vchiq.c linux-3.8.10/sound/arm/bcm
+ ret = -1;
+ goto unlock;
+ }
-+ if (down_interruptible(&instance->msg_avail_event)) {
++
++ ret = wait_for_completion_interruptible(&instance->msg_avail_comp);
++ if (ret) {
+ LOG_ERR("%s: failed on waiting for event (status=%d)",
+ __func__, success);
-+
-+ ret = -1;
+ goto unlock;
+ }
+ if (instance->result != 0) {
@@ -275626,8 +276062,8 @@ diff -Nur linux-3.8.10.orig/sound/arm/bcm2835-vchiq.c linux-3.8.10/sound/arm/bcm
+ return ret;
+}
+
-+int bcm2835_audio_write(bcm2835_alsa_stream_t * alsa_stream, uint32_t count,
-+ void *src)
++int bcm2835_audio_write_worker(bcm2835_alsa_stream_t *alsa_stream,
++ uint32_t count, void *src)
+{
+ VC_AUDIO_MSG_T m;
+ AUDIO_INSTANCE_T *instance = alsa_stream->instance;
@@ -275736,9 +276172,9 @@ diff -Nur linux-3.8.10.orig/sound/arm/bcm2835-vchiq.c linux-3.8.10/sound/arm/bcm
+
+module_param(force_bulk, bool, 0444);
+MODULE_PARM_DESC(force_bulk, "Force use of vchiq bulk for audio");
-diff -Nur linux-3.8.10.orig/sound/arm/Kconfig linux-3.8.10/sound/arm/Kconfig
---- linux-3.8.10.orig/sound/arm/Kconfig 2013-04-26 21:18:32.000000000 +0200
-+++ linux-3.8.10/sound/arm/Kconfig 2013-05-06 12:55:22.000000000 +0200
+diff -Nur linux-3.9.9/sound/arm/Kconfig linux-rpi/sound/arm/Kconfig
+--- linux-3.9.9/sound/arm/Kconfig 2013-07-03 19:56:36.000000000 +0200
++++ linux-rpi/sound/arm/Kconfig 2013-07-08 13:33:19.000000000 +0200
@@ -39,5 +39,12 @@
Say Y or M if you want to support any AC97 codec attached to
the PXA2xx AC97 interface.
@@ -275752,9 +276188,9 @@ diff -Nur linux-3.8.10.orig/sound/arm/Kconfig linux-3.8.10/sound/arm/Kconfig
+
endif # SND_ARM
-diff -Nur linux-3.8.10.orig/sound/arm/Makefile linux-3.8.10/sound/arm/Makefile
---- linux-3.8.10.orig/sound/arm/Makefile 2013-04-26 21:18:32.000000000 +0200
-+++ linux-3.8.10/sound/arm/Makefile 2013-05-06 12:55:22.000000000 +0200
+diff -Nur linux-3.9.9/sound/arm/Makefile linux-rpi/sound/arm/Makefile
+--- linux-3.9.9/sound/arm/Makefile 2013-07-03 19:56:36.000000000 +0200
++++ linux-rpi/sound/arm/Makefile 2013-07-08 13:33:19.000000000 +0200
@@ -14,3 +14,9 @@
obj-$(CONFIG_SND_PXA2XX_AC97) += snd-pxa2xx-ac97.o
@@ -275765,9 +276201,9 @@ diff -Nur linux-3.8.10.orig/sound/arm/Makefile linux-3.8.10/sound/arm/Makefile
+
+EXTRA_CFLAGS += -Idrivers/misc/vc04_services -Idrivers/misc/vc04_services/interface/vcos/linuxkernel -D__VCCOREVER__=0x04000000
+
-diff -Nur linux-3.8.10.orig/sound/arm/vc_vchi_audioserv_defs.h linux-3.8.10/sound/arm/vc_vchi_audioserv_defs.h
---- linux-3.8.10.orig/sound/arm/vc_vchi_audioserv_defs.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.8.10/sound/arm/vc_vchi_audioserv_defs.h 2013-05-06 12:55:22.000000000 +0200
+diff -Nur linux-3.9.9/sound/arm/vc_vchi_audioserv_defs.h linux-rpi/sound/arm/vc_vchi_audioserv_defs.h
+--- linux-3.9.9/sound/arm/vc_vchi_audioserv_defs.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/sound/arm/vc_vchi_audioserv_defs.h 2013-07-08 13:33:19.000000000 +0200
@@ -0,0 +1,116 @@
+/*****************************************************************************
+* Copyright 2011 Broadcom Corporation. All rights reserved.
@@ -275885,3 +276321,820 @@ diff -Nur linux-3.8.10.orig/sound/arm/vc_vchi_audioserv_defs.h linux-3.8.10/soun
+} VC_AUDIO_MSG_T;
+
+#endif // _VC_AUDIO_DEFS_H_
+diff -Nur linux-3.9.9/.ssh/known_hosts linux-rpi/.ssh/known_hosts
+--- linux-3.9.9/.ssh/known_hosts 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/.ssh/known_hosts 2013-03-20 13:59:27.000000000 +0100
+@@ -0,0 +1 @@
++|1|sIM/W7CerYIeiJV6V0Z8Zp83u6A=|iLDe9BQI5Zo0Ri8hgiWEvg7VJ4U= ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAvZOVeV/3ZzmH6U/XefetRcpoAMz6I+LUTU2lad+sHLuUoBvUhQZuFCAvLgo2yUks6iyhhSIExoCfbfSzoRvArUG/G3wFlG8A+U4cRr1JKdd6wc5XDZXZjStA78j4MMaaZXWioVq7UyVAtb5n+cLrs8WWnHT1rZugbegWOMvo0SE=
+diff -Nur linux-3.9.9/.subversion/config linux-rpi/.subversion/config
+--- linux-3.9.9/.subversion/config 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/.subversion/config 2013-03-06 14:44:47.000000000 +0100
+@@ -0,0 +1,148 @@
++### This file configures various client-side behaviors.
++###
++### The commented-out examples below are intended to demonstrate
++### how to use this file.
++
++### Section for authentication and authorization customizations.
++[auth]
++### Set password stores used by Subversion. They should be
++### delimited by spaces or commas. The order of values determines
++### the order in which password stores are used.
++### Valid password stores:
++### gnome-keyring (Unix-like systems)
++### kwallet (Unix-like systems)
++### keychain (Mac OS X)
++### windows-cryptoapi (Windows)
++# password-stores = gnome-keyring,kwallet
++###
++### Set KWallet wallet used by Subversion. If empty or unset,
++### then the default network wallet will be used.
++# kwallet-wallet =
++###
++### Include PID (Process ID) in Subversion application name when
++### using KWallet. It defaults to 'no'.
++# kwallet-svn-application-name-with-pid = yes
++###
++### The rest of this section in this file has been deprecated.
++### Both 'store-passwords' and 'store-auth-creds' can now be
++### specified in the 'servers' file in your config directory.
++### Anything specified in this section is overridden by settings
++### specified in the 'servers' file.
++###
++### Set store-passwords to 'no' to avoid storing passwords in the
++### auth/ area of your config directory. It defaults to 'yes',
++### but Subversion will never save your password to disk in
++### plaintext unless you tell it to (see the 'servers' file).
++### Note that this option only prevents saving of *new* passwords;
++### it doesn't invalidate existing passwords. (To do that, remove
++### the cache files by hand as described in the Subversion book.)
++# store-passwords = no
++### Set store-auth-creds to 'no' to avoid storing any subversion
++### credentials in the auth/ area of your config directory.
++### It defaults to 'yes'. Note that this option only prevents
++### saving of *new* credentials; it doesn't invalidate existing
++### caches. (To do that, remove the cache files by hand.)
++# store-auth-creds = no
++
++### Section for configuring external helper applications.
++[helpers]
++### Set editor-cmd to the command used to invoke your text editor.
++### This will override the environment variables that Subversion
++### examines by default to find this information ($EDITOR,
++### et al).
++# editor-cmd = editor (vi, emacs, notepad, etc.)
++### Set diff-cmd to the absolute path of your 'diff' program.
++### This will override the compile-time default, which is to use
++### Subversion's internal diff implementation.
++# diff-cmd = diff_program (diff, gdiff, etc.)
++### Set diff3-cmd to the absolute path of your 'diff3' program.
++### This will override the compile-time default, which is to use
++### Subversion's internal diff3 implementation.
++# diff3-cmd = diff3_program (diff3, gdiff3, etc.)
++### Set diff3-has-program-arg to 'yes' if your 'diff3' program
++### accepts the '--diff-program' option.
++# diff3-has-program-arg = [yes | no]
++### Set merge-tool-cmd to the command used to invoke your external
++### merging tool of choice. Subversion will pass 4 arguments to
++### the specified command: base theirs mine merged
++# merge-tool-cmd = merge_command
++
++### Section for configuring tunnel agents.
++[tunnels]
++### Configure svn protocol tunnel schemes here. By default, only
++### the 'ssh' scheme is defined. You can define other schemes to
++### be used with 'svn+scheme://hostname/path' URLs. A scheme
++### definition is simply a command, optionally prefixed by an
++### environment variable name which can override the command if it
++### is defined. The command (or environment variable) may contain
++### arguments, using standard shell quoting for arguments with
++### spaces. The command will be invoked as:
++### <command> <hostname> svnserve -t
++### (If the URL includes a username, then the hostname will be
++### passed to the tunnel agent as <user>@<hostname>.) If the
++### built-in ssh scheme were not predefined, it could be defined
++### as:
++# ssh = $SVN_SSH ssh -q -o ControlMaster=no
++### If you wanted to define a new 'rsh' scheme, to be used with
++### 'svn+rsh:' URLs, you could do so as follows:
++# rsh = rsh
++### Or, if you wanted to specify a full path and arguments:
++# rsh = /path/to/rsh -l myusername
++### On Windows, if you are specifying a full path to a command,
++### use a forward slash (/) or a paired backslash (\\) as the
++### path separator. A single backslash will be treated as an
++### escape for the following character.
++
++### Section for configuring miscelleneous Subversion options.
++[miscellany]
++### Set global-ignores to a set of whitespace-delimited globs
++### which Subversion will ignore in its 'status' output, and
++### while importing or adding files and directories.
++### '*' matches leading dots, e.g. '*.rej' matches '.foo.rej'.
++# global-ignores = *.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.a *.pyc *.pyo
++# *.rej *~ #*# .#* .*.swp .DS_Store
++### Set log-encoding to the default encoding for log messages
++# log-encoding = latin1
++### Set use-commit-times to make checkout/update/switch/revert
++### put last-committed timestamps on every file touched.
++# use-commit-times = yes
++### Set no-unlock to prevent 'svn commit' from automatically
++### releasing locks on files.
++# no-unlock = yes
++### Set mime-types-file to a MIME type registry file, used to
++### provide hints to Subversion's MIME type auto-detection
++### algorithm.
++# mime-types-file = /path/to/mime.types
++### Set preserved-conflict-file-exts to a whitespace-delimited
++### list of patterns matching file extensions which should be
++### preserved in generated conflict file names. By default,
++### conflict files use custom extensions.
++# preserved-conflict-file-exts = doc ppt xls od?
++### Set enable-auto-props to 'yes' to enable automatic properties
++### for 'svn add' and 'svn import', it defaults to 'no'.
++### Automatic properties are defined in the section 'auto-props'.
++# enable-auto-props = yes
++### Set interactive-conflicts to 'no' to disable interactive
++### conflict resolution prompting. It defaults to 'yes'.
++# interactive-conflicts = no
++
++### Section for configuring automatic properties.
++[auto-props]
++### The format of the entries is:
++### file-name-pattern = propname[=value][;propname[=value]...]
++### The file-name-pattern can contain wildcards (such as '*' and
++### '?'). All entries which match (case-insensitively) will be
++### applied to the file. Note that auto-props functionality
++### must be enabled, which is typically done by setting the
++### 'enable-auto-props' option.
++# *.c = svn:eol-style=native
++# *.cpp = svn:eol-style=native
++# *.h = svn:keywords=Author Date Id Rev URL;svn:eol-style=native
++# *.dsp = svn:eol-style=CRLF
++# *.dsw = svn:eol-style=CRLF
++# *.sh = svn:eol-style=native;svn:executable
++# *.txt = svn:eol-style=native;svn:keywords=Author Date Id Rev URL;
++# *.png = svn:mime-type=image/png
++# *.jpg = svn:mime-type=image/jpeg
++# Makefile = svn:eol-style=native
++
+diff -Nur linux-3.9.9/.subversion/README.txt linux-rpi/.subversion/README.txt
+--- linux-3.9.9/.subversion/README.txt 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/.subversion/README.txt 2013-03-06 14:44:47.000000000 +0100
+@@ -0,0 +1,124 @@
++This directory holds run-time configuration information for Subversion
++clients. The configuration files all share the same syntax, but you
++should examine a particular file to learn what configuration
++directives are valid for that file.
++
++The syntax is standard INI format:
++
++ - Empty lines, and lines starting with '#', are ignored.
++ The first significant line in a file must be a section header.
++
++ - A section starts with a section header, which must start in
++ the first column:
++
++ [section-name]
++
++ - An option, which must always appear within a section, is a pair
++ (name, value). There are two valid forms for defining an
++ option, both of which must start in the first column:
++
++ name: value
++ name = value
++
++ Whitespace around the separator (:, =) is optional.
++
++ - Section and option names are case-insensitive, but case is
++ preserved.
++
++ - An option's value may be broken into several lines. The value
++ continuation lines must start with at least one whitespace.
++ Trailing whitespace in the previous line, the newline character
++ and the leading whitespace in the continuation line is compressed
++ into a single space character.
++
++ - All leading and trailing whitespace around a value is trimmed,
++ but the whitespace within a value is preserved, with the
++ exception of whitespace around line continuations, as
++ described above.
++
++ - When a value is a boolean, any of the following strings are
++ recognised as truth values (case does not matter):
++
++ true false
++ yes no
++ on off
++ 1 0
++
++ - When a value is a list, it is comma-separated. Again, the
++ whitespace around each element of the list is trimmed.
++
++ - Option values may be expanded within a value by enclosing the
++ option name in parentheses, preceded by a percent sign and
++ followed by an 's':
++
++ %(name)s
++
++ The expansion is performed recursively and on demand, during
++ svn_option_get. The name is first searched for in the same
++ section, then in the special [DEFAULT] section. If the name
++ is not found, the whole '%(name)s' placeholder is left
++ unchanged.
++
++ Any modifications to the configuration data invalidate all
++ previously expanded values, so that the next svn_option_get
++ will take the modifications into account.
++
++The syntax of the configuration files is a subset of the one used by
++Python's ConfigParser module; see
++
++ http://www.python.org/doc/current/lib/module-ConfigParser.html
++
++Configuration data in the Windows registry
++==========================================
++
++On Windows, configuration data may also be stored in the registry. The
++functions svn_config_read and svn_config_merge will read from the
++registry when passed file names of the form:
++
++ REGISTRY:<hive>/path/to/config-key
++
++The REGISTRY: prefix must be in upper case. The <hive> part must be
++one of:
++
++ HKLM for HKEY_LOCAL_MACHINE
++ HKCU for HKEY_CURRENT_USER
++
++The values in config-key represent the options in the [DEFAULT] section.
++The keys below config-key represent other sections, and their values
++represent the options. Only values of type REG_SZ whose name doesn't
++start with a '#' will be used; other values, as well as the keys'
++default values, will be ignored.
++
++
++File locations
++==============
++
++Typically, Subversion uses two config directories, one for site-wide
++configuration,
++
++ Unix:
++ /etc/subversion/servers
++ /etc/subversion/config
++ /etc/subversion/hairstyles
++ Windows:
++ %ALLUSERSPROFILE%\Application Data\Subversion\servers
++ %ALLUSERSPROFILE%\Application Data\Subversion\config
++ %ALLUSERSPROFILE%\Application Data\Subversion\hairstyles
++ REGISTRY:HKLM\Software\Tigris.org\Subversion\Servers
++ REGISTRY:HKLM\Software\Tigris.org\Subversion\Config
++ REGISTRY:HKLM\Software\Tigris.org\Subversion\Hairstyles
++
++and one for per-user configuration:
++
++ Unix:
++ ~/.subversion/servers
++ ~/.subversion/config
++ ~/.subversion/hairstyles
++ Windows:
++ %APPDATA%\Subversion\servers
++ %APPDATA%\Subversion\config
++ %APPDATA%\Subversion\hairstyles
++ REGISTRY:HKCU\Software\Tigris.org\Subversion\Servers
++ REGISTRY:HKCU\Software\Tigris.org\Subversion\Config
++ REGISTRY:HKCU\Software\Tigris.org\Subversion\Hairstyles
++
+diff -Nur linux-3.9.9/.subversion/servers linux-rpi/.subversion/servers
+--- linux-3.9.9/.subversion/servers 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/.subversion/servers 2013-03-06 14:44:47.000000000 +0100
+@@ -0,0 +1,158 @@
++### This file specifies server-specific parameters,
++### including HTTP proxy information, HTTP timeout settings,
++### and authentication settings.
++###
++### The currently defined server options are:
++### http-proxy-host Proxy host for HTTP connection
++### http-proxy-port Port number of proxy host service
++### http-proxy-username Username for auth to proxy service
++### http-proxy-password Password for auth to proxy service
++### http-proxy-exceptions List of sites that do not use proxy
++### http-timeout Timeout for HTTP requests in seconds
++### http-compression Whether to compress HTTP requests
++### neon-debug-mask Debug mask for Neon HTTP library
++### http-auth-types Auth types to use for HTTP library
++### ssl-authority-files List of files, each of a trusted CA
++### ssl-trust-default-ca Trust the system 'default' CAs
++### ssl-client-cert-file PKCS#12 format client certificate file
++### ssl-client-cert-password Client Key password, if needed.
++### ssl-pkcs11-provider Name of PKCS#11 provider to use.
++### http-library Which library to use for http/https
++### connections (neon or serf)
++### store-passwords Specifies whether passwords used
++### to authenticate against a
++### Subversion server may be cached
++### to disk in any way.
++### store-plaintext-passwords Specifies whether passwords may
++### be cached on disk unencrypted.
++### store-ssl-client-cert-pp Specifies whether passphrase used
++### to authenticate against a client
++### certificate may be cached to disk
++### in any way
++### store-ssl-client-cert-pp-plaintext
++### Specifies whether client cert
++### passphrases may be cached on disk
++### unencrypted (i.e., as plaintext).
++### store-auth-creds Specifies whether any auth info
++### (passwords as well as server certs)
++### may be cached to disk.
++### username Specifies the default username.
++###
++### Set store-passwords to 'no' to avoid storing passwords in the
++### auth/ area of your config directory. It defaults to 'yes',
++### but Subversion will never save your password to disk in
++### plaintext unless you tell it to.
++### Note that this option only prevents saving of *new* passwords;
++### it doesn't invalidate existing passwords. (To do that, remove
++### the cache files by hand as described in the Subversion book.)
++###
++### Set store-plaintext-passwords to 'no' to avoid storing
++### passwords in unencrypted form in the auth/ area of your config
++### directory. Set it to 'yes' to allow Subversion to store
++### unencrypted passwords in the auth/ area. The default is
++### 'ask', which means that Subversion will ask you before
++### saving a password to disk in unencrypted form. Note that
++### this option has no effect if either 'store-passwords' or
++### 'store-auth-creds' is set to 'no'.
++###
++### Set store-ssl-client-cert-pp to 'no' to avoid storing ssl
++### client certificate passphrases in the auth/ area of your
++### config directory. It defaults to 'yes', but Subversion will
++### never save your passphrase to disk in plaintext unless you tell
++### it to via 'store-ssl-client-cert-pp-plaintext' (see below).
++###
++### Note store-ssl-client-cert-pp only prevents the saving of *new*
++### passphrases; it doesn't invalidate existing passphrases. To do
++### that, remove the cache files by hand as described in the
++### Subversion book at http://svnbook.red-bean.com/nightly/en/\
++### svn.serverconfig.netmodel.html\
++### #svn.serverconfig.netmodel.credcache
++###
++### Set store-ssl-client-cert-pp-plaintext to 'no' to avoid storing
++### passphrases in unencrypted form in the auth/ area of your
++### config directory. Set it to 'yes' to allow Subversion to
++### store unencrypted passphrases in the auth/ area. The default
++### is 'ask', which means that Subversion will prompt before
++### saving a passphrase to disk in unencrypted form. Note that
++### this option has no effect if either 'store-auth-creds' or
++### 'store-ssl-client-cert-pp' is set to 'no'.
++###
++### Set store-auth-creds to 'no' to avoid storing any Subversion
++### credentials in the auth/ area of your config directory.
++### Note that this includes SSL server certificates.
++### It defaults to 'yes'. Note that this option only prevents
++### saving of *new* credentials; it doesn't invalidate existing
++### caches. (To do that, remove the cache files by hand.)
++###
++### HTTP timeouts, if given, are specified in seconds. A timeout
++### of 0, i.e. zero, causes a builtin default to be used.
++###
++### The commented-out examples below are intended only to
++### demonstrate how to use this file; any resemblance to actual
++### servers, living or dead, is entirely coincidental.
++
++### In the 'groups' section, the URL of the repository you're
++### trying to access is matched against the patterns on the right.
++### If a match is found, the server options are taken from the
++### section with the corresponding name on the left.
++
++[groups]
++# group1 = *.collab.net
++# othergroup = repository.blarggitywhoomph.com
++# thirdgroup = *.example.com
++
++### Information for the first group:
++# [group1]
++# http-proxy-host = proxy1.some-domain-name.com
++# http-proxy-port = 80
++# http-proxy-username = blah
++# http-proxy-password = doubleblah
++# http-timeout = 60
++# http-auth-types = basic;digest;negotiate
++# neon-debug-mask = 130
++# store-plaintext-passwords = no
++# username = harry
++
++### Information for the second group:
++# [othergroup]
++# http-proxy-host = proxy2.some-domain-name.com
++# http-proxy-port = 9000
++# No username and password for the proxy, so use the defaults below.
++
++### You can set default parameters in the 'global' section.
++### These parameters apply if no corresponding parameter is set in
++### a specifically matched group as shown above. Thus, if you go
++### through the same proxy server to reach every site on the
++### Internet, you probably just want to put that server's
++### information in the 'global' section and not bother with
++### 'groups' or any other sections.
++###
++### Most people might want to configure password caching
++### parameters here, but you can also configure them per server
++### group (per-group settings override global settings).
++###
++### If you go through a proxy for all but a few sites, you can
++### list those exceptions under 'http-proxy-exceptions'. This only
++### overrides defaults, not explicitly matched server names.
++###
++### 'ssl-authority-files' is a semicolon-delimited list of files,
++### each pointing to a PEM-encoded Certificate Authority (CA)
++### SSL certificate. See details above for overriding security
++### due to SSL.
++[global]
++# http-proxy-exceptions = *.exception.com, www.internal-site.org
++# http-proxy-host = defaultproxy.whatever.com
++# http-proxy-port = 7000
++# http-proxy-username = defaultusername
++# http-proxy-password = defaultpassword
++# http-compression = no
++# http-auth-types = basic;digest;negotiate
++# No http-timeout, so just use the builtin default.
++# No neon-debug-mask, so neon debugging is disabled.
++# ssl-authority-files = /path/to/CAcert.pem;/path/to/CAcert2.pem
++#
++# Password / passphrase caching parameters:
++# store-passwords = no
++# store-plaintext-passwords = no
++# store-ssl-client-cert-pp = no
++# store-ssl-client-cert-pp-plaintext = no
+diff -Nur linux-3.9.9/.viminfo linux-rpi/.viminfo
+--- linux-3.9.9/.viminfo 1970-01-01 01:00:00.000000000 +0100
++++ linux-rpi/.viminfo 2013-04-12 14:01:41.000000000 +0200
+@@ -0,0 +1,366 @@
++# Diese viminfo-Datei wurde von Vim 7.2 generiert.
++# Sie können sie verändern, wenn Sie vorsichtig vorgehen!
++
++# Wert von 'encoding', als diese Datei geschrieben wurde
++*encoding=utf-8
++
++
++# hlsearch on (H) or off (h):
++~h
++# Letztes Suchmuster:
++~MSle0~/VM and compiler
++
++# Letztes Substitute Suchmuster:
++~MSle0&wbx
++
++# Letzte ersetzte Zeichenkette:
++$vmadmin
++
++# Befehlszeile Geschichte (neueste bis älteste):
++:q!
++:35
++:%s/wbx/vmadmin/g
++:%s/wbx/vmadmin/
++:w
++
++# Suchausdruck Geschichte (neueste bis älteste):
++?/VM and compiler
++?/Compiler
++?/javac
++?/Test.java
++?/tar
++? wbx
++?/X11/X.h
++?/javah
++?/39408
++
++# Ausdruck Geschichte (neueste bis älteste):
++
++# Eingabe-Zeile Geschichte (neueste bis älteste):
++
++# Eingabe-Zeile Geschichte (neueste bis älteste):
++
++# Register:
++"0 LINE 0
++ --disable-system-png \
++""1 LINE 0
++ --with-gcj=$(STAGING_DIR_HOST)/usr/bin/gcj \
++"2 LINE 0
++
++"3 LINE 0
++ endef
++"4 LINE 0
++ $(HOST_MAKE_FLAGS) icedtea-boot
++"5 LINE 0
++ $(MAKE) $(HOST_JOBS) -C $(HOST_BUILD_DIR) \
++"6 LINE 0
++ define Host/Compile
++"7 LINE 0
++
++"8 LINE 0
++
++"9 LINE 0
++ --with-openjdk-src-dir=$(HOST_BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) \
++"- CHAR 0
++
++
++# Datei-Marken:
++'0 1 0 ~/attitude_adjustment/icedtea-2.3.4/patches/topdir-openwrt.patch
++'1 54 52 ~/attitude_adjustment/build_dir/host/icedtea-2.3.4/openjdk-boot/hotspot/make/linux/makefiles/launcher.make
++'2 28 3 ~/attitude_adjustment/tools/icedtea/Makefile
++'3 48 0 ~/attitude_adjustment/tools/icedtea/Makefile
++'4 55 0 ~/attitude_adjustment/tools/icedtea/Makefile
++'5 31 0 ~/attitude_adjustment/tools/ant/Makefile
++'6 8 0 ~/attitude_adjustment/tools/classpath/Makefile
++'7 3 0 ~/attitude_adjustment/feeds.conf
++'8 5 0 ~/openwrt/feeds.conf
++'9 1 0 ~/openwrt/feeds.conf.default
++
++# Geschichte (neueste zuerst):
++-' 1 0 ~/attitude_adjustment/icedtea-2.3.4/patches/topdir-openwrt.patch
++-' 54 52 ~/attitude_adjustment/build_dir/host/icedtea-2.3.4/openjdk-boot/hotspot/make/linux/makefiles/launcher.make
++-' 1 0 ~/attitude_adjustment/build_dir/host/icedtea-2.3.4/openjdk-boot/hotspot/make/linux/makefiles/launcher.make
++-' 28 3 ~/attitude_adjustment/tools/icedtea/Makefile
++-' 1 0 ~/attitude_adjustment/tools/icedtea/Makefile
++-' 48 0 ~/attitude_adjustment/tools/icedtea/Makefile
++-' 55 0 ~/attitude_adjustment/tools/icedtea/Makefile
++-' 31 0 ~/attitude_adjustment/tools/ant/Makefile
++-' 1 0 ~/attitude_adjustment/tools/ant/Makefile
++-' 8 0 ~/attitude_adjustment/tools/classpath/Makefile
++-' 1 0 ~/attitude_adjustment/tools/classpath/Makefile
++-' 3 0 ~/attitude_adjustment/feeds.conf
++-' 1 0 ~/attitude_adjustment/feeds.conf
++-' 5 0 ~/openwrt/feeds.conf
++-' 1 0 ~/openwrt/feeds.conf
++-' 1 0 ~/openwrt/feeds.conf.default
++-' 6 0 ~/attitude_adjustment/feeds.conf
++-' 10324 49 ~/attitude_adjustment/build_dir/host/icedtea-2.3.4/configure
++-' 7672 60 ~/attitude_adjustment/build_dir/host/icedtea-2.3.4/configure
++-' 1 0 ~/attitude_adjustment/build_dir/host/icedtea-2.3.4/configure
++-' 14981 2 ~/attitude_adjustment/build_dir/host/icedtea-2.3.4/configure
++-' 10334 20 ~/attitude_adjustment/build_dir/host/icedtea-2.3.4/configure
++-' 1785 48 ~/attitude_adjustment/build_dir/host/icedtea-2.3.4/configure
++-' 1052 5 ~/attitude_adjustment/build_dir/host/icedtea-2.3.4/configure
++-' 16075 24 ~/attitude_adjustment/build_dir/host/icedtea-2.3.4/configure
++-' 15544 41 ~/attitude_adjustment/build_dir/host/icedtea-2.3.4/configure
++-' 11050 24 ~/attitude_adjustment/build_dir/host/icedtea-2.3.4/configure
++-' 11049 55 ~/attitude_adjustment/build_dir/host/icedtea-2.3.4/configure
++-' 10292 34 ~/attitude_adjustment/build_dir/host/icedtea-2.3.4/configure
++-' 9569 44 ~/attitude_adjustment/build_dir/host/icedtea-2.3.4/configure
++-' 9568 73 ~/attitude_adjustment/build_dir/host/icedtea-2.3.4/configure
++-' 9280 11 ~/attitude_adjustment/build_dir/host/icedtea-2.3.4/configure
++-' 9279 34 ~/attitude_adjustment/build_dir/host/icedtea-2.3.4/configure
++-' 9252 16 ~/attitude_adjustment/build_dir/host/icedtea-2.3.4/configure
++-' 9251 16 ~/attitude_adjustment/build_dir/host/icedtea-2.3.4/configure
++-' 9250 23 ~/attitude_adjustment/build_dir/host/icedtea-2.3.4/configure
++-' 9248 26 ~/attitude_adjustment/build_dir/host/icedtea-2.3.4/configure
++-' 9247 57 ~/attitude_adjustment/build_dir/host/icedtea-2.3.4/configure
++-' 9246 38 ~/attitude_adjustment/build_dir/host/icedtea-2.3.4/configure
++-' 1836 26 ~/attitude_adjustment/build_dir/host/icedtea-2.3.4/configure
++-' 8 0 ~/attitude_adjustment/Test.java
++-' 1 0 ~/attitude_adjustment/Test.java
++-' 10308 8 ~/attitude_adjustment/build_dir/host/icedtea-2.3.4/configure
++-' 38 3 ~/attitude_adjustment/tools/icedtea/Makefile
++-' 2 19 ~/attitude_adjustment/tools/fastjar/Makefile
++-' 1 0 ~/attitude_adjustment/tools/fastjar/Makefile
++-' 18 0 ~/attitude_adjustment/tools/fastjar/Makefile
++-' 23 0 ~/attitude_adjustment/tools/fastjar/Makefile
++-' 22 0 ~/attitude_adjustment/tools/fastjar/Makefile
++-' 1 0 ~/attitude_adjustment/tools/Makefile
++-' 30 7 ~/attitude_adjustment/tools/ant/Makefile
++-' 33 38 ~/attitude_adjustment/tools/ant/Makefile
++-' 13 57 ~/attitude_adjustment/tools/ant/Makefile
++-' 20 61 ~/attitude_adjustment/tools/classpath/Makefile
++-' 18 0 ~/openwrt/feeds/packages/libs/libmicrohttpd/Makefile
++-' 1 0 ~/openwrt/feeds/packages/libs/libmicrohttpd/Makefile
++-' 1 456 ~/b.sh
++-' 2 0 ~/openwrt/feeds.conf
++-' 1 0 ~/openwrt/README
++-' 3 0 ~/trunk/feeds.conf
++-' 1 0 ~/trunk/feeds.conf
++-' 3 0 ~/trunk/feeds.conf
++-' 1 0 ~/trunk/feeds.conf
++-' 1 0 ~/openwrt/README
++-' 3 0 ~/trunk/feeds.conf
++-' 1 0 ~/trunk/feeds.conf
++-' 3 0 ~/trunk/feeds.conf
++-' 1 0 ~/trunk/feeds.conf
++-' 1 0 ~/openwrt/README
++-' 3 0 ~/trunk/feeds.conf
++-' 1 0 ~/trunk/feeds.conf
++-' 3 0 ~/trunk/feeds.conf
++-' 1 0 ~/trunk/feeds.conf
++-' 1 0 ~/openwrt/README
++-' 3 0 ~/trunk/feeds.conf
++-' 1 0 ~/trunk/feeds.conf
++-' 3 0 ~/trunk/feeds.conf
++-' 1 0 ~/trunk/feeds.conf
++-' 1 0 ~/openwrt/README
++-' 3 0 ~/trunk/feeds.conf
++-' 63 52 ~/attitude_adjustment/tools/icedtea/Makefile
++-' 72 2 ~/attitude_adjustment/tools/icedtea/Makefile
++-' 24 17 ~/attitude_adjustment/tools/icedtea/Makefile
++-' 8 0 ~/attitude_adjustment/Test.java
++-' 1 0 ~/attitude_adjustment/Test.java
++-' 40 3 ~/attitude_adjustment/tools/icedtea/Makefile
++-' 2 19 ~/attitude_adjustment/tools/fastjar/Makefile
++-' 1 0 ~/attitude_adjustment/tools/fastjar/Makefile
++-' 18 0 ~/attitude_adjustment/tools/fastjar/Makefile
++-' 23 0 ~/attitude_adjustment/tools/fastjar/Makefile
++-' 22 0 ~/attitude_adjustment/tools/fastjar/Makefile
++-' 1 0 ~/attitude_adjustment/tools/Makefile
++-' 10324 49 ~/attitude_adjustment/build_dir/host/icedtea-2.3.4/configure
++-' 7672 60 ~/attitude_adjustment/build_dir/host/icedtea-2.3.4/configure
++-' 1 0 ~/attitude_adjustment/build_dir/host/icedtea-2.3.4/configure
++-' 14981 2 ~/attitude_adjustment/build_dir/host/icedtea-2.3.4/configure
++-' 5 0 ~/openwrt/feeds.conf
++-' 1 0 ~/openwrt/feeds.conf
++
++# Geschichte der Markierungen innerhalb von Dateien (neueste zuerst):
++
++> ~/attitude_adjustment/icedtea-2.3.4/patches/topdir-openwrt.patch
++ " 1 0
++
++> ~/attitude_adjustment/build_dir/host/icedtea-2.3.4/openjdk-boot/hotspot/make/linux/makefiles/launcher.make
++ " 54 52
++ ^ 54 53
++ . 54 48
++ + 54 48
++
++> ~/attitude_adjustment/tools/icedtea/Makefile
++ " 28 3
++ ^ 48 2
++ . 28 0
++ + 23 18
++ + 25 100
++ + 23 16
++ + 23 0
++ + 24 0
++ + 25 0
++ + 25 0
++ + 25 0
++ + 25 0
++ + 23 15
++ + 24 0
++ + 23 79
++ + 25 0
++ + 25 0
++ + 27 0
++ + 23 18
++ + 24 18
++ + 25 18
++ + 25 18
++ + 23 12
++ + 24 12
++ + 25 12
++ + 25 16
++ + 71 26
++ + 72 33
++ + 61 0
++ + 68 0
++ + 68 0
++ + 68 0
++ + 68 0
++ + 68 0
++ + 68 0
++ + 68 0
++ + 67 9
++ + 63 0
++ + 67 0
++ + 68 0
++ + 65 1
++ + 63 52
++ + 26 16
++ + 64 5
++ + 57 46
++ + 58 24
++ + 59 0
++ + 58 26
++ + 59 15
++ + 59 27
++ + 60 26
++ + 55 24
++ + 25 0
++ + 35 22
++ + 21 0
++ + 41 0
++ + 38 3
++ + 39 38
++ + 53 5
++ + 54 0
++ + 55 0
++ + 52 0
++ + 44 0
++ + 45 1
++ + 46 1
++ + 47 1
++ + 48 0
++ + 28 0
++
++> ~/attitude_adjustment/tools/ant/Makefile
++ " 31 0
++ ^ 32 59
++ . 33 0
++ + 13 16
++ + 33 40
++ + 33 0
++ + 33 65
++ + 33 38
++ + 33 0
++ + 33 0
++ + 13 16
++ + 31 1
++ + 32 1
++ + 33 0
++
++> ~/attitude_adjustment/tools/classpath/Makefile
++ " 8 0
++ ^ 19 65
++ . 19 64
++ + 19 36
++ + 20 64
++ + 19 64
++
++> ~/attitude_adjustment/feeds.conf
++ " 3 0
++ ^ 3 1
++ . 3 0
++ + 2 0
++ + 3 0
++ + 6 0
++ + 2 0
++ + 3 0
++ + 6 0
++ + 2 0
++ + 3 0
++
++> ~/openwrt/feeds.conf
++ " 5 0
++ ^ 3 1
++ . 3 0
++ + 2 0
++ + 3 0
++
++> ~/openwrt/feeds.conf.default
++ " 1 0
++
++> ~/attitude_adjustment/build_dir/host/icedtea-2.3.4/configure
++ " 10324 49
++ ^ 10324 8
++ . 10324 7
++ + 10324 7
++
++> ~/attitude_adjustment/Test.java
++ " 8 0
++ ^ 8 0
++ . 7 1
++ + 7 1
++
++> ~/attitude_adjustment/tools/fastjar/Makefile
++ " 2 19
++ . 2 19
++ + 18 0
++ + 18 0
++ + 18 0
++ + 19 0
++ + 20 0
++ + 21 0
++ + 22 0
++ + 23 0
++ + 25 0
++ + 25 0
++ + 25 0
++ + 18 0
++ + 19 0
++ + 20 0
++ + 21 0
++ + 22 0
++ + 23 0
++ + 18 0
++ + 25 0
++ + 2 19
++
++> ~/attitude_adjustment/tools/Makefile
++ " 1 0
++
++> ~/openwrt/feeds/packages/libs/libmicrohttpd/Makefile
++ " 18 0
++
++> ~/b.sh
++ " 1 456
++ ^ 1 699
++ . 1 456
++ + 1 695
++ + 1 0
++ + 1 456
++
++> ~/openwrt/README
++ " 1 0
++
++> ~/trunk/feeds.conf
++ " 3 0
++ ^ 3 1
++ . 3 0
++ + 6 0
++ + 2 0
++ + 3 0
diff --git a/target/linux/patches/3.9.8/startup.patch b/target/linux/patches/3.9.9/startup.patch
index d23d6d212..d23d6d212 100644
--- a/target/linux/patches/3.9.8/startup.patch
+++ b/target/linux/patches/3.9.9/startup.patch
diff --git a/target/linux/patches/3.9.8/usb-defaults-off.patch b/target/linux/patches/3.9.9/usb-defaults-off.patch
index 54dff2bd4..54dff2bd4 100644
--- a/target/linux/patches/3.9.8/usb-defaults-off.patch
+++ b/target/linux/patches/3.9.9/usb-defaults-off.patch
diff --git a/target/linux/patches/3.9.8/uuid.patch b/target/linux/patches/3.9.9/uuid.patch
index ca23accdf..ca23accdf 100644
--- a/target/linux/patches/3.9.8/uuid.patch
+++ b/target/linux/patches/3.9.9/uuid.patch
diff --git a/target/linux/patches/3.9.8/vga-cons-default-off.patch b/target/linux/patches/3.9.9/vga-cons-default-off.patch
index 178aeeeb9..178aeeeb9 100644
--- a/target/linux/patches/3.9.8/vga-cons-default-off.patch
+++ b/target/linux/patches/3.9.9/vga-cons-default-off.patch
diff --git a/target/linux/patches/3.9.8/wlan-cf.patch b/target/linux/patches/3.9.9/wlan-cf.patch
index fc20759e2..fc20759e2 100644
--- a/target/linux/patches/3.9.8/wlan-cf.patch
+++ b/target/linux/patches/3.9.9/wlan-cf.patch
diff --git a/target/linux/patches/3.9.8/zlib-inflate.patch b/target/linux/patches/3.9.9/zlib-inflate.patch
index 58e1f6d21..58e1f6d21 100644
--- a/target/linux/patches/3.9.8/zlib-inflate.patch
+++ b/target/linux/patches/3.9.9/zlib-inflate.patch
diff --git a/toolchain/kernel-headers/patches/3.9.8/cleankernel.patch b/toolchain/kernel-headers/patches/3.9.9/cleankernel.patch
index f8d5448ee..f8d5448ee 100644
--- a/toolchain/kernel-headers/patches/3.9.8/cleankernel.patch
+++ b/toolchain/kernel-headers/patches/3.9.9/cleankernel.patch
diff --git a/toolchain/kernel-headers/patches/3.9.8/microperl.patch b/toolchain/kernel-headers/patches/3.9.9/microperl.patch
index 44c39f6e8..44c39f6e8 100644
--- a/toolchain/kernel-headers/patches/3.9.8/microperl.patch
+++ b/toolchain/kernel-headers/patches/3.9.9/microperl.patch
diff --git a/toolchain/kernel-headers/patches/3.9.8/mkpiggy.patch b/toolchain/kernel-headers/patches/3.9.9/mkpiggy.patch
index d4e815cd2..d4e815cd2 100644
--- a/toolchain/kernel-headers/patches/3.9.8/mkpiggy.patch
+++ b/toolchain/kernel-headers/patches/3.9.9/mkpiggy.patch
diff --git a/toolchain/kernel-headers/patches/3.9.8/relocs.patch b/toolchain/kernel-headers/patches/3.9.9/relocs.patch
index 43c5bb580..43c5bb580 100644
--- a/toolchain/kernel-headers/patches/3.9.8/relocs.patch
+++ b/toolchain/kernel-headers/patches/3.9.9/relocs.patch
diff --git a/toolchain/kernel-headers/patches/3.9.8/sortext.patch b/toolchain/kernel-headers/patches/3.9.9/sortext.patch
index d82b76a2d..d82b76a2d 100644
--- a/toolchain/kernel-headers/patches/3.9.8/sortext.patch
+++ b/toolchain/kernel-headers/patches/3.9.9/sortext.patch