summaryrefslogtreecommitdiff
authorWeiguang Ruan <Weiguang.ruan@amlogic.com>2015-11-05 12:47:16 (GMT)
committer tao.dong <tao.dong@amlogic.com>2015-11-11 04:52:00 (GMT)
commitaf8b243c66ebd4e40bed51b4114d6c7dcb45293f (patch)
treee8935cc45f6c1cf2825774cdd22cfc67654c9e1e
parent10840d5dbd967c086fa1bfbc82fa4cb0840d4893 (diff)
downloadbtusb-af8b243c66ebd4e40bed51b4114d6c7dcb45293f.zip
btusb-af8b243c66ebd4e40bed51b4114d6c7dcb45293f.tar.gz
btusb-af8b243c66ebd4e40bed51b4114d6c7dcb45293f.tar.bz2
PD #109172 add bcm43242 support(same driver with bcm20705)
add bcn43569 support
Diffstat
-rw-r--r--bcm20705_bcm242/.btusb.ko.cmd1
-rw-r--r--bcm20705_bcm242/.btusb.mod.o.cmd417
-rw-r--r--bcm20705_bcm242/.btusb.o.cmd1
-rw-r--r--bcm20705_bcm242/.tmp_versions/btusb.mod2
-rwxr-xr-xbcm20705_bcm242/Makefile (copied from Makefile)2
-rw-r--r--[-rwxr-xr-x]bcm20705_bcm242/Module.symvers (copied from inc/bt_target.h)0
-rwxr-xr-xbcm20705_bcm242/Release_btusb.txt (copied from Release_btusb.txt)0
-rw-r--r--bcm20705_bcm242/btusb.ko2990
-rw-r--r--bcm20705_bcm242/btusb.mod.c24
-rw-r--r--bcm20705_bcm242/btusb.mod.o85
-rw-r--r--bcm20705_bcm242/btusb.o2940
-rwxr-xr-xbcm20705_bcm242/inc/bt_target.h (copied from inc/bt_target.h)0
-rwxr-xr-xbcm20705_bcm242/inc/bt_types.h (copied from inc/bt_types.h)0
-rwxr-xr-xbcm20705_bcm242/inc/btusb.h (copied from inc/btusb.h)0
-rwxr-xr-xbcm20705_bcm242/inc/btusb_cq.h (renamed from inc/btusb_cq.h)0
-rwxr-xr-xbcm20705_bcm242/inc/btusb_lite.h (copied from inc/btusb_lite.h)0
-rwxr-xr-xbcm20705_bcm242/inc/btusb_lite_av.h (copied from inc/btusb_lite_av.h)0
-rwxr-xr-xbcm20705_bcm242/inc/btusb_lite_avdt.h (copied from inc/btusb_lite_avdt.h)0
-rwxr-xr-xbcm20705_bcm242/inc/btusb_lite_hci.h (copied from inc/btusb_lite_hci.h)0
-rwxr-xr-xbcm20705_bcm242/inc/btusb_lite_l2c.h (copied from inc/btusb_lite_l2c.h)0
-rwxr-xr-xbcm20705_bcm242/inc/btusb_proc.h (renamed from inc/btusb_proc.h)0
-rwxr-xr-xbcm20705_bcm242/inc/btusbext.h (copied from inc/btusbext.h)0
-rwxr-xr-xbcm20705_bcm242/inc/data_types.h (copied from inc/data_types.h)0
-rwxr-xr-xbcm20705_bcm242/inc/gki.h (copied from inc/gki.h)0
-rwxr-xr-xbcm20705_bcm242/inc/gki_int.h (copied from inc/gki_int.h)0
-rwxr-xr-xbcm20705_bcm242/inc/hcidefs.h (copied from inc/hcidefs.h)0
-rwxr-xr-xbcm20705_bcm242/inc/target.h (copied from inc/target.h)0
-rw-r--r--bcm20705_bcm242/modules.order1
-rw-r--r--bcm20705_bcm242/src/.btusb.o.cmd687
-rw-r--r--bcm20705_bcm242/src/.btusb_dev.o.cmd694
-rw-r--r--bcm20705_bcm242/src/.btusb_isoc.o.cmd658
-rw-r--r--bcm20705_bcm242/src/.btusb_proc.o.cmd659
-rw-r--r--bcm20705_bcm242/src/.btusb_version.o.cmd644
-rwxr-xr-xbcm20705_bcm242/src/btusb.c (copied from src/btusb.c)2
-rw-r--r--bcm20705_bcm242/src/btusb.o592
-rwxr-xr-xbcm20705_bcm242/src/btusb_dev.c (renamed from src/btusb_dev.c)0
-rw-r--r--bcm20705_bcm242/src/btusb_dev.o528
-rwxr-xr-xbcm20705_bcm242/src/btusb_isoc.c (copied from src/btusb_isoc.c)0
-rw-r--r--bcm20705_bcm242/src/btusb_isoc.o164
-rwxr-xr-xbcm20705_bcm242/src/btusb_lite.c (copied from src/btusb_lite.c)0
-rwxr-xr-xbcm20705_bcm242/src/btusb_lite_av.c (copied from src/btusb_lite_av.c)0
-rwxr-xr-xbcm20705_bcm242/src/btusb_lite_avdt.c (copied from src/btusb_lite_avdt.c)0
-rwxr-xr-xbcm20705_bcm242/src/btusb_lite_hci.c (copied from src/btusb_lite_hci.c)0
-rwxr-xr-xbcm20705_bcm242/src/btusb_lite_l2c.c (copied from src/btusb_lite_l2c.c)0
-rwxr-xr-xbcm20705_bcm242/src/btusb_proc.c (renamed from src/btusb_proc.c)0
-rw-r--r--bcm20705_bcm242/src/btusb_proc.o348
-rwxr-xr-xbcm20705_bcm242/src/btusb_version.c (renamed from src/btusb_version.c)0
-rw-r--r--bcm20705_bcm242/src/btusb_version.o130
-rw-r--r--bcm20705_bcm242/src/gki/.gki_buffer.o.cmd645
-rw-r--r--bcm20705_bcm242/src/gki/.gki_klinux.o.cmd635
-rwxr-xr-xbcm20705_bcm242/src/gki/gki_buffer.c (copied from src/gki/gki_buffer.c)0
-rw-r--r--bcm20705_bcm242/src/gki/gki_buffer.o558
-rwxr-xr-xbcm20705_bcm242/src/gki/gki_klinux.c (copied from src/gki/gki_klinux.c)0
-rw-r--r--bcm20705_bcm242/src/gki/gki_klinux.o116
-rw-r--r--bcm569/.btusb_comp.ko.cmd1
-rw-r--r--bcm569/.btusb_comp.mod.o.cmd417
-rw-r--r--bcm569/.btusb_comp.o.cmd1
-rw-r--r--bcm569/.tmp_versions/btusb_comp.mod2
-rwxr-xr-xbcm569/Makefile (renamed from Makefile)63
-rw-r--r--[-rwxr-xr-x]bcm569/Module.symvers (copied from inc/bt_target.h)0
-rwxr-xr-xbcm569/Release_btusb.txt (renamed from Release_btusb.txt)0
-rw-r--r--bcm569/btusb_comp.ko2880
-rw-r--r--bcm569/btusb_comp.mod.c24
-rw-r--r--bcm569/btusb_comp.mod.o87
-rw-r--r--bcm569/btusb_comp.o2832
-rwxr-xr-xbcm569/cpmod1
-rwxr-xr-xbcm569/inc/bt_target.h (renamed from inc/bt_target.h)0
-rwxr-xr-xbcm569/inc/bt_types.h (renamed from inc/bt_types.h)0
-rwxr-xr-xbcm569/inc/btusb.h (renamed from inc/btusb.h)284
-rwxr-xr-xbcm569/inc/btusb_lite.h (renamed from inc/btusb_lite.h)55
-rwxr-xr-xbcm569/inc/btusb_lite_av.h (renamed from inc/btusb_lite_av.h)10
-rwxr-xr-xbcm569/inc/btusb_lite_avdt.h (renamed from inc/btusb_lite_avdt.h)10
-rwxr-xr-xbcm569/inc/btusb_lite_hci.h (renamed from inc/btusb_lite_hci.h)6
-rwxr-xr-xbcm569/inc/btusb_lite_l2c.h (renamed from inc/btusb_lite_l2c.h)8
-rwxr-xr-xbcm569/inc/btusbext.h (renamed from inc/btusbext.h)127
-rwxr-xr-xbcm569/inc/data_types.h (renamed from inc/data_types.h)0
-rwxr-xr-xbcm569/inc/gki.h (renamed from inc/gki.h)0
-rwxr-xr-xbcm569/inc/gki_int.h (renamed from inc/gki_int.h)0
-rwxr-xr-xbcm569/inc/hcidefs.h (renamed from inc/hcidefs.h)14
-rwxr-xr-xbcm569/inc/target.h (renamed from inc/target.h)0
-rw-r--r--bcm569/modules.order1
-rw-r--r--bcm569/src/.btusb.o.cmd686
-rw-r--r--bcm569/src/.btusb_dev.o.cmd693
-rw-r--r--bcm569/src/.btusb_isoc.o.cmd657
-rwxr-xr-xbcm569/src/btusb.c (renamed from src/btusb.c)497
-rw-r--r--bcm569/src/btusb.o609
-rwxr-xr-xbcm569/src/btusb_dev.c2630
-rw-r--r--bcm569/src/btusb_dev.o785
-rwxr-xr-xbcm569/src/btusb_isoc.c (renamed from src/btusb_isoc.c)197
-rw-r--r--bcm569/src/btusb_isoc.o161
-rwxr-xr-xbcm569/src/btusb_lite.c (renamed from src/btusb_lite.c)269
-rwxr-xr-xbcm569/src/btusb_lite_av.c (renamed from src/btusb_lite_av.c)179
-rwxr-xr-xbcm569/src/btusb_lite_avdt.c (renamed from src/btusb_lite_avdt.c)36
-rwxr-xr-xbcm569/src/btusb_lite_hci.c (renamed from src/btusb_lite_hci.c)22
-rwxr-xr-xbcm569/src/btusb_lite_l2c.c (renamed from src/btusb_lite_l2c.c)16
-rw-r--r--bcm569/src/gki/.gki_buffer.o.cmd644
-rw-r--r--bcm569/src/gki/.gki_klinux.o.cmd635
-rwxr-xr-xbcm569/src/gki/gki_buffer.c (renamed from src/gki/gki_buffer.c)23
-rw-r--r--bcm569/src/gki/gki_buffer.o566
-rwxr-xr-xbcm569/src/gki/gki_klinux.c (renamed from src/gki/gki_klinux.c)0
-rw-r--r--bcm569/src/gki/gki_klinux.o116
101 files changed, 28856 insertions, 911 deletions
diff --git a/bcm20705_bcm242/.btusb.ko.cmd b/bcm20705_bcm242/.btusb.ko.cmd
new file mode 100644
index 0000000..a1a372c
--- a/dev/null
+++ b/bcm20705_bcm242/.btusb.ko.cmd
@@ -0,0 +1 @@
+cmd_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/btusb.ko := arm-linux-gnueabihf-ld -EL -r -T /mnt/nfsroot/weiguang.ruan/m8b/common/scripts/module-common.lds --build-id -o /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/btusb.ko /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/btusb.o /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/btusb.mod.o
diff --git a/bcm20705_bcm242/.btusb.mod.o.cmd b/bcm20705_bcm242/.btusb.mod.o.cmd
new file mode 100644
index 0000000..ba9450a
--- a/dev/null
+++ b/bcm20705_bcm242/.btusb.mod.o.cmd
@@ -0,0 +1,417 @@
+cmd_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/btusb.mod.o := arm-linux-gnueabihf-gcc -Wp,-MD,/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/.btusb.mod.o.d -nostdinc -isystem /opt/gcc-linaro-arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.7.3/include -I/mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include -Iarch/arm/include/generated -I/mnt/nfsroot/weiguang.ruan/m8b/common/include -Iinclude -I/mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi -Iarch/arm/include/generated/uapi -I/mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi -Iinclude/generated/uapi -include /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kconfig.h -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242 -D__KERNEL__ -mlittle-endian -I/mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/mach-mesong9tv/include -I/mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/plat-meson/include -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -Werror -Werror=enum-compare -Werror=comment -Werror=implicit-int -Werror=missing-braces -Werror=unused-value -Werror=maybe-uninitialized -Werror=unused-variable -Werror=format -Werror=unused-function -Werror=switch -Werror=strict-prototypes -Werror=declaration-after-statement -Werror=uninitialized -Werror=unused-label -Werror=undef -Werror=unused-result -Werror=return-type -Werror=parentheses -Werror=int-to-pointer-cast -Wno-error=cpp -O2 -fno-dwarf2-cfi-asm -mabi=aapcs-linux -mno-thumb-interwork -funwind-tables -marm -D__LINUX_ARM_ARCH__=7 -march=armv7-a -msoft-float -Uarm -fno-reorder-blocks -fno-ipa-cp-clone -fno-partial-inlining -Wframe-larger-than=1024 -fno-stack-protector -Wno-unused-but-set-variable -fomit-frame-pointer -g -fno-inline-functions-called-once -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -DCC_HAVE_ASM_GOTO -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242 -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/gki -DEXPORT_SYMTAB -DEXPORT_SYMTAB -D"KBUILD_STR(s)=\#s" -D"KBUILD_BASENAME=KBUILD_STR(btusb.mod)" -D"KBUILD_MODNAME=KBUILD_STR(btusb)" -DMODULE -c -o /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/btusb.mod.o /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/btusb.mod.c
+
+source_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/btusb.mod.o := /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/btusb.mod.c
+
+deps_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/btusb.mod.o := \
+ $(wildcard include/config/module/unload.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/module.h \
+ $(wildcard include/config/sysfs.h) \
+ $(wildcard include/config/modules.h) \
+ $(wildcard include/config/unused/symbols.h) \
+ $(wildcard include/config/module/sig.h) \
+ $(wildcard include/config/generic/bug.h) \
+ $(wildcard include/config/kallsyms.h) \
+ $(wildcard include/config/smp.h) \
+ $(wildcard include/config/tracepoints.h) \
+ $(wildcard include/config/tracing.h) \
+ $(wildcard include/config/event/tracing.h) \
+ $(wildcard include/config/ftrace/mcount/record.h) \
+ $(wildcard include/config/constructors.h) \
+ $(wildcard include/config/debug/set/module/ronx.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/list.h \
+ $(wildcard include/config/debug/list.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/types.h \
+ $(wildcard include/config/uid16.h) \
+ $(wildcard include/config/lbdaf.h) \
+ $(wildcard include/config/arch/dma/addr/t/64bit.h) \
+ $(wildcard include/config/phys/addr/t/64bit.h) \
+ $(wildcard include/config/64bit.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/types.h \
+ arch/arm/include/generated/asm/types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/int-ll64.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/int-ll64.h \
+ arch/arm/include/generated/asm/bitsperlong.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitsperlong.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/bitsperlong.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/posix_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/stddef.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/stddef.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/compiler.h \
+ $(wildcard include/config/sparse/rcu/pointer.h) \
+ $(wildcard include/config/trace/branch/profiling.h) \
+ $(wildcard include/config/profile/all/branches.h) \
+ $(wildcard include/config/enable/must/check.h) \
+ $(wildcard include/config/enable/warn/deprecated.h) \
+ $(wildcard include/config/kprobes.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/compiler-gcc.h \
+ $(wildcard include/config/arch/supports/optimized/inlining.h) \
+ $(wildcard include/config/optimize/inlining.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/compiler-gcc4.h \
+ $(wildcard include/config/arch/use/builtin/bswap.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/posix_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/posix_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/poison.h \
+ $(wildcard include/config/illegal/pointer/value.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/const.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/stat.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/stat.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/stat.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/time.h \
+ $(wildcard include/config/arch/uses/gettimeoffset.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/cache.h \
+ $(wildcard include/config/arch/has/cache/line/size.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kernel.h \
+ $(wildcard include/config/preempt/voluntary.h) \
+ $(wildcard include/config/debug/atomic/sleep.h) \
+ $(wildcard include/config/prove/locking.h) \
+ $(wildcard include/config/ring/buffer.h) \
+ /opt/gcc-linaro-arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.7.3/include/stdarg.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/linkage.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/stringify.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/export.h \
+ $(wildcard include/config/have/underscore/symbol/prefix.h) \
+ $(wildcard include/config/modversions.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/linkage.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bitops.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/bitops.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/irqflags.h \
+ $(wildcard include/config/trace/irqflags.h) \
+ $(wildcard include/config/irqsoff/tracer.h) \
+ $(wildcard include/config/preempt/tracer.h) \
+ $(wildcard include/config/trace/irqflags/support.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/typecheck.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/irqflags.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/ptrace.h \
+ $(wildcard include/config/arm/thumb.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/ptrace.h \
+ $(wildcard include/config/cpu/endian/be8.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/hwcap.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/hwcap.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/non-atomic.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/fls64.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/sched.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/hweight.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/arch_hweight.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/const_hweight.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/lock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/le.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/byteorder.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/byteorder/little_endian.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/byteorder/little_endian.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/swab.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/swab.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/swab.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/swab.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/byteorder/generic.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/ext2-atomic-setbit.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/log2.h \
+ $(wildcard include/config/arch/has/ilog2/u32.h) \
+ $(wildcard include/config/arch/has/ilog2/u64.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/printk.h \
+ $(wildcard include/config/early/printk.h) \
+ $(wildcard include/config/printk.h) \
+ $(wildcard include/config/dynamic/debug.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/init.h \
+ $(wildcard include/config/broken/rodata.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kern_levels.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/dynamic_debug.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/string.h \
+ $(wildcard include/config/binary/printf.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/string.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/string.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/errno.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/errno.h \
+ arch/arm/include/generated/asm/errno.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/errno.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/errno-base.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/kernel.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/sysinfo.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/div64.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/compiler.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/bug.h \
+ $(wildcard include/config/bug.h) \
+ $(wildcard include/config/thumb2/kernel.h) \
+ $(wildcard include/config/debug/bugverbose.h) \
+ $(wildcard include/config/arm/lpae.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bug.h \
+ $(wildcard include/config/generic/bug/relative/pointers.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/cache.h \
+ $(wildcard include/config/arm/l1/cache/shift.h) \
+ $(wildcard include/config/aeabi.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/seqlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/spinlock.h \
+ $(wildcard include/config/debug/spinlock.h) \
+ $(wildcard include/config/generic/lockbreak.h) \
+ $(wildcard include/config/preempt.h) \
+ $(wildcard include/config/debug/lock/alloc.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/preempt.h \
+ $(wildcard include/config/debug/preempt.h) \
+ $(wildcard include/config/context/tracking.h) \
+ $(wildcard include/config/preempt/count.h) \
+ $(wildcard include/config/preempt/notifiers.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/thread_info.h \
+ $(wildcard include/config/compat.h) \
+ $(wildcard include/config/debug/stack/usage.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bug.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/thread_info.h \
+ $(wildcard include/config/crunch.h) \
+ $(wildcard include/config/arm/thumbee.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/fpstate.h \
+ $(wildcard include/config/vfpv3.h) \
+ $(wildcard include/config/iwmmxt.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/domain.h \
+ $(wildcard include/config/io/36.h) \
+ $(wildcard include/config/cpu/use/domains.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/barrier.h \
+ $(wildcard include/config/cpu/32v6k.h) \
+ $(wildcard include/config/cpu/xsc3.h) \
+ $(wildcard include/config/cpu/fa526.h) \
+ $(wildcard include/config/arch/has/barriers.h) \
+ $(wildcard include/config/arm/dma/mem/bufferable.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/outercache.h \
+ $(wildcard include/config/outer/cache/sync.h) \
+ $(wildcard include/config/outer/cache.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bottom_half.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/spinlock_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/spinlock_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/lockdep.h \
+ $(wildcard include/config/lockdep.h) \
+ $(wildcard include/config/lock/stat.h) \
+ $(wildcard include/config/prove/rcu.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwlock_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/spinlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/processor.h \
+ $(wildcard include/config/have/hw/breakpoint.h) \
+ $(wildcard include/config/mmu.h) \
+ $(wildcard include/config/arm/errata/754327.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/hw_breakpoint.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/spinlock_api_smp.h \
+ $(wildcard include/config/inline/spin/lock.h) \
+ $(wildcard include/config/inline/spin/lock/bh.h) \
+ $(wildcard include/config/inline/spin/lock/irq.h) \
+ $(wildcard include/config/inline/spin/lock/irqsave.h) \
+ $(wildcard include/config/inline/spin/trylock.h) \
+ $(wildcard include/config/inline/spin/trylock/bh.h) \
+ $(wildcard include/config/uninline/spin/unlock.h) \
+ $(wildcard include/config/inline/spin/unlock/bh.h) \
+ $(wildcard include/config/inline/spin/unlock/irq.h) \
+ $(wildcard include/config/inline/spin/unlock/irqrestore.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwlock_api_smp.h \
+ $(wildcard include/config/inline/read/lock.h) \
+ $(wildcard include/config/inline/write/lock.h) \
+ $(wildcard include/config/inline/read/lock/bh.h) \
+ $(wildcard include/config/inline/write/lock/bh.h) \
+ $(wildcard include/config/inline/read/lock/irq.h) \
+ $(wildcard include/config/inline/write/lock/irq.h) \
+ $(wildcard include/config/inline/read/lock/irqsave.h) \
+ $(wildcard include/config/inline/write/lock/irqsave.h) \
+ $(wildcard include/config/inline/read/trylock.h) \
+ $(wildcard include/config/inline/write/trylock.h) \
+ $(wildcard include/config/inline/read/unlock.h) \
+ $(wildcard include/config/inline/write/unlock.h) \
+ $(wildcard include/config/inline/read/unlock/bh.h) \
+ $(wildcard include/config/inline/write/unlock/bh.h) \
+ $(wildcard include/config/inline/read/unlock/irq.h) \
+ $(wildcard include/config/inline/write/unlock/irq.h) \
+ $(wildcard include/config/inline/read/unlock/irqrestore.h) \
+ $(wildcard include/config/inline/write/unlock/irqrestore.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/atomic.h \
+ $(wildcard include/config/arch/has/atomic/or.h) \
+ $(wildcard include/config/generic/atomic64.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/atomic.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/cmpxchg.h \
+ $(wildcard include/config/cpu/sa1100.h) \
+ $(wildcard include/config/cpu/sa110.h) \
+ $(wildcard include/config/cpu/v6.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/cmpxchg-local.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/atomic-long.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/math64.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/time.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/uidgid.h \
+ $(wildcard include/config/uidgid/strict/type/checks.h) \
+ $(wildcard include/config/user/ns.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/highuid.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kmod.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/gfp.h \
+ $(wildcard include/config/numa.h) \
+ $(wildcard include/config/highmem.h) \
+ $(wildcard include/config/zone/dma.h) \
+ $(wildcard include/config/zone/dma32.h) \
+ $(wildcard include/config/pm/sleep.h) \
+ $(wildcard include/config/cma.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/mmzone.h \
+ $(wildcard include/config/force/max/zoneorder.h) \
+ $(wildcard include/config/memory/isolation.h) \
+ $(wildcard include/config/memcg.h) \
+ $(wildcard include/config/compaction.h) \
+ $(wildcard include/config/memory/hotplug.h) \
+ $(wildcard include/config/sparsemem.h) \
+ $(wildcard include/config/have/memblock/node/map.h) \
+ $(wildcard include/config/discontigmem.h) \
+ $(wildcard include/config/flat/node/mem/map.h) \
+ $(wildcard include/config/no/bootmem.h) \
+ $(wildcard include/config/numa/balancing.h) \
+ $(wildcard include/config/have/memory/present.h) \
+ $(wildcard include/config/have/memoryless/nodes.h) \
+ $(wildcard include/config/need/node/memmap/size.h) \
+ $(wildcard include/config/need/multiple/nodes.h) \
+ $(wildcard include/config/have/arch/early/pfn/to/nid.h) \
+ $(wildcard include/config/flatmem.h) \
+ $(wildcard include/config/sparsemem/extreme.h) \
+ $(wildcard include/config/have/arch/pfn/valid.h) \
+ $(wildcard include/config/nodes/span/other/nodes.h) \
+ $(wildcard include/config/holes/in/zone.h) \
+ $(wildcard include/config/arch/has/holes/memorymodel.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/wait.h \
+ arch/arm/include/generated/asm/current.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/current.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/wait.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/threads.h \
+ $(wildcard include/config/nr/cpus.h) \
+ $(wildcard include/config/base/small.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/numa.h \
+ $(wildcard include/config/nodes/shift.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/nodemask.h \
+ $(wildcard include/config/movable/node.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bitmap.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pageblock-flags.h \
+ $(wildcard include/config/hugetlb/page.h) \
+ $(wildcard include/config/hugetlb/page/size/variable.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/page-flags-layout.h \
+ $(wildcard include/config/sparsemem/vmemmap.h) \
+ include/generated/bounds.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/page.h \
+ $(wildcard include/config/cpu/copy/v4wt.h) \
+ $(wildcard include/config/cpu/copy/v4wb.h) \
+ $(wildcard include/config/cpu/copy/feroceon.h) \
+ $(wildcard include/config/cpu/copy/fa.h) \
+ $(wildcard include/config/cpu/xscale.h) \
+ $(wildcard include/config/cpu/copy/v6.h) \
+ $(wildcard include/config/kuser/helpers.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/glue.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/pgtable-2level-types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/memory.h \
+ $(wildcard include/config/need/mach/memory/h.h) \
+ $(wildcard include/config/page/offset.h) \
+ $(wildcard include/config/dram/size.h) \
+ $(wildcard include/config/dram/base.h) \
+ $(wildcard include/config/have/tcm.h) \
+ $(wildcard include/config/arm/patch/phys/virt.h) \
+ $(wildcard include/config/phys/offset.h) \
+ $(wildcard include/config/virt/to/bus.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/sizes.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/mach-mesong9tv/include/mach/memory.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/memory_model.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/getorder.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/sysctl.h \
+ $(wildcard include/config/sysctl.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rcupdate.h \
+ $(wildcard include/config/rcu/torture/test.h) \
+ $(wildcard include/config/tree/rcu.h) \
+ $(wildcard include/config/tree/preempt/rcu.h) \
+ $(wildcard include/config/rcu/trace.h) \
+ $(wildcard include/config/preempt/rcu.h) \
+ $(wildcard include/config/rcu/user/qs.h) \
+ $(wildcard include/config/tiny/rcu.h) \
+ $(wildcard include/config/tiny/preempt/rcu.h) \
+ $(wildcard include/config/debug/objects/rcu/head.h) \
+ $(wildcard include/config/hotplug/cpu.h) \
+ $(wildcard include/config/rcu/nocb/cpu.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/cpumask.h \
+ $(wildcard include/config/cpumask/offstack.h) \
+ $(wildcard include/config/debug/per/cpu/maps.h) \
+ $(wildcard include/config/disable/obsolete/cpumask/functions.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/completion.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/debugobjects.h \
+ $(wildcard include/config/debug/objects.h) \
+ $(wildcard include/config/debug/objects/free.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rcutree.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rbtree.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/sysctl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/memory_hotplug.h \
+ $(wildcard include/config/memory/hotremove.h) \
+ $(wildcard include/config/have/arch/nodedata/extension.h) \
+ $(wildcard include/config/have/bootmem/info/node.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/notifier.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/mutex.h \
+ $(wildcard include/config/debug/mutexes.h) \
+ $(wildcard include/config/mutex/spin/on/owner.h) \
+ $(wildcard include/config/have/arch/mutex/cpu/relax.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwsem.h \
+ $(wildcard include/config/rwsem/generic/spinlock.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwsem-spinlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/srcu.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/workqueue.h \
+ $(wildcard include/config/debug/objects/work.h) \
+ $(wildcard include/config/freezer.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/timer.h \
+ $(wildcard include/config/timer/stats.h) \
+ $(wildcard include/config/debug/objects/timers.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/ktime.h \
+ $(wildcard include/config/ktime/scalar.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/jiffies.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/timex.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/timex.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/param.h \
+ arch/arm/include/generated/asm/param.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/param.h \
+ $(wildcard include/config/hz.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/param.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/timex.h \
+ $(wildcard include/config/arch/multiplatform.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/mach-mesong9tv/include/mach/timex.h \
+ $(wildcard include/config/meson/clock/tick/rate.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/topology.h \
+ $(wildcard include/config/sched/smt.h) \
+ $(wildcard include/config/sched/mc.h) \
+ $(wildcard include/config/sched/book.h) \
+ $(wildcard include/config/use/percpu/numa/node/id.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/smp.h \
+ $(wildcard include/config/use/generic/smp/helpers.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/smp.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/percpu.h \
+ $(wildcard include/config/need/per/cpu/embed/first/chunk.h) \
+ $(wildcard include/config/need/per/cpu/page/first/chunk.h) \
+ $(wildcard include/config/have/setup/per/cpu/area.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pfn.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/percpu.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/percpu.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/percpu-defs.h \
+ $(wildcard include/config/debug/force/weak/per/cpu.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/topology.h \
+ $(wildcard include/config/arm/cpu/topology.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/topology.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/mmdebug.h \
+ $(wildcard include/config/debug/vm.h) \
+ $(wildcard include/config/debug/virtual.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/elf.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/elf.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/user.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/elf.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/elf-em.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kobject.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/sysfs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kobject_ns.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kref.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/moduleparam.h \
+ $(wildcard include/config/alpha.h) \
+ $(wildcard include/config/ia64.h) \
+ $(wildcard include/config/ppc64.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/tracepoint.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/static_key.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/jump_label.h \
+ $(wildcard include/config/jump/label.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/module.h \
+ $(wildcard include/config/arm/unwind.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/module.h \
+ $(wildcard include/config/have/mod/arch/specific.h) \
+ $(wildcard include/config/modules/use/elf/rel.h) \
+ $(wildcard include/config/modules/use/elf/rela.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/vermagic.h \
+ include/generated/utsrelease.h \
+
+/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/btusb.mod.o: $(deps_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/btusb.mod.o)
+
+$(deps_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/btusb.mod.o):
diff --git a/bcm20705_bcm242/.btusb.o.cmd b/bcm20705_bcm242/.btusb.o.cmd
new file mode 100644
index 0000000..62ded14
--- a/dev/null
+++ b/bcm20705_bcm242/.btusb.o.cmd
@@ -0,0 +1 @@
+cmd_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/btusb.o := arm-linux-gnueabihf-ld -EL -r -o /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/btusb.o /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/btusb.o /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/btusb_dev.o /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/btusb_isoc.o /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/btusb_version.o /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/btusb_proc.o /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/gki/gki_buffer.o /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/gki/gki_klinux.o ; scripts/mod/modpost /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/btusb.o
diff --git a/bcm20705_bcm242/.tmp_versions/btusb.mod b/bcm20705_bcm242/.tmp_versions/btusb.mod
new file mode 100644
index 0000000..4fbc63c
--- a/dev/null
+++ b/bcm20705_bcm242/.tmp_versions/btusb.mod
@@ -0,0 +1,2 @@
+/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/btusb.ko
+/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/btusb.o /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/btusb_dev.o /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/btusb_isoc.o /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/btusb_version.o /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/btusb_proc.o /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/gki/gki_buffer.o /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/gki/gki_klinux.o
diff --git a/Makefile b/bcm20705_bcm242/Makefile
index dd522eb..e988141 100755
--- a/Makefile
+++ b/bcm20705_bcm242/Makefile
@@ -1,4 +1,4 @@
-
+export SUBDIRS ?= $(src)
# Specify Include folders
EXTRA_CFLAGS += -I$(SUBDIRS)
EXTRA_CFLAGS += -I$(SUBDIRS)/inc
diff --git a/inc/bt_target.h b/bcm20705_bcm242/Module.symvers
index e69de29..e69de29 100755..100644
--- a/inc/bt_target.h
+++ b/bcm20705_bcm242/Module.symvers
diff --git a/Release_btusb.txt b/bcm20705_bcm242/Release_btusb.txt
index f6228fe..f6228fe 100755
--- a/Release_btusb.txt
+++ b/bcm20705_bcm242/Release_btusb.txt
diff --git a/bcm20705_bcm242/btusb.ko b/bcm20705_bcm242/btusb.ko
new file mode 100644
index 0000000..2ba6d6a
--- a/dev/null
+++ b/bcm20705_bcm242/btusb.ko
@@ -0,0 +1,2990 @@
+ELF
+0
+
+ph
+XLg
+<,G
+
+
+
+
+ |
+h
+H
+A
+SM
+RM0@
+
+DLL
+
+
+
+H
+ 
+ 0
+ X\
+0
+
+0华g~00b
+p
+0
+
+0华G00D
+` D0
+< 0
+
+ 1
+
+0Gg~
+
+0  
+0
+
+ 0
+
+D`xE
+8 0`0
+` `|
+
+| 0
+
+( 00
+( 6
+ 00
+ `4  p
+ 
+p
+
+
+t
+T
+4 0
+
+
+
+,
+0p0 !
+H
+
+T [ 1
+
+
+H 0(
+
+
+< 0
+
+
+X 0
+
+ <0@0<0a
+
+
+ L0
+
+
+ H0$
+
+
+
+
+
+
+ `
+  
+0!
+0,`00m
+0!
+000T
+0@h00(
+x
+
+
+
+d
+
+
+ 
+
+
+<0
+
+
+
+
+
+
+
+<0
+
+
+
+
+
+<0
+
+
+
+
+
+
+
+p$
+\
+
+
+
+
+p
+P
+4
+H D
+
+
+ 
+
+|\
+`
+L( 
+(
+
+0,
+
+
+
+
+,
+`
+<
+
+0
+
+0
+ 
+ 0
+,0
+$ЍO
+R?NO-,0崐
+
+/
+ 
+
+
+
+(
+
+ 0
+ <00|
+
+X \0
+8
+"9
+;
+
+X 
+
+
+
+
+p
+0@T@
+
+
+
+
+
+
+
+
+
+ 0
+0
+ 0 }?p0   0
+lL
+
+0 {  0
+
+ =?0  0
+
+ 5`0 D 5@
+ᴐ+l
+
+
+ 
+
+H(
+ $
+ 0 5
+
+ 0D 
+ 0
+
+
+
+
+
+
+
+<0
+ 
+
+BC.F? h 0Aσ
+((
+ p`
+ 
+<
+ ( 0
+
+A
+0
+ \D
+@ <0
+ 
+
+XX0
+ 0
+00
+ 
+ |00
+
+T0uS 
+ , 崠
+`t`I=a,0
+ Xd,0
+uV@
+ T`
+
+
+
+
+DI=
+P0
+$
+
+
+0
+F
+0
+
+B
+E
+
+
+0
+G
+
+7
+0
+V4
+
+
+
+ 
+0
+
+0
+0
+ 
+
+
+ =?00$  0
+0 @<
+
+ 4
+
+
+<
+Q
+ =?00  0
+ xT
+d<V_
+,
+L
+ 
+
+
+
+
+|
+\
+>IJ/
+ 0
+00
+$ЍO80
+T0 h
+d0|P
+ 0|
+`2
+
+
+h 0
+
+ 001_+
+
+@T
+=
+
+t0  
+
+P
+(
+
+EP
+E 
+T
+ 7
+0
+
+ 
+
+
+
+
+
+ 0
+
+
+
+
+
+ 
+ 
+ 
+ 
+ 
+ 
+
+0
+0
+ 
+ 
+0
+
+ 0
+
+l
+,
+
+
+0@
+
+
+1
+
+
+
+,Q`
+
+2d
+
+
+
+
+@0T
+@0T
+h@0TDT 
+p@0T`D
+
+`
+<
+`8@0T
+H8@
+0
+0
+@0
+` 1
+p
+
+
+
+
+P
+(
+ 1@!@
+
+
+D
+0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+--------------------------------------------------------------------
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+A ",
+4
+F
+X
+j
+|
+
+
+'
+I
+L
+
+;
+<'
+9#
+
+
+
+
+L
+
+
+
+
+
+
+
+
+
+
+
+
+:
+
+>'
+s/
+H
+7
+H
+
+7
+
+
+
+
+G
+G
+PG
+f
+
+0
+EwO
+Q
+
+X
+X
+
+
+
+l
+
+l
+
+
+
+$
+[
+fv
+ z
+T'hz
+ 
+
+kD
+
+m
+
+
+
+
+
+
+V
+
+2
+H
+
+H
+C
+!
+l
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+F
+
+F
+
+
+
+
+
+
+
+
+,JQ
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+E
+?
+7
+
+ 9
+
+
+
+
+
+
+
+
+
+
+m
+
+*
+ +
+3
+A3
+3
+
+3
+3
+K
+3
+
+3
+
+3
+3
+3
+3
+3
+3
+
+
+y
+3
+u}
+
+
+}
+
+
+
+'
+
+
+
+
+
+
+H
+$
+
+&.
+(
+(
+
+
+
+~
+"
+{
+ʷ
+
+
+
+;
+
+
+
+
+b
+
+
+;
+
+
+
+
+
+
+
+[(
+
+
+
+
+
+
+
+
+
+8
+
+_K
+_K
+_pL
+_L
+[
+[8
+_@N
+
+
+n
+:
+2
+
+
+
+
+
+
+
+ 
+"
+$
+%
+
+
+0
+
+
+
+
+
+p
+7
+!
+'9'
+
+
+-
+
+6
+6
+6
+8
+
+
+
+
+
+lJ
+
+
+
+
+
+
+
+
+
+m
+
+
+v
+
+z
+
+
+
+
+
+
+
+ۑ
+
+ę
+
+
+
+
+
+
+
+
+
+Ϊ
+&
+
+
+
+
+K
+* 
+
+
+)
+c
+
+}
+U
+x
+~
+~
+c
+
+
+
+ 
+
+A
+
+
+_
+}
+"
+G
+
+|'
+0-
+
+7
+7
+;
+E
+G
+G
+K
+K
+L
+\
+T
+T
+
+k
+\
+A^
+`
+`
+`
+b
+i
+i
+wm
+G
+=
+=
+
+_c
+
+@
+e
+
+
+
+
+
+Ԉ
+
+
+
+
+͎
+p
+
+
+:
+ [
+"
+
+
+
+
+
+
+
+
+!'
+ R
+
+
+
+
+
+
+4
+:;
+
+T
+
+7
+ң
+9a
+
+
+
+f
+ o
+}
+
+0
+#
+
+d
+
+
+
+
+
+
+
+
+
+
+,IQ
+@IR
+IQ'
+@IR
+4IQ0'
+IR
+IQP'
+IR
+IQt'
+IQ'
+IQ'
+IR
+8IQ'
+IPu
+
+1
+
+
+v
+
+
+h
+p
+
+|
+
+
+
+{u
+x
+x
+x
+x
+x
+
+
+
+y
+!-
+1B
+6
+7x
+8
+;x
+<
+=
+@9
+G}
+J
+Lt
+OOb
+OOb
+Q
+Th
+Wx
+Xx
+Xx
+Yx
+Z
+]
+_
+`
+b
+e
+h
+i
+k
+l
+wp
+xp
+|
+}
+~p
+
+
+?
+
+m
+`
+
+`
+Wi
+Wi
+Wi
+Wi
+Wi
+v
+
+
+
+
+
+
+v
+p
+T
+T
+
+x
+x
+bi
+
+o
+U
+T
+m
+[
+a
+i
+i
+i
+l
+
+,
+w
+|
+}
+d
+
+kt
+
+
+:
+
+st
+
+|
+ 
+ 
+
+M
+ł
+
+˂
+t
+'ׂ
+)
+,
+0
+1
+E;
+JM
+Lg
+Xx
+Yx
+Z
+d
+e
+x
+z
+
+
+
+
+
+
+
+
+
+r
+
+
+
+
+"
+
+Z
+'
+
+
+C-
+
+
+
+7
+7
+;
+
+E
+
+M
+K
+ L
+M
+
+
+
+T
+U
+
+
+T^
+`
+`
+a
+b
+)i
+i
+l
+
+
+
+
+
+
+
+
+
+X'
+m
+
+r
+
+
+
+
+
+{u
+|
+}u
+~:
+
+S
+
+pv
+
+x
+<
+
+Wi
+Wi
+
+
+v
+Wi
+Wi
+
+
+v
+Wi
+Wi
+!w
+Wi
+Wi
+
+\w
+v
+x
+
+
+
+
+x
+S
+p
+l
+x
+x
+p
+x
+
+
+
+x
+
+ v
+ |:
+ 
+
+!w
+v
+p
+!|:
+$x
+&}
+1Wi
+1Wi
+1Wi
+1Wi
+2Wi
+3Wi
+5v
+7
+7
+7
+7
+8
+8
+8
+8
+9
+9
+9
+9
+:
+:
+;t
+C
+N}
+Qu
+W
+X
+Y}
+e;
+hy
+iT
+jT
+m
+S
+
+)~
+
+
+
+
+O~
+{~
+
+
+~
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+g
+O~
+
+
+
+
+
+
+
+
+~
+g
+s
+s
+{~
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+&
+o
+
+
+
+[
+
+
+
+
+
+
+z
+
+g
+
+9
+|:
+&
+`
+ 
+
+z
+ 1
+{
+
+
+
+l
+
+O
+
+
+J
+
+
+b%
+
+.
+.
+/
+[
+2
+X
+/<
+mB
+eC
+d
+J
+K
+
+ZT
+V
+V
+W
+X
+b
+^
+^
+_
+Bc
+#`
+
+|IP|
+dIPt
+3
+
+
+
+
+
+3
+ b
+
+l
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ : ; 
+
+
+
+
+
+
+
+
+
+B
+
+
+
+
+
+
+
+
+ : ; 
+
+
+
+
+
+
+
+
+B
+
+
+
+
+
+
+
+
+
+B 
+
+
+ : ; 
+
+
+
+
+
+
+
+
+
+
+
+B
+
+
+' 
+
+
+
+
+
+
+
+
+ : ; 
+
+
+
+
+
+
+
+
+B
+
+B 
+
+
+
+
+
+
+' 
+
+
+
+
+
+
+
+B
+
+B 
+B 
+
+
+B 
+
+
+' 
+
+4
+
+
+
+
+
+
+
+
+B
+
+
+B 
+
+
+B 
+
+ : ; 
+
+
+
+
+
+
+
+J/K
+.u.
+.~J.~.0./u .vf/ .-/-/-/v. .vJ .v. .v/ .--/-/vJ/ .,/v. .vf/ .--/-/vJ/ .,/v/ .--v. .0-v. .v. .-/.-~.w.I
+.u./1.
+J1)3*/1K1/v./-i2Qu. .0x.1z.5+* .uf5y.0H+/2+1-*4)4)00/1/M2*x.. .v,2e2yJfxf-/-/
+
+00,00/IK/0x.RxJ
+.yf.1y..Mkz.zJh/IK/0
+J|J y.0
+[.fLM"J y..yJ y..yJh1
+Jv.0
+[.K.w..*
+
+
+
+
+
+
+
+
+ Jw. f
+f3.M.6.hlP
+fu.
+JuJ
+ff2~//L/0d5~x..x..vI,Lg fv. JvJ ff00/of.fw..w..؃vfIK Jv. J3f00/of.wJM}..uI/ JvIK.4z.K/2+1
+g.<}.J$.
+J.
+~.LgL//Hl/-KnJf ք
+~J.
+~JP-0-KM*21gNJic
+Jv.
+J,0
+}..,0
+}J5
+}J/f
+}fgh
+.u. KI/L2*2*2JRx.6
+.hL2uJhgM~J"gM/LgL
+fn`f!.y.
+f
+{ff/-L0x
+fPxJ
+f/-L
+{. fxJ.x.
+Jf
+{ff
+z..4-
+z./x.///4//y./0/
+z./ f-Kx.
+fOwJ.w..w..L,
+[.KJ
+.v.
+.v.
+.h,0~.h,.~..~.0-3,0g-/-jh s..r. Jy.//3y.60.~.-/./~./.~.fff/-/-/
+J
+.Lz
+}
+fLh/-Kg
+
+.z.4j*0
+.+1 .w.gK3+0///3KR+JJJ.2*2i2JN.5,0LK(X.22i1hhM20/*/L/4*.2*2h!J_.5hJh.20L3)4/2,x.6L3+f.10
+ 
+,
+
+
+
+
+
+
+
+
+
+
+
+
+
+l
+
+
+
+
+
+
+
+
+
+p
+v
+p
+v
+p
+v
+p
+v
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+(
+e
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 
+
+
+0
+1
+k
+l
+u
+v
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+;
+K
+R
+W
+c
+{
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 
+7
+B
+E
+H
+I
+]
+t
+z
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 
+ 
+
+
+
+
+
+
+
+"
+%
+*
++
+,
+1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/bcm20705_bcm242/btusb.mod.c b/bcm20705_bcm242/btusb.mod.c
new file mode 100644
index 0000000..f76adc4
--- a/dev/null
+++ b/bcm20705_bcm242/btusb.mod.c
@@ -0,0 +1,24 @@
+#include <linux/module.h>
+#include <linux/vermagic.h>
+#include <linux/compiler.h>
+
+MODULE_INFO(vermagic, VERMAGIC_STRING);
+
+struct module __this_module
+__attribute__((section(".gnu.linkonce.this_module"))) = {
+ .name = KBUILD_MODNAME,
+ .init = init_module,
+#ifdef CONFIG_MODULE_UNLOAD
+ .exit = cleanup_module,
+#endif
+ .arch = MODULE_ARCH_INIT,
+};
+
+static const char __module_depends[]
+__used
+__attribute__((section(".modinfo"))) =
+"depends=";
+
+MODULE_ALIAS("usb:v*p*d*dcE0dsc01dp01ic*isc*ip*in*");
+MODULE_ALIAS("usb:v0A5Cp*d*dc*dsc*dp*icE0isc01ip01in*");
+MODULE_ALIAS("usb:v0A5Cp*d*dcFFdsc01dp01ic*isc*ip*in*");
diff --git a/bcm20705_bcm242/btusb.mod.o b/bcm20705_bcm242/btusb.mod.o
new file mode 100644
index 0000000..5ce5d73
--- a/dev/null
+++ b/bcm20705_bcm242/btusb.mod.o
@@ -0,0 +1,85 @@
+ELF
+3
+
+
+
+
+
+
+
+3
+ b
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ : ; 
+
+
+
+
+
+
+
+A "
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/bcm20705_bcm242/btusb.o b/bcm20705_bcm242/btusb.o
new file mode 100644
index 0000000..c86e58a
--- a/dev/null
+++ b/bcm20705_bcm242/btusb.o
@@ -0,0 +1,2940 @@
+ELF
+0
+
+ph
+XLg
+<,G
+
+
+
+
+ |
+h
+H
+A
+SM
+RM0@
+
+DLL
+
+
+
+H
+ 
+ 0
+ X\
+0
+
+0华g~00b
+p
+0
+
+0华G00D
+` D0
+< 0
+
+ 1
+
+0Gg~
+
+0  
+0
+
+ 0
+
+D`xE
+8 0`0
+` `|
+
+| 0
+
+( 00
+( 6
+ 00
+ `4  p
+ 
+p
+
+
+t
+T
+4 0
+
+
+
+,
+0p0 !
+H
+
+T [ 1
+
+
+H 0(
+
+
+< 0
+
+
+X 0
+
+ <0@0<0a
+
+
+ L0
+
+
+ H0$
+
+
+
+
+
+
+ `
+  
+0!
+0,`00m
+0!
+000T
+0@h00(
+x
+
+
+
+d
+
+
+ 
+
+
+<0
+
+
+
+
+
+
+
+<0
+
+
+
+
+
+<0
+
+
+
+
+
+
+
+p$
+\
+
+
+
+
+p
+P
+4
+H D
+
+
+ 
+
+|\
+`
+L( 
+(
+
+0,
+
+
+
+
+,
+`
+<
+
+0
+
+0
+ 
+ 0
+,0
+$ЍO
+R?NO-,0崐
+
+/
+ 
+
+
+
+(
+
+ 0
+ <00|
+
+X \0
+8
+"9
+;
+
+X 
+
+
+
+
+p
+0@T@
+
+
+
+
+
+
+
+
+
+ 0
+0
+ 0 }?p0   0
+lL
+
+0 {  0
+
+ =?0  0
+
+ 5`0 D 5@
+ᴐ+l
+
+
+ 
+
+H(
+ $
+ 0 5
+
+ 0D 
+ 0
+
+
+
+
+
+
+
+<0
+ 
+
+BC.F? h 0Aσ
+((
+ p`
+ 
+<
+ ( 0
+
+A
+0
+ \D
+@ <0
+ 
+
+XX0
+ 0
+00
+ 
+ |00
+
+T0uS 
+ , 崠
+`t`I=a,0
+ Xd,0
+uV@
+ T`
+
+
+
+
+DI=
+P0
+$
+
+
+0
+F
+0
+
+B
+E
+
+
+0
+G
+
+7
+0
+V4
+
+
+
+ 
+0
+
+0
+0
+ 
+
+
+ =?00$  0
+0 @<
+
+ 4
+
+
+<
+Q
+ =?00  0
+ xT
+d<V_
+,
+L
+ 
+
+
+
+
+|
+\
+>IJ/
+ 0
+00
+$ЍO80
+T0 h
+d0|P
+ 0|
+`2
+
+
+h 0
+
+ 001_+
+
+@T
+=
+
+t0  
+
+P
+(
+
+EP
+E 
+T
+ 7
+0
+
+ 
+
+
+
+
+
+ 0
+
+
+
+
+
+ 
+ 
+ 
+ 
+ 
+ 
+
+0
+0
+ 
+ 
+0
+
+ 0
+
+l
+,
+
+
+0@
+
+
+1
+
+
+
+,Q`
+
+2d
+
+
+
+
+@0T
+@0T
+h@0TDT 
+p@0T`D
+
+`
+<
+`8@0T
+H8@
+0
+0
+@0
+` 1
+p
+
+
+
+
+P
+(
+ 1@!@
+
+
+D
+0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+--------------------------------------------------------------------
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+A ",
+4
+F
+X
+j
+|
+
+
+'
+I
+L
+
+;
+<'
+9#
+
+
+
+
+L
+
+
+
+
+
+
+
+
+
+
+
+
+:
+
+>'
+s/
+H
+7
+H
+
+7
+
+
+
+
+G
+G
+PG
+f
+
+0
+EwO
+Q
+
+X
+X
+
+
+
+l
+
+l
+
+
+
+$
+[
+fv
+ z
+T'hz
+ 
+
+kD
+
+m
+
+
+
+
+
+
+V
+
+2
+H
+
+H
+C
+!
+l
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+F
+
+F
+
+
+
+
+
+
+
+
+,JQ
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+E
+?
+7
+
+ 9
+
+
+
+
+
+
+
+
+
+
+m
+
+*
+ +
+3
+A3
+3
+
+3
+3
+K
+3
+
+3
+
+3
+3
+3
+3
+3
+3
+
+
+y
+3
+u}
+
+
+}
+
+
+
+'
+
+
+
+
+
+
+H
+$
+
+&.
+(
+(
+
+
+
+~
+"
+{
+ʷ
+
+
+
+;
+
+
+
+
+b
+
+
+;
+
+
+
+
+
+
+
+[(
+
+
+
+
+
+
+
+
+
+8
+
+_K
+_K
+_pL
+_L
+[
+[8
+_@N
+
+
+n
+:
+2
+
+
+
+
+
+
+
+ 
+"
+$
+%
+
+
+0
+
+
+
+
+
+p
+7
+!
+'9'
+
+
+-
+
+6
+6
+6
+8
+
+
+
+
+
+lJ
+
+
+
+
+
+
+
+
+
+m
+
+
+v
+
+z
+
+
+
+
+
+
+
+ۑ
+
+ę
+
+
+
+
+
+
+
+
+
+Ϊ
+&
+
+
+
+
+K
+* 
+
+
+)
+c
+
+}
+U
+x
+~
+~
+c
+
+
+
+ 
+
+A
+
+
+_
+}
+"
+G
+
+|'
+0-
+
+7
+7
+;
+E
+G
+G
+K
+K
+L
+\
+T
+T
+
+k
+\
+A^
+`
+`
+`
+b
+i
+i
+wm
+G
+=
+=
+
+_c
+
+@
+e
+
+
+
+
+
+Ԉ
+
+
+
+
+͎
+p
+
+
+:
+ [
+"
+
+
+
+
+
+
+
+
+!'
+ R
+
+
+
+
+
+
+4
+:;
+
+T
+
+7
+ң
+9a
+
+
+
+f
+ o
+}
+
+0
+#
+
+d
+
+
+
+
+
+
+
+
+
+
+,IQ
+@IR
+IQ'
+@IR
+4IQ0'
+IR
+IQP'
+IR
+IQt'
+IQ'
+IQ'
+IR
+8IQ'
+IPu
+
+1
+
+
+v
+
+
+h
+p
+
+|
+
+
+
+{u
+x
+x
+x
+x
+x
+
+
+
+y
+!-
+1B
+6
+7x
+8
+;x
+<
+=
+@9
+G}
+J
+Lt
+OOb
+OOb
+Q
+Th
+Wx
+Xx
+Xx
+Yx
+Z
+]
+_
+`
+b
+e
+h
+i
+k
+l
+wp
+xp
+|
+}
+~p
+
+
+?
+
+m
+`
+
+`
+Wi
+Wi
+Wi
+Wi
+Wi
+v
+
+
+
+
+
+
+v
+p
+T
+T
+
+x
+x
+bi
+
+o
+U
+T
+m
+[
+a
+i
+i
+i
+l
+
+,
+w
+|
+}
+d
+
+kt
+
+
+:
+
+st
+
+|
+ 
+ 
+
+M
+ł
+
+˂
+t
+'ׂ
+)
+,
+0
+1
+E;
+JM
+Lg
+Xx
+Yx
+Z
+d
+e
+x
+z
+
+
+
+
+
+
+
+
+
+r
+
+
+
+
+"
+
+Z
+'
+
+
+C-
+
+
+
+7
+7
+;
+
+E
+
+M
+K
+ L
+M
+
+
+
+T
+U
+
+
+T^
+`
+`
+a
+b
+)i
+i
+l
+
+
+
+
+
+
+
+
+
+X'
+m
+
+r
+
+
+
+
+
+{u
+|
+}u
+~:
+
+S
+
+pv
+
+x
+<
+
+Wi
+Wi
+
+
+v
+Wi
+Wi
+
+
+v
+Wi
+Wi
+!w
+Wi
+Wi
+
+\w
+v
+x
+
+
+
+
+x
+S
+p
+l
+x
+x
+p
+x
+
+
+
+x
+
+ v
+ |:
+ 
+
+!w
+v
+p
+!|:
+$x
+&}
+1Wi
+1Wi
+1Wi
+1Wi
+2Wi
+3Wi
+5v
+7
+7
+7
+7
+8
+8
+8
+8
+9
+9
+9
+9
+:
+:
+;t
+C
+N}
+Qu
+W
+X
+Y}
+e;
+hy
+iT
+jT
+m
+S
+
+)~
+
+
+
+
+O~
+{~
+
+
+~
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+g
+O~
+
+
+
+
+
+
+
+
+~
+g
+s
+s
+{~
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+&
+o
+
+
+
+[
+
+
+
+
+
+
+z
+
+g
+
+9
+|:
+&
+`
+ 
+
+z
+ 1
+{
+
+
+
+l
+
+O
+
+
+J
+
+
+b%
+
+.
+.
+/
+[
+2
+X
+/<
+mB
+eC
+d
+J
+K
+
+ZT
+V
+V
+W
+X
+b
+^
+^
+_
+Bc
+#`
+
+|IP|
+dIPt
+ : ; 
+
+
+
+
+
+
+
+
+
+B
+
+
+
+
+
+
+
+
+ : ; 
+
+
+
+
+
+
+
+
+B
+
+
+
+
+
+
+
+
+
+B 
+
+
+ : ; 
+
+
+
+
+
+
+
+
+
+
+
+B
+
+
+' 
+
+
+
+
+
+
+
+
+ : ; 
+
+
+
+
+
+
+
+
+B
+
+B 
+
+
+
+
+
+
+' 
+
+
+
+
+
+
+
+B
+
+B 
+B 
+
+
+B 
+
+
+' 
+
+4
+
+
+
+
+
+
+
+
+B
+
+
+B 
+
+
+B 
+
+J/K
+.u.
+.~J.~.0./u .vf/ .-/-/-/v. .vJ .v. .v/ .--/-/vJ/ .,/v. .vf/ .--/-/vJ/ .,/v/ .--v. .0-v. .v. .-/.-~.w.I
+.u./1.
+J1)3*/1K1/v./-i2Qu. .0x.1z.5+* .uf5y.0H+/2+1-*4)4)00/1/M2*x.. .v,2e2yJfxf-/-/
+
+00,00/IK/0x.RxJ
+.yf.1y..Mkz.zJh/IK/0
+J|J y.0
+[.fLM"J y..yJ y..yJh1
+Jv.0
+[.K.w..*
+
+
+
+
+
+
+
+
+ Jw. f
+f3.M.6.hlP
+fu.
+JuJ
+ff2~//L/0d5~x..x..vI,Lg fv. JvJ ff00/of.fw..w..؃vfIK Jv. J3f00/of.wJM}..uI/ JvIK.4z.K/2+1
+g.<}.J$.
+J.
+~.LgL//Hl/-KnJf ք
+~J.
+~JP-0-KM*21gNJic
+Jv.
+J,0
+}..,0
+}J5
+}J/f
+}fgh
+.u. KI/L2*2*2JRx.6
+.hL2uJhgM~J"gM/LgL
+fn`f!.y.
+f
+{ff/-L0x
+fPxJ
+f/-L
+{. fxJ.x.
+Jf
+{ff
+z..4-
+z./x.///4//y./0/
+z./ f-Kx.
+fOwJ.w..w..L,
+[.KJ
+.v.
+.v.
+.h,0~.h,.~..~.0-3,0g-/-jh s..r. Jy.//3y.60.~.-/./~./.~.fff/-/-/
+J
+.Lz
+}
+fLh/-Kg
+
+.z.4j*0
+.+1 .w.gK3+0///3KR+JJJ.2*2i2JN.5,0LK(X.22i1hhM20/*/L/4*.2*2h!J_.5hJh.20L3)4/2,x.6L3+f.10
+ 
+,
+
+
+
+
+
+
+
+
+
+
+
+
+
+l
+
+
+
+
+
+
+
+
+
+p
+v
+p
+v
+p
+v
+p
+v
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+(
+e
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 
+
+
+0
+1
+k
+l
+u
+v
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+;
+K
+R
+W
+c
+{
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 
+7
+B
+E
+H
+I
+]
+t
+z
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 
+ 
+
+
+
+
+
+
+
+"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/inc/bt_target.h b/bcm20705_bcm242/inc/bt_target.h
index e69de29..e69de29 100755
--- a/inc/bt_target.h
+++ b/bcm20705_bcm242/inc/bt_target.h
diff --git a/inc/bt_types.h b/bcm20705_bcm242/inc/bt_types.h
index f214d54..f214d54 100755
--- a/inc/bt_types.h
+++ b/bcm20705_bcm242/inc/bt_types.h
diff --git a/inc/btusb.h b/bcm20705_bcm242/inc/btusb.h
index b9995db..b9995db 100755
--- a/inc/btusb.h
+++ b/bcm20705_bcm242/inc/btusb.h
diff --git a/inc/btusb_cq.h b/bcm20705_bcm242/inc/btusb_cq.h
index 252b236..252b236 100755
--- a/inc/btusb_cq.h
+++ b/bcm20705_bcm242/inc/btusb_cq.h
diff --git a/inc/btusb_lite.h b/bcm20705_bcm242/inc/btusb_lite.h
index 0f6fe06..0f6fe06 100755
--- a/inc/btusb_lite.h
+++ b/bcm20705_bcm242/inc/btusb_lite.h
diff --git a/inc/btusb_lite_av.h b/bcm20705_bcm242/inc/btusb_lite_av.h
index 5b2f05d..5b2f05d 100755
--- a/inc/btusb_lite_av.h
+++ b/bcm20705_bcm242/inc/btusb_lite_av.h
diff --git a/inc/btusb_lite_avdt.h b/bcm20705_bcm242/inc/btusb_lite_avdt.h
index 2be89a1..2be89a1 100755
--- a/inc/btusb_lite_avdt.h
+++ b/bcm20705_bcm242/inc/btusb_lite_avdt.h
diff --git a/inc/btusb_lite_hci.h b/bcm20705_bcm242/inc/btusb_lite_hci.h
index ca634a1..ca634a1 100755
--- a/inc/btusb_lite_hci.h
+++ b/bcm20705_bcm242/inc/btusb_lite_hci.h
diff --git a/inc/btusb_lite_l2c.h b/bcm20705_bcm242/inc/btusb_lite_l2c.h
index c740a29..c740a29 100755
--- a/inc/btusb_lite_l2c.h
+++ b/bcm20705_bcm242/inc/btusb_lite_l2c.h
diff --git a/inc/btusb_proc.h b/bcm20705_bcm242/inc/btusb_proc.h
index 4a96270..4a96270 100755
--- a/inc/btusb_proc.h
+++ b/bcm20705_bcm242/inc/btusb_proc.h
diff --git a/inc/btusbext.h b/bcm20705_bcm242/inc/btusbext.h
index 4654f25..4654f25 100755
--- a/inc/btusbext.h
+++ b/bcm20705_bcm242/inc/btusbext.h
diff --git a/inc/data_types.h b/bcm20705_bcm242/inc/data_types.h
index e8ccf4b..e8ccf4b 100755
--- a/inc/data_types.h
+++ b/bcm20705_bcm242/inc/data_types.h
diff --git a/inc/gki.h b/bcm20705_bcm242/inc/gki.h
index 8b04756..8b04756 100755
--- a/inc/gki.h
+++ b/bcm20705_bcm242/inc/gki.h
diff --git a/inc/gki_int.h b/bcm20705_bcm242/inc/gki_int.h
index f210e58..f210e58 100755
--- a/inc/gki_int.h
+++ b/bcm20705_bcm242/inc/gki_int.h
diff --git a/inc/hcidefs.h b/bcm20705_bcm242/inc/hcidefs.h
index 57cd195..57cd195 100755
--- a/inc/hcidefs.h
+++ b/bcm20705_bcm242/inc/hcidefs.h
diff --git a/inc/target.h b/bcm20705_bcm242/inc/target.h
index 32b5bf9..32b5bf9 100755
--- a/inc/target.h
+++ b/bcm20705_bcm242/inc/target.h
diff --git a/bcm20705_bcm242/modules.order b/bcm20705_bcm242/modules.order
new file mode 100644
index 0000000..952a4d0
--- a/dev/null
+++ b/bcm20705_bcm242/modules.order
@@ -0,0 +1 @@
+kernel//mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/btusb.ko
diff --git a/bcm20705_bcm242/src/.btusb.o.cmd b/bcm20705_bcm242/src/.btusb.o.cmd
new file mode 100644
index 0000000..97991e6
--- a/dev/null
+++ b/bcm20705_bcm242/src/.btusb.o.cmd
@@ -0,0 +1,687 @@
+cmd_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/btusb.o := arm-linux-gnueabihf-gcc -Wp,-MD,/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/.btusb.o.d -nostdinc -isystem /opt/gcc-linaro-arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.7.3/include -I/mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include -Iarch/arm/include/generated -I/mnt/nfsroot/weiguang.ruan/m8b/common/include -Iinclude -I/mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi -Iarch/arm/include/generated/uapi -I/mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi -Iinclude/generated/uapi -include /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kconfig.h -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242 -D__KERNEL__ -mlittle-endian -I/mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/mach-mesong9tv/include -I/mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/plat-meson/include -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -Werror -Werror=enum-compare -Werror=comment -Werror=implicit-int -Werror=missing-braces -Werror=unused-value -Werror=maybe-uninitialized -Werror=unused-variable -Werror=format -Werror=unused-function -Werror=switch -Werror=strict-prototypes -Werror=declaration-after-statement -Werror=uninitialized -Werror=unused-label -Werror=undef -Werror=unused-result -Werror=return-type -Werror=parentheses -Werror=int-to-pointer-cast -Wno-error=cpp -O2 -fno-dwarf2-cfi-asm -mabi=aapcs-linux -mno-thumb-interwork -funwind-tables -marm -D__LINUX_ARM_ARCH__=7 -march=armv7-a -msoft-float -Uarm -fno-reorder-blocks -fno-ipa-cp-clone -fno-partial-inlining -Wframe-larger-than=1024 -fno-stack-protector -Wno-unused-but-set-variable -fomit-frame-pointer -g -fno-inline-functions-called-once -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -DCC_HAVE_ASM_GOTO -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242 -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/gki -DEXPORT_SYMTAB -DEXPORT_SYMTAB -DMODULE -D"KBUILD_STR(s)=\#s" -D"KBUILD_BASENAME=KBUILD_STR(btusb)" -D"KBUILD_MODNAME=KBUILD_STR(btusb)" -c -o /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/btusb.o /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/btusb.c
+
+source_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/btusb.o := /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/btusb.c
+
+deps_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/btusb.o := \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc/btusb.h \
+ include/generated/uapi/linux/version.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/usb.h \
+ $(wildcard include/config/usb/mon.h) \
+ $(wildcard include/config/pm.h) \
+ $(wildcard include/config/acpi.h) \
+ $(wildcard include/config/pm/runtime.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/mod_devicetable.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/types.h \
+ $(wildcard include/config/uid16.h) \
+ $(wildcard include/config/lbdaf.h) \
+ $(wildcard include/config/arch/dma/addr/t/64bit.h) \
+ $(wildcard include/config/phys/addr/t/64bit.h) \
+ $(wildcard include/config/64bit.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/types.h \
+ arch/arm/include/generated/asm/types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/int-ll64.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/int-ll64.h \
+ arch/arm/include/generated/asm/bitsperlong.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitsperlong.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/bitsperlong.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/posix_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/stddef.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/stddef.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/compiler.h \
+ $(wildcard include/config/sparse/rcu/pointer.h) \
+ $(wildcard include/config/trace/branch/profiling.h) \
+ $(wildcard include/config/profile/all/branches.h) \
+ $(wildcard include/config/enable/must/check.h) \
+ $(wildcard include/config/enable/warn/deprecated.h) \
+ $(wildcard include/config/kprobes.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/compiler-gcc.h \
+ $(wildcard include/config/arch/supports/optimized/inlining.h) \
+ $(wildcard include/config/optimize/inlining.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/compiler-gcc4.h \
+ $(wildcard include/config/arch/use/builtin/bswap.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/posix_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/posix_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/uuid.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/uuid.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/string.h \
+ $(wildcard include/config/binary/printf.h) \
+ /opt/gcc-linaro-arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.7.3/include/stdarg.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/string.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/string.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/usb/ch9.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/usb/ch9.h \
+ $(wildcard include/config/size.h) \
+ $(wildcard include/config/att/one.h) \
+ $(wildcard include/config/att/selfpower.h) \
+ $(wildcard include/config/att/wakeup.h) \
+ $(wildcard include/config/att/battery.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/byteorder.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/byteorder/little_endian.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/byteorder/little_endian.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/swab.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/swab.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/swab.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/swab.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/byteorder/generic.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/errno.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/errno.h \
+ arch/arm/include/generated/asm/errno.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/errno.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/errno-base.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/delay.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kernel.h \
+ $(wildcard include/config/preempt/voluntary.h) \
+ $(wildcard include/config/debug/atomic/sleep.h) \
+ $(wildcard include/config/prove/locking.h) \
+ $(wildcard include/config/ring/buffer.h) \
+ $(wildcard include/config/tracing.h) \
+ $(wildcard include/config/ftrace/mcount/record.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/linkage.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/stringify.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/export.h \
+ $(wildcard include/config/have/underscore/symbol/prefix.h) \
+ $(wildcard include/config/modules.h) \
+ $(wildcard include/config/modversions.h) \
+ $(wildcard include/config/unused/symbols.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/linkage.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bitops.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/bitops.h \
+ $(wildcard include/config/smp.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/irqflags.h \
+ $(wildcard include/config/trace/irqflags.h) \
+ $(wildcard include/config/irqsoff/tracer.h) \
+ $(wildcard include/config/preempt/tracer.h) \
+ $(wildcard include/config/trace/irqflags/support.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/typecheck.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/irqflags.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/ptrace.h \
+ $(wildcard include/config/arm/thumb.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/ptrace.h \
+ $(wildcard include/config/cpu/endian/be8.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/hwcap.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/hwcap.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/non-atomic.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/fls64.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/sched.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/hweight.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/arch_hweight.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/const_hweight.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/lock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/le.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/ext2-atomic-setbit.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/log2.h \
+ $(wildcard include/config/arch/has/ilog2/u32.h) \
+ $(wildcard include/config/arch/has/ilog2/u64.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/printk.h \
+ $(wildcard include/config/early/printk.h) \
+ $(wildcard include/config/printk.h) \
+ $(wildcard include/config/dynamic/debug.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/init.h \
+ $(wildcard include/config/broken/rodata.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kern_levels.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/dynamic_debug.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/kernel.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/sysinfo.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/div64.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/compiler.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/bug.h \
+ $(wildcard include/config/bug.h) \
+ $(wildcard include/config/thumb2/kernel.h) \
+ $(wildcard include/config/debug/bugverbose.h) \
+ $(wildcard include/config/arm/lpae.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bug.h \
+ $(wildcard include/config/generic/bug.h) \
+ $(wildcard include/config/generic/bug/relative/pointers.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/delay.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/memory.h \
+ $(wildcard include/config/need/mach/memory/h.h) \
+ $(wildcard include/config/mmu.h) \
+ $(wildcard include/config/page/offset.h) \
+ $(wildcard include/config/highmem.h) \
+ $(wildcard include/config/dram/size.h) \
+ $(wildcard include/config/dram/base.h) \
+ $(wildcard include/config/have/tcm.h) \
+ $(wildcard include/config/arm/patch/phys/virt.h) \
+ $(wildcard include/config/phys/offset.h) \
+ $(wildcard include/config/virt/to/bus.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/const.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/sizes.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/mach-mesong9tv/include/mach/memory.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/memory_model.h \
+ $(wildcard include/config/flatmem.h) \
+ $(wildcard include/config/discontigmem.h) \
+ $(wildcard include/config/sparsemem/vmemmap.h) \
+ $(wildcard include/config/sparsemem.h) \
+ arch/arm/include/generated/asm/param.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/param.h \
+ $(wildcard include/config/hz.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/param.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/interrupt.h \
+ $(wildcard include/config/generic/hardirqs.h) \
+ $(wildcard include/config/lockdep.h) \
+ $(wildcard include/config/pm/sleep.h) \
+ $(wildcard include/config/irq/forced/threading.h) \
+ $(wildcard include/config/generic/irq/probe.h) \
+ $(wildcard include/config/proc/fs.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/preempt.h \
+ $(wildcard include/config/debug/preempt.h) \
+ $(wildcard include/config/preempt.h) \
+ $(wildcard include/config/context/tracking.h) \
+ $(wildcard include/config/preempt/count.h) \
+ $(wildcard include/config/preempt/notifiers.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/thread_info.h \
+ $(wildcard include/config/compat.h) \
+ $(wildcard include/config/debug/stack/usage.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bug.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/thread_info.h \
+ $(wildcard include/config/crunch.h) \
+ $(wildcard include/config/arm/thumbee.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/fpstate.h \
+ $(wildcard include/config/vfpv3.h) \
+ $(wildcard include/config/iwmmxt.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/domain.h \
+ $(wildcard include/config/io/36.h) \
+ $(wildcard include/config/cpu/use/domains.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/barrier.h \
+ $(wildcard include/config/cpu/32v6k.h) \
+ $(wildcard include/config/cpu/xsc3.h) \
+ $(wildcard include/config/cpu/fa526.h) \
+ $(wildcard include/config/arch/has/barriers.h) \
+ $(wildcard include/config/arm/dma/mem/bufferable.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/outercache.h \
+ $(wildcard include/config/outer/cache/sync.h) \
+ $(wildcard include/config/outer/cache.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/list.h \
+ $(wildcard include/config/debug/list.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/poison.h \
+ $(wildcard include/config/illegal/pointer/value.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/cpumask.h \
+ $(wildcard include/config/cpumask/offstack.h) \
+ $(wildcard include/config/hotplug/cpu.h) \
+ $(wildcard include/config/debug/per/cpu/maps.h) \
+ $(wildcard include/config/disable/obsolete/cpumask/functions.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/threads.h \
+ $(wildcard include/config/nr/cpus.h) \
+ $(wildcard include/config/base/small.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bitmap.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/irqreturn.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/irqnr.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/irqnr.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/hardirq.h \
+ $(wildcard include/config/tiny/rcu.h) \
+ $(wildcard include/config/tiny/preempt/rcu.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/lockdep.h \
+ $(wildcard include/config/lock/stat.h) \
+ $(wildcard include/config/debug/lock/alloc.h) \
+ $(wildcard include/config/prove/rcu.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/ftrace_irq.h \
+ $(wildcard include/config/ftrace/nmi/enter.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/vtime.h \
+ $(wildcard include/config/virt/cpu/accounting.h) \
+ $(wildcard include/config/virt/cpu/accounting/native.h) \
+ $(wildcard include/config/virt/cpu/accounting/gen.h) \
+ $(wildcard include/config/irq/time/accounting.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/hardirq.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/cache.h \
+ $(wildcard include/config/arch/has/cache/line/size.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/cache.h \
+ $(wildcard include/config/arm/l1/cache/shift.h) \
+ $(wildcard include/config/aeabi.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/irq.h \
+ $(wildcard include/config/sparse/irq.h) \
+ $(wildcard include/config/multi/irq/handler.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/mach-mesong9tv/include/mach/irqs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/irq_cpustat.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/smp.h \
+ $(wildcard include/config/use/generic/smp/helpers.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/smp.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/percpu.h \
+ $(wildcard include/config/need/per/cpu/embed/first/chunk.h) \
+ $(wildcard include/config/need/per/cpu/page/first/chunk.h) \
+ $(wildcard include/config/have/setup/per/cpu/area.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pfn.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/percpu.h \
+ $(wildcard include/config/cpu/v6.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/percpu.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/percpu-defs.h \
+ $(wildcard include/config/debug/force/weak/per/cpu.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/hrtimer.h \
+ $(wildcard include/config/timer/stats.h) \
+ $(wildcard include/config/high/res/timers.h) \
+ $(wildcard include/config/timerfd.h) \
+ $(wildcard include/config/debug/objects/timers.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rbtree.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/ktime.h \
+ $(wildcard include/config/ktime/scalar.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/time.h \
+ $(wildcard include/config/arch/uses/gettimeoffset.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/seqlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/spinlock.h \
+ $(wildcard include/config/debug/spinlock.h) \
+ $(wildcard include/config/generic/lockbreak.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bottom_half.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/spinlock_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/spinlock_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwlock_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/spinlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/processor.h \
+ $(wildcard include/config/have/hw/breakpoint.h) \
+ $(wildcard include/config/arm/errata/754327.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/hw_breakpoint.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/spinlock_api_smp.h \
+ $(wildcard include/config/inline/spin/lock.h) \
+ $(wildcard include/config/inline/spin/lock/bh.h) \
+ $(wildcard include/config/inline/spin/lock/irq.h) \
+ $(wildcard include/config/inline/spin/lock/irqsave.h) \
+ $(wildcard include/config/inline/spin/trylock.h) \
+ $(wildcard include/config/inline/spin/trylock/bh.h) \
+ $(wildcard include/config/uninline/spin/unlock.h) \
+ $(wildcard include/config/inline/spin/unlock/bh.h) \
+ $(wildcard include/config/inline/spin/unlock/irq.h) \
+ $(wildcard include/config/inline/spin/unlock/irqrestore.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwlock_api_smp.h \
+ $(wildcard include/config/inline/read/lock.h) \
+ $(wildcard include/config/inline/write/lock.h) \
+ $(wildcard include/config/inline/read/lock/bh.h) \
+ $(wildcard include/config/inline/write/lock/bh.h) \
+ $(wildcard include/config/inline/read/lock/irq.h) \
+ $(wildcard include/config/inline/write/lock/irq.h) \
+ $(wildcard include/config/inline/read/lock/irqsave.h) \
+ $(wildcard include/config/inline/write/lock/irqsave.h) \
+ $(wildcard include/config/inline/read/trylock.h) \
+ $(wildcard include/config/inline/write/trylock.h) \
+ $(wildcard include/config/inline/read/unlock.h) \
+ $(wildcard include/config/inline/write/unlock.h) \
+ $(wildcard include/config/inline/read/unlock/bh.h) \
+ $(wildcard include/config/inline/write/unlock/bh.h) \
+ $(wildcard include/config/inline/read/unlock/irq.h) \
+ $(wildcard include/config/inline/write/unlock/irq.h) \
+ $(wildcard include/config/inline/read/unlock/irqrestore.h) \
+ $(wildcard include/config/inline/write/unlock/irqrestore.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/atomic.h \
+ $(wildcard include/config/arch/has/atomic/or.h) \
+ $(wildcard include/config/generic/atomic64.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/atomic.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/cmpxchg.h \
+ $(wildcard include/config/cpu/sa1100.h) \
+ $(wildcard include/config/cpu/sa110.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/cmpxchg-local.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/atomic-long.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/math64.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/time.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/jiffies.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/timex.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/timex.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/param.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/timex.h \
+ $(wildcard include/config/arch/multiplatform.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/mach-mesong9tv/include/mach/timex.h \
+ $(wildcard include/config/meson/clock/tick/rate.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/wait.h \
+ arch/arm/include/generated/asm/current.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/current.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/wait.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/timer.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/debugobjects.h \
+ $(wildcard include/config/debug/objects.h) \
+ $(wildcard include/config/debug/objects/free.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/timerqueue.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kref.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/mutex.h \
+ $(wildcard include/config/debug/mutexes.h) \
+ $(wildcard include/config/mutex/spin/on/owner.h) \
+ $(wildcard include/config/have/arch/mutex/cpu/relax.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/workqueue.h \
+ $(wildcard include/config/debug/objects/work.h) \
+ $(wildcard include/config/freezer.h) \
+ $(wildcard include/config/sysfs.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/device.h \
+ $(wildcard include/config/debug/devres.h) \
+ $(wildcard include/config/pinctrl.h) \
+ $(wildcard include/config/numa.h) \
+ $(wildcard include/config/cma.h) \
+ $(wildcard include/config/devtmpfs.h) \
+ $(wildcard include/config/sysfs/deprecated.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/ioport.h \
+ $(wildcard include/config/memory/hotremove.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kobject.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/sysfs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kobject_ns.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/klist.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pinctrl/devinfo.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pinctrl/consumer.h \
+ $(wildcard include/config/pinconf.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/err.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/seq_file.h \
+ $(wildcard include/config/user/ns.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/nodemask.h \
+ $(wildcard include/config/movable/node.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/numa.h \
+ $(wildcard include/config/nodes/shift.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pinctrl/pinctrl-state.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pinctrl/machine.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pm.h \
+ $(wildcard include/config/vt/console/sleep.h) \
+ $(wildcard include/config/pm/clk.h) \
+ $(wildcard include/config/pm/generic/domains.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/completion.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/ratelimit.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/uidgid.h \
+ $(wildcard include/config/uidgid/strict/type/checks.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/highuid.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/device.h \
+ $(wildcard include/config/dmabounce.h) \
+ $(wildcard include/config/iommu/api.h) \
+ $(wildcard include/config/arm/dma/use/iommu.h) \
+ $(wildcard include/config/arch/omap.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pm_wakeup.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/fs.h \
+ $(wildcard include/config/fs/posix/acl.h) \
+ $(wildcard include/config/security.h) \
+ $(wildcard include/config/quota.h) \
+ $(wildcard include/config/fsnotify.h) \
+ $(wildcard include/config/ima.h) \
+ $(wildcard include/config/epoll.h) \
+ $(wildcard include/config/debug/writecount.h) \
+ $(wildcard include/config/file/locking.h) \
+ $(wildcard include/config/auditsyscall.h) \
+ $(wildcard include/config/block.h) \
+ $(wildcard include/config/fs/xip.h) \
+ $(wildcard include/config/migration.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kdev_t.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/kdev_t.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/dcache.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rculist.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rcupdate.h \
+ $(wildcard include/config/rcu/torture/test.h) \
+ $(wildcard include/config/tree/rcu.h) \
+ $(wildcard include/config/tree/preempt/rcu.h) \
+ $(wildcard include/config/rcu/trace.h) \
+ $(wildcard include/config/preempt/rcu.h) \
+ $(wildcard include/config/rcu/user/qs.h) \
+ $(wildcard include/config/debug/objects/rcu/head.h) \
+ $(wildcard include/config/rcu/nocb/cpu.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rcutree.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rculist_bl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/list_bl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bit_spinlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/path.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/stat.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/stat.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/stat.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/radix-tree.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pid.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/capability.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/capability.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/semaphore.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/fiemap.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/shrinker.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/migrate_mode.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/percpu-rwsem.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwsem.h \
+ $(wildcard include/config/rwsem/generic/spinlock.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwsem-spinlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/blk_types.h \
+ $(wildcard include/config/blk/cgroup.h) \
+ $(wildcard include/config/blk/dev/integrity.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/fs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/limits.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/ioctl.h \
+ arch/arm/include/generated/asm/ioctl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/ioctl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/ioctl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/quota.h \
+ $(wildcard include/config/quota/netlink/interface.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/percpu_counter.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/dqblk_xfs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/dqblk_v1.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/dqblk_v2.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/dqblk_qtree.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/projid.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/quota.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/nfs_fs_i.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/fcntl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/fcntl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/fcntl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/fcntl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/sched.h \
+ $(wildcard include/config/sched/debug.h) \
+ $(wildcard include/config/no/hz/common.h) \
+ $(wildcard include/config/lockup/detector.h) \
+ $(wildcard include/config/core/dump/default/elf/headers.h) \
+ $(wildcard include/config/sched/autogroup.h) \
+ $(wildcard include/config/bsd/process/acct.h) \
+ $(wildcard include/config/taskstats.h) \
+ $(wildcard include/config/audit.h) \
+ $(wildcard include/config/cgroups.h) \
+ $(wildcard include/config/inotify/user.h) \
+ $(wildcard include/config/fanotify.h) \
+ $(wildcard include/config/posix/mqueue.h) \
+ $(wildcard include/config/keys.h) \
+ $(wildcard include/config/perf/events.h) \
+ $(wildcard include/config/schedstats.h) \
+ $(wildcard include/config/task/delay/acct.h) \
+ $(wildcard include/config/fair/group/sched.h) \
+ $(wildcard include/config/rt/group/sched.h) \
+ $(wildcard include/config/cgroup/sched.h) \
+ $(wildcard include/config/blk/dev/io/trace.h) \
+ $(wildcard include/config/rcu/boost.h) \
+ $(wildcard include/config/compat/brk.h) \
+ $(wildcard include/config/cc/stackprotector.h) \
+ $(wildcard include/config/sysvipc.h) \
+ $(wildcard include/config/detect/hung/task.h) \
+ $(wildcard include/config/rt/mutexes.h) \
+ $(wildcard include/config/task/xacct.h) \
+ $(wildcard include/config/cpusets.h) \
+ $(wildcard include/config/futex.h) \
+ $(wildcard include/config/numa/balancing.h) \
+ $(wildcard include/config/fault/injection.h) \
+ $(wildcard include/config/latencytop.h) \
+ $(wildcard include/config/function/graph/tracer.h) \
+ $(wildcard include/config/memcg.h) \
+ $(wildcard include/config/uprobes.h) \
+ $(wildcard include/config/bcache.h) \
+ $(wildcard include/config/have/unstable/sched/clock.h) \
+ $(wildcard include/config/no/hz/full.h) \
+ $(wildcard include/config/stack/growsup.h) \
+ $(wildcard include/config/mm/owner.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/sched.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/mm_types.h \
+ $(wildcard include/config/split/ptlock/cpus.h) \
+ $(wildcard include/config/have/cmpxchg/double.h) \
+ $(wildcard include/config/have/aligned/struct/page.h) \
+ $(wildcard include/config/want/page/debug/flags.h) \
+ $(wildcard include/config/kmemcheck.h) \
+ $(wildcard include/config/aio.h) \
+ $(wildcard include/config/mmu/notifier.h) \
+ $(wildcard include/config/transparent/hugepage.h) \
+ $(wildcard include/config/compaction.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/auxvec.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/auxvec.h \
+ arch/arm/include/generated/asm/auxvec.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/auxvec.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/page-debug-flags.h \
+ $(wildcard include/config/page/poisoning.h) \
+ $(wildcard include/config/page/guard.h) \
+ $(wildcard include/config/page/debug/something/else.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/uprobes.h \
+ $(wildcard include/config/arch/supports/uprobes.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/page-flags-layout.h \
+ include/generated/bounds.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/page.h \
+ $(wildcard include/config/cpu/copy/v4wt.h) \
+ $(wildcard include/config/cpu/copy/v4wb.h) \
+ $(wildcard include/config/cpu/copy/feroceon.h) \
+ $(wildcard include/config/cpu/copy/fa.h) \
+ $(wildcard include/config/cpu/xscale.h) \
+ $(wildcard include/config/cpu/copy/v6.h) \
+ $(wildcard include/config/kuser/helpers.h) \
+ $(wildcard include/config/have/arch/pfn/valid.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/glue.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/pgtable-2level-types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/getorder.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/mmu.h \
+ $(wildcard include/config/cpu/has/asid.h) \
+ arch/arm/include/generated/asm/cputime.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/cputime.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/cputime_jiffies.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/sem.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/sem.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/ipc.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/ipc.h \
+ arch/arm/include/generated/asm/ipcbuf.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/ipcbuf.h \
+ arch/arm/include/generated/asm/sembuf.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/sembuf.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/signal.h \
+ $(wildcard include/config/old/sigaction.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/signal.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/signal.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/signal.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/signal-defs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/sigcontext.h \
+ arch/arm/include/generated/asm/siginfo.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/siginfo.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/siginfo.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/topology.h \
+ $(wildcard include/config/sched/smt.h) \
+ $(wildcard include/config/sched/mc.h) \
+ $(wildcard include/config/sched/book.h) \
+ $(wildcard include/config/use/percpu/numa/node/id.h) \
+ $(wildcard include/config/have/memoryless/nodes.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/mmzone.h \
+ $(wildcard include/config/force/max/zoneorder.h) \
+ $(wildcard include/config/memory/isolation.h) \
+ $(wildcard include/config/zone/dma.h) \
+ $(wildcard include/config/zone/dma32.h) \
+ $(wildcard include/config/memory/hotplug.h) \
+ $(wildcard include/config/have/memblock/node/map.h) \
+ $(wildcard include/config/flat/node/mem/map.h) \
+ $(wildcard include/config/no/bootmem.h) \
+ $(wildcard include/config/have/memory/present.h) \
+ $(wildcard include/config/need/node/memmap/size.h) \
+ $(wildcard include/config/need/multiple/nodes.h) \
+ $(wildcard include/config/have/arch/early/pfn/to/nid.h) \
+ $(wildcard include/config/sparsemem/extreme.h) \
+ $(wildcard include/config/nodes/span/other/nodes.h) \
+ $(wildcard include/config/holes/in/zone.h) \
+ $(wildcard include/config/arch/has/holes/memorymodel.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pageblock-flags.h \
+ $(wildcard include/config/hugetlb/page.h) \
+ $(wildcard include/config/hugetlb/page/size/variable.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/sysctl.h \
+ $(wildcard include/config/sysctl.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/sysctl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/memory_hotplug.h \
+ $(wildcard include/config/have/arch/nodedata/extension.h) \
+ $(wildcard include/config/have/bootmem/info/node.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/notifier.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/srcu.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/topology.h \
+ $(wildcard include/config/arm/cpu/topology.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/topology.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/proportions.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/seccomp.h \
+ $(wildcard include/config/seccomp.h) \
+ $(wildcard include/config/seccomp/filter.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/seccomp.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rtmutex.h \
+ $(wildcard include/config/debug/rt/mutexes.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/plist.h \
+ $(wildcard include/config/debug/pi/list.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/resource.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/resource.h \
+ arch/arm/include/generated/asm/resource.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/resource.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/resource.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/task_io_accounting.h \
+ $(wildcard include/config/task/io/accounting.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/latencytop.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/cred.h \
+ $(wildcard include/config/debug/credentials.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/key.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/selinux.h \
+ $(wildcard include/config/security/selinux.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/llist.h \
+ $(wildcard include/config/arch/have/nmi/safe/cmpxchg.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/gfp.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/mmdebug.h \
+ $(wildcard include/config/debug/vm.h) \
+ $(wildcard include/config/debug/virtual.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pm_runtime.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/tty.h \
+ $(wildcard include/config/tty.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/major.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/termios.h \
+ arch/arm/include/generated/asm/termios.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/termios.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/uaccess.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/unified.h \
+ $(wildcard include/config/arm/asm/unified.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/termios.h \
+ arch/arm/include/generated/asm/termbits.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/termbits.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/ioctls.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/ioctls.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/tty_driver.h \
+ $(wildcard include/config/console/poll.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/cdev.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/tty_ldisc.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/tty_flags.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/tty.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc/bt_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc/data_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc/btusb_cq.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc/gki_int.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc/gki.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc/target.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc/btusbext.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/module.h \
+ $(wildcard include/config/module/sig.h) \
+ $(wildcard include/config/kallsyms.h) \
+ $(wildcard include/config/tracepoints.h) \
+ $(wildcard include/config/event/tracing.h) \
+ $(wildcard include/config/module/unload.h) \
+ $(wildcard include/config/constructors.h) \
+ $(wildcard include/config/debug/set/module/ronx.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kmod.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/elf.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/elf.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/user.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/elf.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/elf-em.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/moduleparam.h \
+ $(wildcard include/config/alpha.h) \
+ $(wildcard include/config/ia64.h) \
+ $(wildcard include/config/ppc64.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/tracepoint.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/static_key.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/jump_label.h \
+ $(wildcard include/config/jump/label.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/module.h \
+ $(wildcard include/config/arm/unwind.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/module.h \
+ $(wildcard include/config/have/mod/arch/specific.h) \
+ $(wildcard include/config/modules/use/elf/rel.h) \
+ $(wildcard include/config/modules/use/elf/rela.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/slab.h \
+ $(wildcard include/config/slab/debug.h) \
+ $(wildcard include/config/failslab.h) \
+ $(wildcard include/config/slob.h) \
+ $(wildcard include/config/slab.h) \
+ $(wildcard include/config/slub.h) \
+ $(wildcard include/config/debug/slab.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/slub_def.h \
+ $(wildcard include/config/slub/stats.h) \
+ $(wildcard include/config/memcg/kmem.h) \
+ $(wildcard include/config/slub/debug.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kmemleak.h \
+ $(wildcard include/config/debug/kmemleak.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc/hcidefs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc/btusb_proc.h \
+
+/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/btusb.o: $(deps_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/btusb.o)
+
+$(deps_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/btusb.o):
diff --git a/bcm20705_bcm242/src/.btusb_dev.o.cmd b/bcm20705_bcm242/src/.btusb_dev.o.cmd
new file mode 100644
index 0000000..1df5737
--- a/dev/null
+++ b/bcm20705_bcm242/src/.btusb_dev.o.cmd
@@ -0,0 +1,694 @@
+cmd_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/btusb_dev.o := arm-linux-gnueabihf-gcc -Wp,-MD,/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/.btusb_dev.o.d -nostdinc -isystem /opt/gcc-linaro-arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.7.3/include -I/mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include -Iarch/arm/include/generated -I/mnt/nfsroot/weiguang.ruan/m8b/common/include -Iinclude -I/mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi -Iarch/arm/include/generated/uapi -I/mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi -Iinclude/generated/uapi -include /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kconfig.h -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242 -D__KERNEL__ -mlittle-endian -I/mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/mach-mesong9tv/include -I/mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/plat-meson/include -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -Werror -Werror=enum-compare -Werror=comment -Werror=implicit-int -Werror=missing-braces -Werror=unused-value -Werror=maybe-uninitialized -Werror=unused-variable -Werror=format -Werror=unused-function -Werror=switch -Werror=strict-prototypes -Werror=declaration-after-statement -Werror=uninitialized -Werror=unused-label -Werror=undef -Werror=unused-result -Werror=return-type -Werror=parentheses -Werror=int-to-pointer-cast -Wno-error=cpp -O2 -fno-dwarf2-cfi-asm -mabi=aapcs-linux -mno-thumb-interwork -funwind-tables -marm -D__LINUX_ARM_ARCH__=7 -march=armv7-a -msoft-float -Uarm -fno-reorder-blocks -fno-ipa-cp-clone -fno-partial-inlining -Wframe-larger-than=1024 -fno-stack-protector -Wno-unused-but-set-variable -fomit-frame-pointer -g -fno-inline-functions-called-once -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -DCC_HAVE_ASM_GOTO -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242 -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/gki -DEXPORT_SYMTAB -DEXPORT_SYMTAB -DMODULE -D"KBUILD_STR(s)=\#s" -D"KBUILD_BASENAME=KBUILD_STR(btusb_dev)" -D"KBUILD_MODNAME=KBUILD_STR(btusb)" -c -o /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/btusb_dev.o /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/btusb_dev.c
+
+source_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/btusb_dev.o := /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/btusb_dev.c
+
+deps_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/btusb_dev.o := \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc/btusb.h \
+ include/generated/uapi/linux/version.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/usb.h \
+ $(wildcard include/config/usb/mon.h) \
+ $(wildcard include/config/pm.h) \
+ $(wildcard include/config/acpi.h) \
+ $(wildcard include/config/pm/runtime.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/mod_devicetable.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/types.h \
+ $(wildcard include/config/uid16.h) \
+ $(wildcard include/config/lbdaf.h) \
+ $(wildcard include/config/arch/dma/addr/t/64bit.h) \
+ $(wildcard include/config/phys/addr/t/64bit.h) \
+ $(wildcard include/config/64bit.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/types.h \
+ arch/arm/include/generated/asm/types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/int-ll64.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/int-ll64.h \
+ arch/arm/include/generated/asm/bitsperlong.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitsperlong.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/bitsperlong.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/posix_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/stddef.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/stddef.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/compiler.h \
+ $(wildcard include/config/sparse/rcu/pointer.h) \
+ $(wildcard include/config/trace/branch/profiling.h) \
+ $(wildcard include/config/profile/all/branches.h) \
+ $(wildcard include/config/enable/must/check.h) \
+ $(wildcard include/config/enable/warn/deprecated.h) \
+ $(wildcard include/config/kprobes.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/compiler-gcc.h \
+ $(wildcard include/config/arch/supports/optimized/inlining.h) \
+ $(wildcard include/config/optimize/inlining.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/compiler-gcc4.h \
+ $(wildcard include/config/arch/use/builtin/bswap.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/posix_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/posix_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/uuid.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/uuid.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/string.h \
+ $(wildcard include/config/binary/printf.h) \
+ /opt/gcc-linaro-arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.7.3/include/stdarg.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/string.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/string.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/usb/ch9.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/usb/ch9.h \
+ $(wildcard include/config/size.h) \
+ $(wildcard include/config/att/one.h) \
+ $(wildcard include/config/att/selfpower.h) \
+ $(wildcard include/config/att/wakeup.h) \
+ $(wildcard include/config/att/battery.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/byteorder.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/byteorder/little_endian.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/byteorder/little_endian.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/swab.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/swab.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/swab.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/swab.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/byteorder/generic.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/errno.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/errno.h \
+ arch/arm/include/generated/asm/errno.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/errno.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/errno-base.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/delay.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kernel.h \
+ $(wildcard include/config/preempt/voluntary.h) \
+ $(wildcard include/config/debug/atomic/sleep.h) \
+ $(wildcard include/config/prove/locking.h) \
+ $(wildcard include/config/ring/buffer.h) \
+ $(wildcard include/config/tracing.h) \
+ $(wildcard include/config/ftrace/mcount/record.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/linkage.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/stringify.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/export.h \
+ $(wildcard include/config/have/underscore/symbol/prefix.h) \
+ $(wildcard include/config/modules.h) \
+ $(wildcard include/config/modversions.h) \
+ $(wildcard include/config/unused/symbols.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/linkage.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bitops.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/bitops.h \
+ $(wildcard include/config/smp.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/irqflags.h \
+ $(wildcard include/config/trace/irqflags.h) \
+ $(wildcard include/config/irqsoff/tracer.h) \
+ $(wildcard include/config/preempt/tracer.h) \
+ $(wildcard include/config/trace/irqflags/support.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/typecheck.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/irqflags.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/ptrace.h \
+ $(wildcard include/config/arm/thumb.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/ptrace.h \
+ $(wildcard include/config/cpu/endian/be8.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/hwcap.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/hwcap.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/non-atomic.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/fls64.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/sched.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/hweight.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/arch_hweight.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/const_hweight.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/lock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/le.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/ext2-atomic-setbit.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/log2.h \
+ $(wildcard include/config/arch/has/ilog2/u32.h) \
+ $(wildcard include/config/arch/has/ilog2/u64.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/printk.h \
+ $(wildcard include/config/early/printk.h) \
+ $(wildcard include/config/printk.h) \
+ $(wildcard include/config/dynamic/debug.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/init.h \
+ $(wildcard include/config/broken/rodata.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kern_levels.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/dynamic_debug.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/kernel.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/sysinfo.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/div64.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/compiler.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/bug.h \
+ $(wildcard include/config/bug.h) \
+ $(wildcard include/config/thumb2/kernel.h) \
+ $(wildcard include/config/debug/bugverbose.h) \
+ $(wildcard include/config/arm/lpae.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bug.h \
+ $(wildcard include/config/generic/bug.h) \
+ $(wildcard include/config/generic/bug/relative/pointers.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/delay.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/memory.h \
+ $(wildcard include/config/need/mach/memory/h.h) \
+ $(wildcard include/config/mmu.h) \
+ $(wildcard include/config/page/offset.h) \
+ $(wildcard include/config/highmem.h) \
+ $(wildcard include/config/dram/size.h) \
+ $(wildcard include/config/dram/base.h) \
+ $(wildcard include/config/have/tcm.h) \
+ $(wildcard include/config/arm/patch/phys/virt.h) \
+ $(wildcard include/config/phys/offset.h) \
+ $(wildcard include/config/virt/to/bus.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/const.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/sizes.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/mach-mesong9tv/include/mach/memory.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/memory_model.h \
+ $(wildcard include/config/flatmem.h) \
+ $(wildcard include/config/discontigmem.h) \
+ $(wildcard include/config/sparsemem/vmemmap.h) \
+ $(wildcard include/config/sparsemem.h) \
+ arch/arm/include/generated/asm/param.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/param.h \
+ $(wildcard include/config/hz.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/param.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/interrupt.h \
+ $(wildcard include/config/generic/hardirqs.h) \
+ $(wildcard include/config/lockdep.h) \
+ $(wildcard include/config/pm/sleep.h) \
+ $(wildcard include/config/irq/forced/threading.h) \
+ $(wildcard include/config/generic/irq/probe.h) \
+ $(wildcard include/config/proc/fs.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/preempt.h \
+ $(wildcard include/config/debug/preempt.h) \
+ $(wildcard include/config/preempt.h) \
+ $(wildcard include/config/context/tracking.h) \
+ $(wildcard include/config/preempt/count.h) \
+ $(wildcard include/config/preempt/notifiers.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/thread_info.h \
+ $(wildcard include/config/compat.h) \
+ $(wildcard include/config/debug/stack/usage.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bug.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/thread_info.h \
+ $(wildcard include/config/crunch.h) \
+ $(wildcard include/config/arm/thumbee.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/fpstate.h \
+ $(wildcard include/config/vfpv3.h) \
+ $(wildcard include/config/iwmmxt.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/domain.h \
+ $(wildcard include/config/io/36.h) \
+ $(wildcard include/config/cpu/use/domains.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/barrier.h \
+ $(wildcard include/config/cpu/32v6k.h) \
+ $(wildcard include/config/cpu/xsc3.h) \
+ $(wildcard include/config/cpu/fa526.h) \
+ $(wildcard include/config/arch/has/barriers.h) \
+ $(wildcard include/config/arm/dma/mem/bufferable.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/outercache.h \
+ $(wildcard include/config/outer/cache/sync.h) \
+ $(wildcard include/config/outer/cache.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/list.h \
+ $(wildcard include/config/debug/list.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/poison.h \
+ $(wildcard include/config/illegal/pointer/value.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/cpumask.h \
+ $(wildcard include/config/cpumask/offstack.h) \
+ $(wildcard include/config/hotplug/cpu.h) \
+ $(wildcard include/config/debug/per/cpu/maps.h) \
+ $(wildcard include/config/disable/obsolete/cpumask/functions.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/threads.h \
+ $(wildcard include/config/nr/cpus.h) \
+ $(wildcard include/config/base/small.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bitmap.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/irqreturn.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/irqnr.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/irqnr.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/hardirq.h \
+ $(wildcard include/config/tiny/rcu.h) \
+ $(wildcard include/config/tiny/preempt/rcu.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/lockdep.h \
+ $(wildcard include/config/lock/stat.h) \
+ $(wildcard include/config/debug/lock/alloc.h) \
+ $(wildcard include/config/prove/rcu.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/ftrace_irq.h \
+ $(wildcard include/config/ftrace/nmi/enter.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/vtime.h \
+ $(wildcard include/config/virt/cpu/accounting.h) \
+ $(wildcard include/config/virt/cpu/accounting/native.h) \
+ $(wildcard include/config/virt/cpu/accounting/gen.h) \
+ $(wildcard include/config/irq/time/accounting.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/hardirq.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/cache.h \
+ $(wildcard include/config/arch/has/cache/line/size.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/cache.h \
+ $(wildcard include/config/arm/l1/cache/shift.h) \
+ $(wildcard include/config/aeabi.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/irq.h \
+ $(wildcard include/config/sparse/irq.h) \
+ $(wildcard include/config/multi/irq/handler.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/mach-mesong9tv/include/mach/irqs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/irq_cpustat.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/smp.h \
+ $(wildcard include/config/use/generic/smp/helpers.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/smp.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/percpu.h \
+ $(wildcard include/config/need/per/cpu/embed/first/chunk.h) \
+ $(wildcard include/config/need/per/cpu/page/first/chunk.h) \
+ $(wildcard include/config/have/setup/per/cpu/area.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pfn.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/percpu.h \
+ $(wildcard include/config/cpu/v6.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/percpu.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/percpu-defs.h \
+ $(wildcard include/config/debug/force/weak/per/cpu.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/hrtimer.h \
+ $(wildcard include/config/timer/stats.h) \
+ $(wildcard include/config/high/res/timers.h) \
+ $(wildcard include/config/timerfd.h) \
+ $(wildcard include/config/debug/objects/timers.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rbtree.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/ktime.h \
+ $(wildcard include/config/ktime/scalar.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/time.h \
+ $(wildcard include/config/arch/uses/gettimeoffset.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/seqlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/spinlock.h \
+ $(wildcard include/config/debug/spinlock.h) \
+ $(wildcard include/config/generic/lockbreak.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bottom_half.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/spinlock_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/spinlock_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwlock_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/spinlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/processor.h \
+ $(wildcard include/config/have/hw/breakpoint.h) \
+ $(wildcard include/config/arm/errata/754327.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/hw_breakpoint.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/spinlock_api_smp.h \
+ $(wildcard include/config/inline/spin/lock.h) \
+ $(wildcard include/config/inline/spin/lock/bh.h) \
+ $(wildcard include/config/inline/spin/lock/irq.h) \
+ $(wildcard include/config/inline/spin/lock/irqsave.h) \
+ $(wildcard include/config/inline/spin/trylock.h) \
+ $(wildcard include/config/inline/spin/trylock/bh.h) \
+ $(wildcard include/config/uninline/spin/unlock.h) \
+ $(wildcard include/config/inline/spin/unlock/bh.h) \
+ $(wildcard include/config/inline/spin/unlock/irq.h) \
+ $(wildcard include/config/inline/spin/unlock/irqrestore.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwlock_api_smp.h \
+ $(wildcard include/config/inline/read/lock.h) \
+ $(wildcard include/config/inline/write/lock.h) \
+ $(wildcard include/config/inline/read/lock/bh.h) \
+ $(wildcard include/config/inline/write/lock/bh.h) \
+ $(wildcard include/config/inline/read/lock/irq.h) \
+ $(wildcard include/config/inline/write/lock/irq.h) \
+ $(wildcard include/config/inline/read/lock/irqsave.h) \
+ $(wildcard include/config/inline/write/lock/irqsave.h) \
+ $(wildcard include/config/inline/read/trylock.h) \
+ $(wildcard include/config/inline/write/trylock.h) \
+ $(wildcard include/config/inline/read/unlock.h) \
+ $(wildcard include/config/inline/write/unlock.h) \
+ $(wildcard include/config/inline/read/unlock/bh.h) \
+ $(wildcard include/config/inline/write/unlock/bh.h) \
+ $(wildcard include/config/inline/read/unlock/irq.h) \
+ $(wildcard include/config/inline/write/unlock/irq.h) \
+ $(wildcard include/config/inline/read/unlock/irqrestore.h) \
+ $(wildcard include/config/inline/write/unlock/irqrestore.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/atomic.h \
+ $(wildcard include/config/arch/has/atomic/or.h) \
+ $(wildcard include/config/generic/atomic64.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/atomic.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/cmpxchg.h \
+ $(wildcard include/config/cpu/sa1100.h) \
+ $(wildcard include/config/cpu/sa110.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/cmpxchg-local.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/atomic-long.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/math64.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/time.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/jiffies.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/timex.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/timex.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/param.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/timex.h \
+ $(wildcard include/config/arch/multiplatform.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/mach-mesong9tv/include/mach/timex.h \
+ $(wildcard include/config/meson/clock/tick/rate.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/wait.h \
+ arch/arm/include/generated/asm/current.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/current.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/wait.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/timer.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/debugobjects.h \
+ $(wildcard include/config/debug/objects.h) \
+ $(wildcard include/config/debug/objects/free.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/timerqueue.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kref.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/mutex.h \
+ $(wildcard include/config/debug/mutexes.h) \
+ $(wildcard include/config/mutex/spin/on/owner.h) \
+ $(wildcard include/config/have/arch/mutex/cpu/relax.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/workqueue.h \
+ $(wildcard include/config/debug/objects/work.h) \
+ $(wildcard include/config/freezer.h) \
+ $(wildcard include/config/sysfs.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/device.h \
+ $(wildcard include/config/debug/devres.h) \
+ $(wildcard include/config/pinctrl.h) \
+ $(wildcard include/config/numa.h) \
+ $(wildcard include/config/cma.h) \
+ $(wildcard include/config/devtmpfs.h) \
+ $(wildcard include/config/sysfs/deprecated.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/ioport.h \
+ $(wildcard include/config/memory/hotremove.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kobject.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/sysfs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kobject_ns.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/klist.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pinctrl/devinfo.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pinctrl/consumer.h \
+ $(wildcard include/config/pinconf.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/err.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/seq_file.h \
+ $(wildcard include/config/user/ns.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/nodemask.h \
+ $(wildcard include/config/movable/node.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/numa.h \
+ $(wildcard include/config/nodes/shift.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pinctrl/pinctrl-state.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pinctrl/machine.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pm.h \
+ $(wildcard include/config/vt/console/sleep.h) \
+ $(wildcard include/config/pm/clk.h) \
+ $(wildcard include/config/pm/generic/domains.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/completion.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/ratelimit.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/uidgid.h \
+ $(wildcard include/config/uidgid/strict/type/checks.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/highuid.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/device.h \
+ $(wildcard include/config/dmabounce.h) \
+ $(wildcard include/config/iommu/api.h) \
+ $(wildcard include/config/arm/dma/use/iommu.h) \
+ $(wildcard include/config/arch/omap.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pm_wakeup.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/fs.h \
+ $(wildcard include/config/fs/posix/acl.h) \
+ $(wildcard include/config/security.h) \
+ $(wildcard include/config/quota.h) \
+ $(wildcard include/config/fsnotify.h) \
+ $(wildcard include/config/ima.h) \
+ $(wildcard include/config/epoll.h) \
+ $(wildcard include/config/debug/writecount.h) \
+ $(wildcard include/config/file/locking.h) \
+ $(wildcard include/config/auditsyscall.h) \
+ $(wildcard include/config/block.h) \
+ $(wildcard include/config/fs/xip.h) \
+ $(wildcard include/config/migration.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kdev_t.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/kdev_t.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/dcache.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rculist.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rcupdate.h \
+ $(wildcard include/config/rcu/torture/test.h) \
+ $(wildcard include/config/tree/rcu.h) \
+ $(wildcard include/config/tree/preempt/rcu.h) \
+ $(wildcard include/config/rcu/trace.h) \
+ $(wildcard include/config/preempt/rcu.h) \
+ $(wildcard include/config/rcu/user/qs.h) \
+ $(wildcard include/config/debug/objects/rcu/head.h) \
+ $(wildcard include/config/rcu/nocb/cpu.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rcutree.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rculist_bl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/list_bl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bit_spinlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/path.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/stat.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/stat.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/stat.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/radix-tree.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pid.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/capability.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/capability.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/semaphore.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/fiemap.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/shrinker.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/migrate_mode.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/percpu-rwsem.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwsem.h \
+ $(wildcard include/config/rwsem/generic/spinlock.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwsem-spinlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/blk_types.h \
+ $(wildcard include/config/blk/cgroup.h) \
+ $(wildcard include/config/blk/dev/integrity.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/fs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/limits.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/ioctl.h \
+ arch/arm/include/generated/asm/ioctl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/ioctl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/ioctl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/quota.h \
+ $(wildcard include/config/quota/netlink/interface.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/percpu_counter.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/dqblk_xfs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/dqblk_v1.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/dqblk_v2.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/dqblk_qtree.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/projid.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/quota.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/nfs_fs_i.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/fcntl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/fcntl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/fcntl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/fcntl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/sched.h \
+ $(wildcard include/config/sched/debug.h) \
+ $(wildcard include/config/no/hz/common.h) \
+ $(wildcard include/config/lockup/detector.h) \
+ $(wildcard include/config/core/dump/default/elf/headers.h) \
+ $(wildcard include/config/sched/autogroup.h) \
+ $(wildcard include/config/bsd/process/acct.h) \
+ $(wildcard include/config/taskstats.h) \
+ $(wildcard include/config/audit.h) \
+ $(wildcard include/config/cgroups.h) \
+ $(wildcard include/config/inotify/user.h) \
+ $(wildcard include/config/fanotify.h) \
+ $(wildcard include/config/posix/mqueue.h) \
+ $(wildcard include/config/keys.h) \
+ $(wildcard include/config/perf/events.h) \
+ $(wildcard include/config/schedstats.h) \
+ $(wildcard include/config/task/delay/acct.h) \
+ $(wildcard include/config/fair/group/sched.h) \
+ $(wildcard include/config/rt/group/sched.h) \
+ $(wildcard include/config/cgroup/sched.h) \
+ $(wildcard include/config/blk/dev/io/trace.h) \
+ $(wildcard include/config/rcu/boost.h) \
+ $(wildcard include/config/compat/brk.h) \
+ $(wildcard include/config/cc/stackprotector.h) \
+ $(wildcard include/config/sysvipc.h) \
+ $(wildcard include/config/detect/hung/task.h) \
+ $(wildcard include/config/rt/mutexes.h) \
+ $(wildcard include/config/task/xacct.h) \
+ $(wildcard include/config/cpusets.h) \
+ $(wildcard include/config/futex.h) \
+ $(wildcard include/config/numa/balancing.h) \
+ $(wildcard include/config/fault/injection.h) \
+ $(wildcard include/config/latencytop.h) \
+ $(wildcard include/config/function/graph/tracer.h) \
+ $(wildcard include/config/memcg.h) \
+ $(wildcard include/config/uprobes.h) \
+ $(wildcard include/config/bcache.h) \
+ $(wildcard include/config/have/unstable/sched/clock.h) \
+ $(wildcard include/config/no/hz/full.h) \
+ $(wildcard include/config/stack/growsup.h) \
+ $(wildcard include/config/mm/owner.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/sched.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/mm_types.h \
+ $(wildcard include/config/split/ptlock/cpus.h) \
+ $(wildcard include/config/have/cmpxchg/double.h) \
+ $(wildcard include/config/have/aligned/struct/page.h) \
+ $(wildcard include/config/want/page/debug/flags.h) \
+ $(wildcard include/config/kmemcheck.h) \
+ $(wildcard include/config/aio.h) \
+ $(wildcard include/config/mmu/notifier.h) \
+ $(wildcard include/config/transparent/hugepage.h) \
+ $(wildcard include/config/compaction.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/auxvec.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/auxvec.h \
+ arch/arm/include/generated/asm/auxvec.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/auxvec.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/page-debug-flags.h \
+ $(wildcard include/config/page/poisoning.h) \
+ $(wildcard include/config/page/guard.h) \
+ $(wildcard include/config/page/debug/something/else.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/uprobes.h \
+ $(wildcard include/config/arch/supports/uprobes.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/page-flags-layout.h \
+ include/generated/bounds.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/page.h \
+ $(wildcard include/config/cpu/copy/v4wt.h) \
+ $(wildcard include/config/cpu/copy/v4wb.h) \
+ $(wildcard include/config/cpu/copy/feroceon.h) \
+ $(wildcard include/config/cpu/copy/fa.h) \
+ $(wildcard include/config/cpu/xscale.h) \
+ $(wildcard include/config/cpu/copy/v6.h) \
+ $(wildcard include/config/kuser/helpers.h) \
+ $(wildcard include/config/have/arch/pfn/valid.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/glue.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/pgtable-2level-types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/getorder.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/mmu.h \
+ $(wildcard include/config/cpu/has/asid.h) \
+ arch/arm/include/generated/asm/cputime.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/cputime.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/cputime_jiffies.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/sem.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/sem.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/ipc.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/ipc.h \
+ arch/arm/include/generated/asm/ipcbuf.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/ipcbuf.h \
+ arch/arm/include/generated/asm/sembuf.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/sembuf.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/signal.h \
+ $(wildcard include/config/old/sigaction.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/signal.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/signal.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/signal.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/signal-defs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/sigcontext.h \
+ arch/arm/include/generated/asm/siginfo.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/siginfo.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/siginfo.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/topology.h \
+ $(wildcard include/config/sched/smt.h) \
+ $(wildcard include/config/sched/mc.h) \
+ $(wildcard include/config/sched/book.h) \
+ $(wildcard include/config/use/percpu/numa/node/id.h) \
+ $(wildcard include/config/have/memoryless/nodes.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/mmzone.h \
+ $(wildcard include/config/force/max/zoneorder.h) \
+ $(wildcard include/config/memory/isolation.h) \
+ $(wildcard include/config/zone/dma.h) \
+ $(wildcard include/config/zone/dma32.h) \
+ $(wildcard include/config/memory/hotplug.h) \
+ $(wildcard include/config/have/memblock/node/map.h) \
+ $(wildcard include/config/flat/node/mem/map.h) \
+ $(wildcard include/config/no/bootmem.h) \
+ $(wildcard include/config/have/memory/present.h) \
+ $(wildcard include/config/need/node/memmap/size.h) \
+ $(wildcard include/config/need/multiple/nodes.h) \
+ $(wildcard include/config/have/arch/early/pfn/to/nid.h) \
+ $(wildcard include/config/sparsemem/extreme.h) \
+ $(wildcard include/config/nodes/span/other/nodes.h) \
+ $(wildcard include/config/holes/in/zone.h) \
+ $(wildcard include/config/arch/has/holes/memorymodel.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pageblock-flags.h \
+ $(wildcard include/config/hugetlb/page.h) \
+ $(wildcard include/config/hugetlb/page/size/variable.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/sysctl.h \
+ $(wildcard include/config/sysctl.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/sysctl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/memory_hotplug.h \
+ $(wildcard include/config/have/arch/nodedata/extension.h) \
+ $(wildcard include/config/have/bootmem/info/node.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/notifier.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/srcu.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/topology.h \
+ $(wildcard include/config/arm/cpu/topology.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/topology.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/proportions.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/seccomp.h \
+ $(wildcard include/config/seccomp.h) \
+ $(wildcard include/config/seccomp/filter.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/seccomp.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rtmutex.h \
+ $(wildcard include/config/debug/rt/mutexes.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/plist.h \
+ $(wildcard include/config/debug/pi/list.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/resource.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/resource.h \
+ arch/arm/include/generated/asm/resource.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/resource.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/resource.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/task_io_accounting.h \
+ $(wildcard include/config/task/io/accounting.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/latencytop.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/cred.h \
+ $(wildcard include/config/debug/credentials.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/key.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/selinux.h \
+ $(wildcard include/config/security/selinux.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/llist.h \
+ $(wildcard include/config/arch/have/nmi/safe/cmpxchg.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/gfp.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/mmdebug.h \
+ $(wildcard include/config/debug/vm.h) \
+ $(wildcard include/config/debug/virtual.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pm_runtime.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/tty.h \
+ $(wildcard include/config/tty.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/major.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/termios.h \
+ arch/arm/include/generated/asm/termios.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/termios.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/uaccess.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/unified.h \
+ $(wildcard include/config/arm/asm/unified.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/termios.h \
+ arch/arm/include/generated/asm/termbits.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/termbits.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/ioctls.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/ioctls.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/tty_driver.h \
+ $(wildcard include/config/console/poll.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/cdev.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/tty_ldisc.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/tty_flags.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/tty.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc/bt_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc/data_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc/btusb_cq.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc/gki_int.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc/gki.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc/target.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc/btusbext.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/module.h \
+ $(wildcard include/config/module/sig.h) \
+ $(wildcard include/config/kallsyms.h) \
+ $(wildcard include/config/tracepoints.h) \
+ $(wildcard include/config/event/tracing.h) \
+ $(wildcard include/config/module/unload.h) \
+ $(wildcard include/config/constructors.h) \
+ $(wildcard include/config/debug/set/module/ronx.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kmod.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/elf.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/elf.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/user.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/elf.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/elf-em.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/moduleparam.h \
+ $(wildcard include/config/alpha.h) \
+ $(wildcard include/config/ia64.h) \
+ $(wildcard include/config/ppc64.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/tracepoint.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/static_key.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/jump_label.h \
+ $(wildcard include/config/jump/label.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/module.h \
+ $(wildcard include/config/arm/unwind.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/module.h \
+ $(wildcard include/config/have/mod/arch/specific.h) \
+ $(wildcard include/config/modules/use/elf/rel.h) \
+ $(wildcard include/config/modules/use/elf/rela.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/poll.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/poll.h \
+ arch/arm/include/generated/asm/poll.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/poll.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/slab.h \
+ $(wildcard include/config/slab/debug.h) \
+ $(wildcard include/config/failslab.h) \
+ $(wildcard include/config/slob.h) \
+ $(wildcard include/config/slab.h) \
+ $(wildcard include/config/slub.h) \
+ $(wildcard include/config/debug/slab.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/slub_def.h \
+ $(wildcard include/config/slub/stats.h) \
+ $(wildcard include/config/memcg/kmem.h) \
+ $(wildcard include/config/slub/debug.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kmemleak.h \
+ $(wildcard include/config/debug/kmemleak.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/serial.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/serial.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/proc_fs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc/hcidefs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc/gki_int.h \
+
+/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/btusb_dev.o: $(deps_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/btusb_dev.o)
+
+$(deps_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/btusb_dev.o):
diff --git a/bcm20705_bcm242/src/.btusb_isoc.o.cmd b/bcm20705_bcm242/src/.btusb_isoc.o.cmd
new file mode 100644
index 0000000..bb743d7
--- a/dev/null
+++ b/bcm20705_bcm242/src/.btusb_isoc.o.cmd
@@ -0,0 +1,658 @@
+cmd_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/btusb_isoc.o := arm-linux-gnueabihf-gcc -Wp,-MD,/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/.btusb_isoc.o.d -nostdinc -isystem /opt/gcc-linaro-arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.7.3/include -I/mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include -Iarch/arm/include/generated -I/mnt/nfsroot/weiguang.ruan/m8b/common/include -Iinclude -I/mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi -Iarch/arm/include/generated/uapi -I/mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi -Iinclude/generated/uapi -include /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kconfig.h -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242 -D__KERNEL__ -mlittle-endian -I/mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/mach-mesong9tv/include -I/mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/plat-meson/include -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -Werror -Werror=enum-compare -Werror=comment -Werror=implicit-int -Werror=missing-braces -Werror=unused-value -Werror=maybe-uninitialized -Werror=unused-variable -Werror=format -Werror=unused-function -Werror=switch -Werror=strict-prototypes -Werror=declaration-after-statement -Werror=uninitialized -Werror=unused-label -Werror=undef -Werror=unused-result -Werror=return-type -Werror=parentheses -Werror=int-to-pointer-cast -Wno-error=cpp -O2 -fno-dwarf2-cfi-asm -mabi=aapcs-linux -mno-thumb-interwork -funwind-tables -marm -D__LINUX_ARM_ARCH__=7 -march=armv7-a -msoft-float -Uarm -fno-reorder-blocks -fno-ipa-cp-clone -fno-partial-inlining -Wframe-larger-than=1024 -fno-stack-protector -Wno-unused-but-set-variable -fomit-frame-pointer -g -fno-inline-functions-called-once -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -DCC_HAVE_ASM_GOTO -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242 -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/gki -DEXPORT_SYMTAB -DEXPORT_SYMTAB -DMODULE -D"KBUILD_STR(s)=\#s" -D"KBUILD_BASENAME=KBUILD_STR(btusb_isoc)" -D"KBUILD_MODNAME=KBUILD_STR(btusb)" -c -o /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/btusb_isoc.o /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/btusb_isoc.c
+
+source_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/btusb_isoc.o := /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/btusb_isoc.c
+
+deps_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/btusb_isoc.o := \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/slab.h \
+ $(wildcard include/config/slab/debug.h) \
+ $(wildcard include/config/debug/objects.h) \
+ $(wildcard include/config/kmemcheck.h) \
+ $(wildcard include/config/failslab.h) \
+ $(wildcard include/config/slob.h) \
+ $(wildcard include/config/slab.h) \
+ $(wildcard include/config/zone/dma.h) \
+ $(wildcard include/config/slub.h) \
+ $(wildcard include/config/numa.h) \
+ $(wildcard include/config/debug/slab.h) \
+ $(wildcard include/config/tracing.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/gfp.h \
+ $(wildcard include/config/highmem.h) \
+ $(wildcard include/config/zone/dma32.h) \
+ $(wildcard include/config/pm/sleep.h) \
+ $(wildcard include/config/cma.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/mmzone.h \
+ $(wildcard include/config/force/max/zoneorder.h) \
+ $(wildcard include/config/memory/isolation.h) \
+ $(wildcard include/config/smp.h) \
+ $(wildcard include/config/memcg.h) \
+ $(wildcard include/config/compaction.h) \
+ $(wildcard include/config/memory/hotplug.h) \
+ $(wildcard include/config/sparsemem.h) \
+ $(wildcard include/config/have/memblock/node/map.h) \
+ $(wildcard include/config/discontigmem.h) \
+ $(wildcard include/config/flat/node/mem/map.h) \
+ $(wildcard include/config/no/bootmem.h) \
+ $(wildcard include/config/numa/balancing.h) \
+ $(wildcard include/config/have/memory/present.h) \
+ $(wildcard include/config/have/memoryless/nodes.h) \
+ $(wildcard include/config/need/node/memmap/size.h) \
+ $(wildcard include/config/need/multiple/nodes.h) \
+ $(wildcard include/config/have/arch/early/pfn/to/nid.h) \
+ $(wildcard include/config/flatmem.h) \
+ $(wildcard include/config/sparsemem/extreme.h) \
+ $(wildcard include/config/have/arch/pfn/valid.h) \
+ $(wildcard include/config/nodes/span/other/nodes.h) \
+ $(wildcard include/config/holes/in/zone.h) \
+ $(wildcard include/config/arch/has/holes/memorymodel.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/spinlock.h \
+ $(wildcard include/config/debug/spinlock.h) \
+ $(wildcard include/config/generic/lockbreak.h) \
+ $(wildcard include/config/preempt.h) \
+ $(wildcard include/config/debug/lock/alloc.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/typecheck.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/preempt.h \
+ $(wildcard include/config/debug/preempt.h) \
+ $(wildcard include/config/preempt/tracer.h) \
+ $(wildcard include/config/context/tracking.h) \
+ $(wildcard include/config/preempt/count.h) \
+ $(wildcard include/config/preempt/notifiers.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/thread_info.h \
+ $(wildcard include/config/compat.h) \
+ $(wildcard include/config/debug/stack/usage.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/types.h \
+ $(wildcard include/config/uid16.h) \
+ $(wildcard include/config/lbdaf.h) \
+ $(wildcard include/config/arch/dma/addr/t/64bit.h) \
+ $(wildcard include/config/phys/addr/t/64bit.h) \
+ $(wildcard include/config/64bit.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/types.h \
+ arch/arm/include/generated/asm/types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/int-ll64.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/int-ll64.h \
+ arch/arm/include/generated/asm/bitsperlong.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitsperlong.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/bitsperlong.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/posix_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/stddef.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/stddef.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/compiler.h \
+ $(wildcard include/config/sparse/rcu/pointer.h) \
+ $(wildcard include/config/trace/branch/profiling.h) \
+ $(wildcard include/config/profile/all/branches.h) \
+ $(wildcard include/config/enable/must/check.h) \
+ $(wildcard include/config/enable/warn/deprecated.h) \
+ $(wildcard include/config/kprobes.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/compiler-gcc.h \
+ $(wildcard include/config/arch/supports/optimized/inlining.h) \
+ $(wildcard include/config/optimize/inlining.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/compiler-gcc4.h \
+ $(wildcard include/config/arch/use/builtin/bswap.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/posix_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/posix_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bug.h \
+ $(wildcard include/config/generic/bug.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/bug.h \
+ $(wildcard include/config/bug.h) \
+ $(wildcard include/config/thumb2/kernel.h) \
+ $(wildcard include/config/debug/bugverbose.h) \
+ $(wildcard include/config/arm/lpae.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/linkage.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/stringify.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/export.h \
+ $(wildcard include/config/have/underscore/symbol/prefix.h) \
+ $(wildcard include/config/modules.h) \
+ $(wildcard include/config/modversions.h) \
+ $(wildcard include/config/unused/symbols.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/linkage.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bug.h \
+ $(wildcard include/config/generic/bug/relative/pointers.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kernel.h \
+ $(wildcard include/config/preempt/voluntary.h) \
+ $(wildcard include/config/debug/atomic/sleep.h) \
+ $(wildcard include/config/prove/locking.h) \
+ $(wildcard include/config/ring/buffer.h) \
+ $(wildcard include/config/ftrace/mcount/record.h) \
+ /opt/gcc-linaro-arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.7.3/include/stdarg.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bitops.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/bitops.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/irqflags.h \
+ $(wildcard include/config/trace/irqflags.h) \
+ $(wildcard include/config/irqsoff/tracer.h) \
+ $(wildcard include/config/trace/irqflags/support.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/irqflags.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/ptrace.h \
+ $(wildcard include/config/arm/thumb.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/ptrace.h \
+ $(wildcard include/config/cpu/endian/be8.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/hwcap.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/hwcap.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/non-atomic.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/fls64.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/sched.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/hweight.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/arch_hweight.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/const_hweight.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/lock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/le.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/byteorder.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/byteorder/little_endian.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/byteorder/little_endian.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/swab.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/swab.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/swab.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/swab.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/byteorder/generic.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/ext2-atomic-setbit.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/log2.h \
+ $(wildcard include/config/arch/has/ilog2/u32.h) \
+ $(wildcard include/config/arch/has/ilog2/u64.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/printk.h \
+ $(wildcard include/config/early/printk.h) \
+ $(wildcard include/config/printk.h) \
+ $(wildcard include/config/dynamic/debug.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/init.h \
+ $(wildcard include/config/broken/rodata.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kern_levels.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/dynamic_debug.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/string.h \
+ $(wildcard include/config/binary/printf.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/string.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/string.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/errno.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/errno.h \
+ arch/arm/include/generated/asm/errno.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/errno.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/errno-base.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/kernel.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/sysinfo.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/div64.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/compiler.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/thread_info.h \
+ $(wildcard include/config/crunch.h) \
+ $(wildcard include/config/arm/thumbee.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/fpstate.h \
+ $(wildcard include/config/vfpv3.h) \
+ $(wildcard include/config/iwmmxt.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/domain.h \
+ $(wildcard include/config/io/36.h) \
+ $(wildcard include/config/cpu/use/domains.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/barrier.h \
+ $(wildcard include/config/cpu/32v6k.h) \
+ $(wildcard include/config/cpu/xsc3.h) \
+ $(wildcard include/config/cpu/fa526.h) \
+ $(wildcard include/config/arch/has/barriers.h) \
+ $(wildcard include/config/arm/dma/mem/bufferable.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/outercache.h \
+ $(wildcard include/config/outer/cache/sync.h) \
+ $(wildcard include/config/outer/cache.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/list.h \
+ $(wildcard include/config/debug/list.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/poison.h \
+ $(wildcard include/config/illegal/pointer/value.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/const.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bottom_half.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/spinlock_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/spinlock_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/lockdep.h \
+ $(wildcard include/config/lockdep.h) \
+ $(wildcard include/config/lock/stat.h) \
+ $(wildcard include/config/prove/rcu.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwlock_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/spinlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/processor.h \
+ $(wildcard include/config/have/hw/breakpoint.h) \
+ $(wildcard include/config/mmu.h) \
+ $(wildcard include/config/arm/errata/754327.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/hw_breakpoint.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/spinlock_api_smp.h \
+ $(wildcard include/config/inline/spin/lock.h) \
+ $(wildcard include/config/inline/spin/lock/bh.h) \
+ $(wildcard include/config/inline/spin/lock/irq.h) \
+ $(wildcard include/config/inline/spin/lock/irqsave.h) \
+ $(wildcard include/config/inline/spin/trylock.h) \
+ $(wildcard include/config/inline/spin/trylock/bh.h) \
+ $(wildcard include/config/uninline/spin/unlock.h) \
+ $(wildcard include/config/inline/spin/unlock/bh.h) \
+ $(wildcard include/config/inline/spin/unlock/irq.h) \
+ $(wildcard include/config/inline/spin/unlock/irqrestore.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwlock_api_smp.h \
+ $(wildcard include/config/inline/read/lock.h) \
+ $(wildcard include/config/inline/write/lock.h) \
+ $(wildcard include/config/inline/read/lock/bh.h) \
+ $(wildcard include/config/inline/write/lock/bh.h) \
+ $(wildcard include/config/inline/read/lock/irq.h) \
+ $(wildcard include/config/inline/write/lock/irq.h) \
+ $(wildcard include/config/inline/read/lock/irqsave.h) \
+ $(wildcard include/config/inline/write/lock/irqsave.h) \
+ $(wildcard include/config/inline/read/trylock.h) \
+ $(wildcard include/config/inline/write/trylock.h) \
+ $(wildcard include/config/inline/read/unlock.h) \
+ $(wildcard include/config/inline/write/unlock.h) \
+ $(wildcard include/config/inline/read/unlock/bh.h) \
+ $(wildcard include/config/inline/write/unlock/bh.h) \
+ $(wildcard include/config/inline/read/unlock/irq.h) \
+ $(wildcard include/config/inline/write/unlock/irq.h) \
+ $(wildcard include/config/inline/read/unlock/irqrestore.h) \
+ $(wildcard include/config/inline/write/unlock/irqrestore.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/atomic.h \
+ $(wildcard include/config/arch/has/atomic/or.h) \
+ $(wildcard include/config/generic/atomic64.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/atomic.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/cmpxchg.h \
+ $(wildcard include/config/cpu/sa1100.h) \
+ $(wildcard include/config/cpu/sa110.h) \
+ $(wildcard include/config/cpu/v6.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/cmpxchg-local.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/atomic-long.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/wait.h \
+ arch/arm/include/generated/asm/current.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/current.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/wait.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/cache.h \
+ $(wildcard include/config/arch/has/cache/line/size.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/cache.h \
+ $(wildcard include/config/arm/l1/cache/shift.h) \
+ $(wildcard include/config/aeabi.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/threads.h \
+ $(wildcard include/config/nr/cpus.h) \
+ $(wildcard include/config/base/small.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/numa.h \
+ $(wildcard include/config/nodes/shift.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/seqlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/nodemask.h \
+ $(wildcard include/config/movable/node.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bitmap.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pageblock-flags.h \
+ $(wildcard include/config/hugetlb/page.h) \
+ $(wildcard include/config/hugetlb/page/size/variable.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/page-flags-layout.h \
+ $(wildcard include/config/sparsemem/vmemmap.h) \
+ include/generated/bounds.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/page.h \
+ $(wildcard include/config/cpu/copy/v4wt.h) \
+ $(wildcard include/config/cpu/copy/v4wb.h) \
+ $(wildcard include/config/cpu/copy/feroceon.h) \
+ $(wildcard include/config/cpu/copy/fa.h) \
+ $(wildcard include/config/cpu/xscale.h) \
+ $(wildcard include/config/cpu/copy/v6.h) \
+ $(wildcard include/config/kuser/helpers.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/glue.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/pgtable-2level-types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/memory.h \
+ $(wildcard include/config/need/mach/memory/h.h) \
+ $(wildcard include/config/page/offset.h) \
+ $(wildcard include/config/dram/size.h) \
+ $(wildcard include/config/dram/base.h) \
+ $(wildcard include/config/have/tcm.h) \
+ $(wildcard include/config/arm/patch/phys/virt.h) \
+ $(wildcard include/config/phys/offset.h) \
+ $(wildcard include/config/virt/to/bus.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/sizes.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/mach-mesong9tv/include/mach/memory.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/memory_model.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/getorder.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/sysctl.h \
+ $(wildcard include/config/sysctl.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rcupdate.h \
+ $(wildcard include/config/rcu/torture/test.h) \
+ $(wildcard include/config/tree/rcu.h) \
+ $(wildcard include/config/tree/preempt/rcu.h) \
+ $(wildcard include/config/rcu/trace.h) \
+ $(wildcard include/config/preempt/rcu.h) \
+ $(wildcard include/config/rcu/user/qs.h) \
+ $(wildcard include/config/tiny/rcu.h) \
+ $(wildcard include/config/tiny/preempt/rcu.h) \
+ $(wildcard include/config/debug/objects/rcu/head.h) \
+ $(wildcard include/config/hotplug/cpu.h) \
+ $(wildcard include/config/rcu/nocb/cpu.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/cpumask.h \
+ $(wildcard include/config/cpumask/offstack.h) \
+ $(wildcard include/config/debug/per/cpu/maps.h) \
+ $(wildcard include/config/disable/obsolete/cpumask/functions.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/completion.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/debugobjects.h \
+ $(wildcard include/config/debug/objects/free.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rcutree.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rbtree.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/sysctl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/memory_hotplug.h \
+ $(wildcard include/config/memory/hotremove.h) \
+ $(wildcard include/config/have/arch/nodedata/extension.h) \
+ $(wildcard include/config/have/bootmem/info/node.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/notifier.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/mutex.h \
+ $(wildcard include/config/debug/mutexes.h) \
+ $(wildcard include/config/mutex/spin/on/owner.h) \
+ $(wildcard include/config/have/arch/mutex/cpu/relax.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwsem.h \
+ $(wildcard include/config/rwsem/generic/spinlock.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwsem-spinlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/srcu.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/workqueue.h \
+ $(wildcard include/config/debug/objects/work.h) \
+ $(wildcard include/config/freezer.h) \
+ $(wildcard include/config/sysfs.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/timer.h \
+ $(wildcard include/config/timer/stats.h) \
+ $(wildcard include/config/debug/objects/timers.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/ktime.h \
+ $(wildcard include/config/ktime/scalar.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/time.h \
+ $(wildcard include/config/arch/uses/gettimeoffset.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/math64.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/time.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/jiffies.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/timex.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/timex.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/param.h \
+ arch/arm/include/generated/asm/param.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/param.h \
+ $(wildcard include/config/hz.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/param.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/timex.h \
+ $(wildcard include/config/arch/multiplatform.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/mach-mesong9tv/include/mach/timex.h \
+ $(wildcard include/config/meson/clock/tick/rate.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/topology.h \
+ $(wildcard include/config/sched/smt.h) \
+ $(wildcard include/config/sched/mc.h) \
+ $(wildcard include/config/sched/book.h) \
+ $(wildcard include/config/use/percpu/numa/node/id.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/smp.h \
+ $(wildcard include/config/use/generic/smp/helpers.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/smp.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/percpu.h \
+ $(wildcard include/config/need/per/cpu/embed/first/chunk.h) \
+ $(wildcard include/config/need/per/cpu/page/first/chunk.h) \
+ $(wildcard include/config/have/setup/per/cpu/area.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pfn.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/percpu.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/percpu.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/percpu-defs.h \
+ $(wildcard include/config/debug/force/weak/per/cpu.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/topology.h \
+ $(wildcard include/config/arm/cpu/topology.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/topology.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/mmdebug.h \
+ $(wildcard include/config/debug/vm.h) \
+ $(wildcard include/config/debug/virtual.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/slub_def.h \
+ $(wildcard include/config/slub/stats.h) \
+ $(wildcard include/config/memcg/kmem.h) \
+ $(wildcard include/config/slub/debug.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kobject.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/sysfs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kobject_ns.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kref.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kmemleak.h \
+ $(wildcard include/config/debug/kmemleak.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc/btusb.h \
+ include/generated/uapi/linux/version.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/usb.h \
+ $(wildcard include/config/usb/mon.h) \
+ $(wildcard include/config/pm.h) \
+ $(wildcard include/config/acpi.h) \
+ $(wildcard include/config/pm/runtime.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/mod_devicetable.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/uuid.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/uuid.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/usb/ch9.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/usb/ch9.h \
+ $(wildcard include/config/size.h) \
+ $(wildcard include/config/att/one.h) \
+ $(wildcard include/config/att/selfpower.h) \
+ $(wildcard include/config/att/wakeup.h) \
+ $(wildcard include/config/att/battery.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/delay.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/delay.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/interrupt.h \
+ $(wildcard include/config/generic/hardirqs.h) \
+ $(wildcard include/config/irq/forced/threading.h) \
+ $(wildcard include/config/generic/irq/probe.h) \
+ $(wildcard include/config/proc/fs.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/irqreturn.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/irqnr.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/irqnr.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/hardirq.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/ftrace_irq.h \
+ $(wildcard include/config/ftrace/nmi/enter.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/vtime.h \
+ $(wildcard include/config/virt/cpu/accounting.h) \
+ $(wildcard include/config/virt/cpu/accounting/native.h) \
+ $(wildcard include/config/virt/cpu/accounting/gen.h) \
+ $(wildcard include/config/irq/time/accounting.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/hardirq.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/irq.h \
+ $(wildcard include/config/sparse/irq.h) \
+ $(wildcard include/config/multi/irq/handler.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/mach-mesong9tv/include/mach/irqs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/irq_cpustat.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/hrtimer.h \
+ $(wildcard include/config/high/res/timers.h) \
+ $(wildcard include/config/timerfd.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/timerqueue.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/device.h \
+ $(wildcard include/config/debug/devres.h) \
+ $(wildcard include/config/pinctrl.h) \
+ $(wildcard include/config/devtmpfs.h) \
+ $(wildcard include/config/sysfs/deprecated.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/ioport.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/klist.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pinctrl/devinfo.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pinctrl/consumer.h \
+ $(wildcard include/config/pinconf.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/err.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/seq_file.h \
+ $(wildcard include/config/user/ns.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pinctrl/pinctrl-state.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pinctrl/machine.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pm.h \
+ $(wildcard include/config/vt/console/sleep.h) \
+ $(wildcard include/config/pm/clk.h) \
+ $(wildcard include/config/pm/generic/domains.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/ratelimit.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/uidgid.h \
+ $(wildcard include/config/uidgid/strict/type/checks.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/highuid.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/device.h \
+ $(wildcard include/config/dmabounce.h) \
+ $(wildcard include/config/iommu/api.h) \
+ $(wildcard include/config/arm/dma/use/iommu.h) \
+ $(wildcard include/config/arch/omap.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pm_wakeup.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/fs.h \
+ $(wildcard include/config/fs/posix/acl.h) \
+ $(wildcard include/config/security.h) \
+ $(wildcard include/config/quota.h) \
+ $(wildcard include/config/fsnotify.h) \
+ $(wildcard include/config/ima.h) \
+ $(wildcard include/config/epoll.h) \
+ $(wildcard include/config/debug/writecount.h) \
+ $(wildcard include/config/file/locking.h) \
+ $(wildcard include/config/auditsyscall.h) \
+ $(wildcard include/config/block.h) \
+ $(wildcard include/config/fs/xip.h) \
+ $(wildcard include/config/migration.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kdev_t.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/kdev_t.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/dcache.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rculist.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rculist_bl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/list_bl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bit_spinlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/path.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/stat.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/stat.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/stat.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/radix-tree.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pid.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/capability.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/capability.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/semaphore.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/fiemap.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/shrinker.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/migrate_mode.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/percpu-rwsem.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/blk_types.h \
+ $(wildcard include/config/blk/cgroup.h) \
+ $(wildcard include/config/blk/dev/integrity.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/fs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/limits.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/ioctl.h \
+ arch/arm/include/generated/asm/ioctl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/ioctl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/ioctl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/quota.h \
+ $(wildcard include/config/quota/netlink/interface.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/percpu_counter.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/dqblk_xfs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/dqblk_v1.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/dqblk_v2.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/dqblk_qtree.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/projid.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/quota.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/nfs_fs_i.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/fcntl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/fcntl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/fcntl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/fcntl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/sched.h \
+ $(wildcard include/config/sched/debug.h) \
+ $(wildcard include/config/no/hz/common.h) \
+ $(wildcard include/config/lockup/detector.h) \
+ $(wildcard include/config/core/dump/default/elf/headers.h) \
+ $(wildcard include/config/sched/autogroup.h) \
+ $(wildcard include/config/bsd/process/acct.h) \
+ $(wildcard include/config/taskstats.h) \
+ $(wildcard include/config/audit.h) \
+ $(wildcard include/config/cgroups.h) \
+ $(wildcard include/config/inotify/user.h) \
+ $(wildcard include/config/fanotify.h) \
+ $(wildcard include/config/posix/mqueue.h) \
+ $(wildcard include/config/keys.h) \
+ $(wildcard include/config/perf/events.h) \
+ $(wildcard include/config/schedstats.h) \
+ $(wildcard include/config/task/delay/acct.h) \
+ $(wildcard include/config/fair/group/sched.h) \
+ $(wildcard include/config/rt/group/sched.h) \
+ $(wildcard include/config/cgroup/sched.h) \
+ $(wildcard include/config/blk/dev/io/trace.h) \
+ $(wildcard include/config/rcu/boost.h) \
+ $(wildcard include/config/compat/brk.h) \
+ $(wildcard include/config/cc/stackprotector.h) \
+ $(wildcard include/config/sysvipc.h) \
+ $(wildcard include/config/detect/hung/task.h) \
+ $(wildcard include/config/rt/mutexes.h) \
+ $(wildcard include/config/task/xacct.h) \
+ $(wildcard include/config/cpusets.h) \
+ $(wildcard include/config/futex.h) \
+ $(wildcard include/config/fault/injection.h) \
+ $(wildcard include/config/latencytop.h) \
+ $(wildcard include/config/function/graph/tracer.h) \
+ $(wildcard include/config/uprobes.h) \
+ $(wildcard include/config/bcache.h) \
+ $(wildcard include/config/have/unstable/sched/clock.h) \
+ $(wildcard include/config/no/hz/full.h) \
+ $(wildcard include/config/stack/growsup.h) \
+ $(wildcard include/config/mm/owner.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/sched.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/mm_types.h \
+ $(wildcard include/config/split/ptlock/cpus.h) \
+ $(wildcard include/config/have/cmpxchg/double.h) \
+ $(wildcard include/config/have/aligned/struct/page.h) \
+ $(wildcard include/config/want/page/debug/flags.h) \
+ $(wildcard include/config/aio.h) \
+ $(wildcard include/config/mmu/notifier.h) \
+ $(wildcard include/config/transparent/hugepage.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/auxvec.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/auxvec.h \
+ arch/arm/include/generated/asm/auxvec.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/auxvec.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/page-debug-flags.h \
+ $(wildcard include/config/page/poisoning.h) \
+ $(wildcard include/config/page/guard.h) \
+ $(wildcard include/config/page/debug/something/else.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/uprobes.h \
+ $(wildcard include/config/arch/supports/uprobes.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/mmu.h \
+ $(wildcard include/config/cpu/has/asid.h) \
+ arch/arm/include/generated/asm/cputime.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/cputime.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/cputime_jiffies.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/sem.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/sem.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/ipc.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/ipc.h \
+ arch/arm/include/generated/asm/ipcbuf.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/ipcbuf.h \
+ arch/arm/include/generated/asm/sembuf.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/sembuf.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/signal.h \
+ $(wildcard include/config/old/sigaction.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/signal.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/signal.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/signal.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/signal-defs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/sigcontext.h \
+ arch/arm/include/generated/asm/siginfo.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/siginfo.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/siginfo.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/proportions.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/seccomp.h \
+ $(wildcard include/config/seccomp.h) \
+ $(wildcard include/config/seccomp/filter.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/seccomp.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rtmutex.h \
+ $(wildcard include/config/debug/rt/mutexes.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/plist.h \
+ $(wildcard include/config/debug/pi/list.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/resource.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/resource.h \
+ arch/arm/include/generated/asm/resource.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/resource.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/resource.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/task_io_accounting.h \
+ $(wildcard include/config/task/io/accounting.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/latencytop.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/cred.h \
+ $(wildcard include/config/debug/credentials.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/key.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/selinux.h \
+ $(wildcard include/config/security/selinux.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/llist.h \
+ $(wildcard include/config/arch/have/nmi/safe/cmpxchg.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pm_runtime.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/tty.h \
+ $(wildcard include/config/tty.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/major.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/termios.h \
+ arch/arm/include/generated/asm/termios.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/termios.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/uaccess.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/unified.h \
+ $(wildcard include/config/arm/asm/unified.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/termios.h \
+ arch/arm/include/generated/asm/termbits.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/termbits.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/ioctls.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/ioctls.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/tty_driver.h \
+ $(wildcard include/config/console/poll.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/cdev.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/tty_ldisc.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/tty_flags.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/tty.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc/bt_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc/data_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc/btusb_cq.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc/gki_int.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc/gki.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc/target.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc/btusbext.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc/hcidefs.h \
+
+/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/btusb_isoc.o: $(deps_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/btusb_isoc.o)
+
+$(deps_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/btusb_isoc.o):
diff --git a/bcm20705_bcm242/src/.btusb_proc.o.cmd b/bcm20705_bcm242/src/.btusb_proc.o.cmd
new file mode 100644
index 0000000..0d0edfd
--- a/dev/null
+++ b/bcm20705_bcm242/src/.btusb_proc.o.cmd
@@ -0,0 +1,659 @@
+cmd_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/btusb_proc.o := arm-linux-gnueabihf-gcc -Wp,-MD,/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/.btusb_proc.o.d -nostdinc -isystem /opt/gcc-linaro-arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.7.3/include -I/mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include -Iarch/arm/include/generated -I/mnt/nfsroot/weiguang.ruan/m8b/common/include -Iinclude -I/mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi -Iarch/arm/include/generated/uapi -I/mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi -Iinclude/generated/uapi -include /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kconfig.h -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242 -D__KERNEL__ -mlittle-endian -I/mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/mach-mesong9tv/include -I/mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/plat-meson/include -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -Werror -Werror=enum-compare -Werror=comment -Werror=implicit-int -Werror=missing-braces -Werror=unused-value -Werror=maybe-uninitialized -Werror=unused-variable -Werror=format -Werror=unused-function -Werror=switch -Werror=strict-prototypes -Werror=declaration-after-statement -Werror=uninitialized -Werror=unused-label -Werror=undef -Werror=unused-result -Werror=return-type -Werror=parentheses -Werror=int-to-pointer-cast -Wno-error=cpp -O2 -fno-dwarf2-cfi-asm -mabi=aapcs-linux -mno-thumb-interwork -funwind-tables -marm -D__LINUX_ARM_ARCH__=7 -march=armv7-a -msoft-float -Uarm -fno-reorder-blocks -fno-ipa-cp-clone -fno-partial-inlining -Wframe-larger-than=1024 -fno-stack-protector -Wno-unused-but-set-variable -fomit-frame-pointer -g -fno-inline-functions-called-once -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -DCC_HAVE_ASM_GOTO -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242 -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/gki -DEXPORT_SYMTAB -DEXPORT_SYMTAB -DMODULE -D"KBUILD_STR(s)=\#s" -D"KBUILD_BASENAME=KBUILD_STR(btusb_proc)" -D"KBUILD_MODNAME=KBUILD_STR(btusb)" -c -o /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/btusb_proc.o /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/btusb_proc.c
+
+source_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/btusb_proc.o := /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/btusb_proc.c
+
+deps_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/btusb_proc.o := \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc/btusb_proc.h \
+ $(wildcard include/config/proc/fs.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/slab.h \
+ $(wildcard include/config/slab/debug.h) \
+ $(wildcard include/config/debug/objects.h) \
+ $(wildcard include/config/kmemcheck.h) \
+ $(wildcard include/config/failslab.h) \
+ $(wildcard include/config/slob.h) \
+ $(wildcard include/config/slab.h) \
+ $(wildcard include/config/zone/dma.h) \
+ $(wildcard include/config/slub.h) \
+ $(wildcard include/config/numa.h) \
+ $(wildcard include/config/debug/slab.h) \
+ $(wildcard include/config/tracing.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/gfp.h \
+ $(wildcard include/config/highmem.h) \
+ $(wildcard include/config/zone/dma32.h) \
+ $(wildcard include/config/pm/sleep.h) \
+ $(wildcard include/config/cma.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/mmzone.h \
+ $(wildcard include/config/force/max/zoneorder.h) \
+ $(wildcard include/config/memory/isolation.h) \
+ $(wildcard include/config/smp.h) \
+ $(wildcard include/config/memcg.h) \
+ $(wildcard include/config/compaction.h) \
+ $(wildcard include/config/memory/hotplug.h) \
+ $(wildcard include/config/sparsemem.h) \
+ $(wildcard include/config/have/memblock/node/map.h) \
+ $(wildcard include/config/discontigmem.h) \
+ $(wildcard include/config/flat/node/mem/map.h) \
+ $(wildcard include/config/no/bootmem.h) \
+ $(wildcard include/config/numa/balancing.h) \
+ $(wildcard include/config/have/memory/present.h) \
+ $(wildcard include/config/have/memoryless/nodes.h) \
+ $(wildcard include/config/need/node/memmap/size.h) \
+ $(wildcard include/config/need/multiple/nodes.h) \
+ $(wildcard include/config/have/arch/early/pfn/to/nid.h) \
+ $(wildcard include/config/flatmem.h) \
+ $(wildcard include/config/sparsemem/extreme.h) \
+ $(wildcard include/config/have/arch/pfn/valid.h) \
+ $(wildcard include/config/nodes/span/other/nodes.h) \
+ $(wildcard include/config/holes/in/zone.h) \
+ $(wildcard include/config/arch/has/holes/memorymodel.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/spinlock.h \
+ $(wildcard include/config/debug/spinlock.h) \
+ $(wildcard include/config/generic/lockbreak.h) \
+ $(wildcard include/config/preempt.h) \
+ $(wildcard include/config/debug/lock/alloc.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/typecheck.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/preempt.h \
+ $(wildcard include/config/debug/preempt.h) \
+ $(wildcard include/config/preempt/tracer.h) \
+ $(wildcard include/config/context/tracking.h) \
+ $(wildcard include/config/preempt/count.h) \
+ $(wildcard include/config/preempt/notifiers.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/thread_info.h \
+ $(wildcard include/config/compat.h) \
+ $(wildcard include/config/debug/stack/usage.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/types.h \
+ $(wildcard include/config/uid16.h) \
+ $(wildcard include/config/lbdaf.h) \
+ $(wildcard include/config/arch/dma/addr/t/64bit.h) \
+ $(wildcard include/config/phys/addr/t/64bit.h) \
+ $(wildcard include/config/64bit.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/types.h \
+ arch/arm/include/generated/asm/types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/int-ll64.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/int-ll64.h \
+ arch/arm/include/generated/asm/bitsperlong.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitsperlong.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/bitsperlong.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/posix_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/stddef.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/stddef.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/compiler.h \
+ $(wildcard include/config/sparse/rcu/pointer.h) \
+ $(wildcard include/config/trace/branch/profiling.h) \
+ $(wildcard include/config/profile/all/branches.h) \
+ $(wildcard include/config/enable/must/check.h) \
+ $(wildcard include/config/enable/warn/deprecated.h) \
+ $(wildcard include/config/kprobes.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/compiler-gcc.h \
+ $(wildcard include/config/arch/supports/optimized/inlining.h) \
+ $(wildcard include/config/optimize/inlining.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/compiler-gcc4.h \
+ $(wildcard include/config/arch/use/builtin/bswap.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/posix_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/posix_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bug.h \
+ $(wildcard include/config/generic/bug.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/bug.h \
+ $(wildcard include/config/bug.h) \
+ $(wildcard include/config/thumb2/kernel.h) \
+ $(wildcard include/config/debug/bugverbose.h) \
+ $(wildcard include/config/arm/lpae.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/linkage.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/stringify.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/export.h \
+ $(wildcard include/config/have/underscore/symbol/prefix.h) \
+ $(wildcard include/config/modules.h) \
+ $(wildcard include/config/modversions.h) \
+ $(wildcard include/config/unused/symbols.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/linkage.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bug.h \
+ $(wildcard include/config/generic/bug/relative/pointers.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kernel.h \
+ $(wildcard include/config/preempt/voluntary.h) \
+ $(wildcard include/config/debug/atomic/sleep.h) \
+ $(wildcard include/config/prove/locking.h) \
+ $(wildcard include/config/ring/buffer.h) \
+ $(wildcard include/config/ftrace/mcount/record.h) \
+ /opt/gcc-linaro-arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.7.3/include/stdarg.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bitops.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/bitops.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/irqflags.h \
+ $(wildcard include/config/trace/irqflags.h) \
+ $(wildcard include/config/irqsoff/tracer.h) \
+ $(wildcard include/config/trace/irqflags/support.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/irqflags.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/ptrace.h \
+ $(wildcard include/config/arm/thumb.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/ptrace.h \
+ $(wildcard include/config/cpu/endian/be8.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/hwcap.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/hwcap.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/non-atomic.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/fls64.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/sched.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/hweight.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/arch_hweight.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/const_hweight.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/lock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/le.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/byteorder.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/byteorder/little_endian.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/byteorder/little_endian.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/swab.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/swab.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/swab.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/swab.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/byteorder/generic.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/ext2-atomic-setbit.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/log2.h \
+ $(wildcard include/config/arch/has/ilog2/u32.h) \
+ $(wildcard include/config/arch/has/ilog2/u64.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/printk.h \
+ $(wildcard include/config/early/printk.h) \
+ $(wildcard include/config/printk.h) \
+ $(wildcard include/config/dynamic/debug.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/init.h \
+ $(wildcard include/config/broken/rodata.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kern_levels.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/dynamic_debug.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/string.h \
+ $(wildcard include/config/binary/printf.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/string.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/string.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/errno.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/errno.h \
+ arch/arm/include/generated/asm/errno.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/errno.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/errno-base.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/kernel.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/sysinfo.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/div64.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/compiler.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/thread_info.h \
+ $(wildcard include/config/crunch.h) \
+ $(wildcard include/config/arm/thumbee.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/fpstate.h \
+ $(wildcard include/config/vfpv3.h) \
+ $(wildcard include/config/iwmmxt.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/domain.h \
+ $(wildcard include/config/io/36.h) \
+ $(wildcard include/config/cpu/use/domains.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/barrier.h \
+ $(wildcard include/config/cpu/32v6k.h) \
+ $(wildcard include/config/cpu/xsc3.h) \
+ $(wildcard include/config/cpu/fa526.h) \
+ $(wildcard include/config/arch/has/barriers.h) \
+ $(wildcard include/config/arm/dma/mem/bufferable.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/outercache.h \
+ $(wildcard include/config/outer/cache/sync.h) \
+ $(wildcard include/config/outer/cache.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/list.h \
+ $(wildcard include/config/debug/list.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/poison.h \
+ $(wildcard include/config/illegal/pointer/value.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/const.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bottom_half.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/spinlock_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/spinlock_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/lockdep.h \
+ $(wildcard include/config/lockdep.h) \
+ $(wildcard include/config/lock/stat.h) \
+ $(wildcard include/config/prove/rcu.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwlock_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/spinlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/processor.h \
+ $(wildcard include/config/have/hw/breakpoint.h) \
+ $(wildcard include/config/mmu.h) \
+ $(wildcard include/config/arm/errata/754327.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/hw_breakpoint.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/spinlock_api_smp.h \
+ $(wildcard include/config/inline/spin/lock.h) \
+ $(wildcard include/config/inline/spin/lock/bh.h) \
+ $(wildcard include/config/inline/spin/lock/irq.h) \
+ $(wildcard include/config/inline/spin/lock/irqsave.h) \
+ $(wildcard include/config/inline/spin/trylock.h) \
+ $(wildcard include/config/inline/spin/trylock/bh.h) \
+ $(wildcard include/config/uninline/spin/unlock.h) \
+ $(wildcard include/config/inline/spin/unlock/bh.h) \
+ $(wildcard include/config/inline/spin/unlock/irq.h) \
+ $(wildcard include/config/inline/spin/unlock/irqrestore.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwlock_api_smp.h \
+ $(wildcard include/config/inline/read/lock.h) \
+ $(wildcard include/config/inline/write/lock.h) \
+ $(wildcard include/config/inline/read/lock/bh.h) \
+ $(wildcard include/config/inline/write/lock/bh.h) \
+ $(wildcard include/config/inline/read/lock/irq.h) \
+ $(wildcard include/config/inline/write/lock/irq.h) \
+ $(wildcard include/config/inline/read/lock/irqsave.h) \
+ $(wildcard include/config/inline/write/lock/irqsave.h) \
+ $(wildcard include/config/inline/read/trylock.h) \
+ $(wildcard include/config/inline/write/trylock.h) \
+ $(wildcard include/config/inline/read/unlock.h) \
+ $(wildcard include/config/inline/write/unlock.h) \
+ $(wildcard include/config/inline/read/unlock/bh.h) \
+ $(wildcard include/config/inline/write/unlock/bh.h) \
+ $(wildcard include/config/inline/read/unlock/irq.h) \
+ $(wildcard include/config/inline/write/unlock/irq.h) \
+ $(wildcard include/config/inline/read/unlock/irqrestore.h) \
+ $(wildcard include/config/inline/write/unlock/irqrestore.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/atomic.h \
+ $(wildcard include/config/arch/has/atomic/or.h) \
+ $(wildcard include/config/generic/atomic64.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/atomic.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/cmpxchg.h \
+ $(wildcard include/config/cpu/sa1100.h) \
+ $(wildcard include/config/cpu/sa110.h) \
+ $(wildcard include/config/cpu/v6.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/cmpxchg-local.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/atomic-long.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/wait.h \
+ arch/arm/include/generated/asm/current.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/current.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/wait.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/cache.h \
+ $(wildcard include/config/arch/has/cache/line/size.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/cache.h \
+ $(wildcard include/config/arm/l1/cache/shift.h) \
+ $(wildcard include/config/aeabi.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/threads.h \
+ $(wildcard include/config/nr/cpus.h) \
+ $(wildcard include/config/base/small.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/numa.h \
+ $(wildcard include/config/nodes/shift.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/seqlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/nodemask.h \
+ $(wildcard include/config/movable/node.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bitmap.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pageblock-flags.h \
+ $(wildcard include/config/hugetlb/page.h) \
+ $(wildcard include/config/hugetlb/page/size/variable.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/page-flags-layout.h \
+ $(wildcard include/config/sparsemem/vmemmap.h) \
+ include/generated/bounds.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/page.h \
+ $(wildcard include/config/cpu/copy/v4wt.h) \
+ $(wildcard include/config/cpu/copy/v4wb.h) \
+ $(wildcard include/config/cpu/copy/feroceon.h) \
+ $(wildcard include/config/cpu/copy/fa.h) \
+ $(wildcard include/config/cpu/xscale.h) \
+ $(wildcard include/config/cpu/copy/v6.h) \
+ $(wildcard include/config/kuser/helpers.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/glue.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/pgtable-2level-types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/memory.h \
+ $(wildcard include/config/need/mach/memory/h.h) \
+ $(wildcard include/config/page/offset.h) \
+ $(wildcard include/config/dram/size.h) \
+ $(wildcard include/config/dram/base.h) \
+ $(wildcard include/config/have/tcm.h) \
+ $(wildcard include/config/arm/patch/phys/virt.h) \
+ $(wildcard include/config/phys/offset.h) \
+ $(wildcard include/config/virt/to/bus.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/sizes.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/mach-mesong9tv/include/mach/memory.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/memory_model.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/getorder.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/sysctl.h \
+ $(wildcard include/config/sysctl.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rcupdate.h \
+ $(wildcard include/config/rcu/torture/test.h) \
+ $(wildcard include/config/tree/rcu.h) \
+ $(wildcard include/config/tree/preempt/rcu.h) \
+ $(wildcard include/config/rcu/trace.h) \
+ $(wildcard include/config/preempt/rcu.h) \
+ $(wildcard include/config/rcu/user/qs.h) \
+ $(wildcard include/config/tiny/rcu.h) \
+ $(wildcard include/config/tiny/preempt/rcu.h) \
+ $(wildcard include/config/debug/objects/rcu/head.h) \
+ $(wildcard include/config/hotplug/cpu.h) \
+ $(wildcard include/config/rcu/nocb/cpu.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/cpumask.h \
+ $(wildcard include/config/cpumask/offstack.h) \
+ $(wildcard include/config/debug/per/cpu/maps.h) \
+ $(wildcard include/config/disable/obsolete/cpumask/functions.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/completion.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/debugobjects.h \
+ $(wildcard include/config/debug/objects/free.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rcutree.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rbtree.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/sysctl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/memory_hotplug.h \
+ $(wildcard include/config/memory/hotremove.h) \
+ $(wildcard include/config/have/arch/nodedata/extension.h) \
+ $(wildcard include/config/have/bootmem/info/node.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/notifier.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/mutex.h \
+ $(wildcard include/config/debug/mutexes.h) \
+ $(wildcard include/config/mutex/spin/on/owner.h) \
+ $(wildcard include/config/have/arch/mutex/cpu/relax.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwsem.h \
+ $(wildcard include/config/rwsem/generic/spinlock.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwsem-spinlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/srcu.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/workqueue.h \
+ $(wildcard include/config/debug/objects/work.h) \
+ $(wildcard include/config/freezer.h) \
+ $(wildcard include/config/sysfs.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/timer.h \
+ $(wildcard include/config/timer/stats.h) \
+ $(wildcard include/config/debug/objects/timers.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/ktime.h \
+ $(wildcard include/config/ktime/scalar.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/time.h \
+ $(wildcard include/config/arch/uses/gettimeoffset.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/math64.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/time.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/jiffies.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/timex.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/timex.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/param.h \
+ arch/arm/include/generated/asm/param.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/param.h \
+ $(wildcard include/config/hz.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/param.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/timex.h \
+ $(wildcard include/config/arch/multiplatform.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/mach-mesong9tv/include/mach/timex.h \
+ $(wildcard include/config/meson/clock/tick/rate.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/topology.h \
+ $(wildcard include/config/sched/smt.h) \
+ $(wildcard include/config/sched/mc.h) \
+ $(wildcard include/config/sched/book.h) \
+ $(wildcard include/config/use/percpu/numa/node/id.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/smp.h \
+ $(wildcard include/config/use/generic/smp/helpers.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/smp.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/percpu.h \
+ $(wildcard include/config/need/per/cpu/embed/first/chunk.h) \
+ $(wildcard include/config/need/per/cpu/page/first/chunk.h) \
+ $(wildcard include/config/have/setup/per/cpu/area.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pfn.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/percpu.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/percpu.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/percpu-defs.h \
+ $(wildcard include/config/debug/force/weak/per/cpu.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/topology.h \
+ $(wildcard include/config/arm/cpu/topology.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/topology.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/mmdebug.h \
+ $(wildcard include/config/debug/vm.h) \
+ $(wildcard include/config/debug/virtual.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/slub_def.h \
+ $(wildcard include/config/slub/stats.h) \
+ $(wildcard include/config/memcg/kmem.h) \
+ $(wildcard include/config/slub/debug.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kobject.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/sysfs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kobject_ns.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kref.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kmemleak.h \
+ $(wildcard include/config/debug/kmemleak.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/proc_fs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/fs.h \
+ $(wildcard include/config/fs/posix/acl.h) \
+ $(wildcard include/config/security.h) \
+ $(wildcard include/config/quota.h) \
+ $(wildcard include/config/fsnotify.h) \
+ $(wildcard include/config/ima.h) \
+ $(wildcard include/config/epoll.h) \
+ $(wildcard include/config/debug/writecount.h) \
+ $(wildcard include/config/file/locking.h) \
+ $(wildcard include/config/auditsyscall.h) \
+ $(wildcard include/config/block.h) \
+ $(wildcard include/config/fs/xip.h) \
+ $(wildcard include/config/migration.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kdev_t.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/kdev_t.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/dcache.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rculist.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rculist_bl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/list_bl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bit_spinlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/path.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/stat.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/stat.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/stat.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/uidgid.h \
+ $(wildcard include/config/uidgid/strict/type/checks.h) \
+ $(wildcard include/config/user/ns.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/highuid.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/radix-tree.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pid.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/capability.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/capability.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/semaphore.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/fiemap.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/shrinker.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/migrate_mode.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/percpu-rwsem.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/blk_types.h \
+ $(wildcard include/config/blk/cgroup.h) \
+ $(wildcard include/config/blk/dev/integrity.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/fs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/limits.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/ioctl.h \
+ arch/arm/include/generated/asm/ioctl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/ioctl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/ioctl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/quota.h \
+ $(wildcard include/config/quota/netlink/interface.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/percpu_counter.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/dqblk_xfs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/dqblk_v1.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/dqblk_v2.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/dqblk_qtree.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/projid.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/quota.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/nfs_fs_i.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/fcntl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/fcntl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/fcntl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/fcntl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/err.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/seq_file.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/uaccess.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/unified.h \
+ $(wildcard include/config/arm/asm/unified.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc/btusb.h \
+ include/generated/uapi/linux/version.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/usb.h \
+ $(wildcard include/config/usb/mon.h) \
+ $(wildcard include/config/pm.h) \
+ $(wildcard include/config/acpi.h) \
+ $(wildcard include/config/pm/runtime.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/mod_devicetable.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/uuid.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/uuid.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/usb/ch9.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/usb/ch9.h \
+ $(wildcard include/config/size.h) \
+ $(wildcard include/config/att/one.h) \
+ $(wildcard include/config/att/selfpower.h) \
+ $(wildcard include/config/att/wakeup.h) \
+ $(wildcard include/config/att/battery.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/delay.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/delay.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/interrupt.h \
+ $(wildcard include/config/generic/hardirqs.h) \
+ $(wildcard include/config/irq/forced/threading.h) \
+ $(wildcard include/config/generic/irq/probe.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/irqreturn.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/irqnr.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/irqnr.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/hardirq.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/ftrace_irq.h \
+ $(wildcard include/config/ftrace/nmi/enter.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/vtime.h \
+ $(wildcard include/config/virt/cpu/accounting.h) \
+ $(wildcard include/config/virt/cpu/accounting/native.h) \
+ $(wildcard include/config/virt/cpu/accounting/gen.h) \
+ $(wildcard include/config/irq/time/accounting.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/hardirq.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/irq.h \
+ $(wildcard include/config/sparse/irq.h) \
+ $(wildcard include/config/multi/irq/handler.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/mach-mesong9tv/include/mach/irqs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/irq_cpustat.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/hrtimer.h \
+ $(wildcard include/config/high/res/timers.h) \
+ $(wildcard include/config/timerfd.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/timerqueue.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/device.h \
+ $(wildcard include/config/debug/devres.h) \
+ $(wildcard include/config/pinctrl.h) \
+ $(wildcard include/config/devtmpfs.h) \
+ $(wildcard include/config/sysfs/deprecated.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/ioport.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/klist.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pinctrl/devinfo.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pinctrl/consumer.h \
+ $(wildcard include/config/pinconf.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pinctrl/pinctrl-state.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pinctrl/machine.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pm.h \
+ $(wildcard include/config/vt/console/sleep.h) \
+ $(wildcard include/config/pm/clk.h) \
+ $(wildcard include/config/pm/generic/domains.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/ratelimit.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/device.h \
+ $(wildcard include/config/dmabounce.h) \
+ $(wildcard include/config/iommu/api.h) \
+ $(wildcard include/config/arm/dma/use/iommu.h) \
+ $(wildcard include/config/arch/omap.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pm_wakeup.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/sched.h \
+ $(wildcard include/config/sched/debug.h) \
+ $(wildcard include/config/no/hz/common.h) \
+ $(wildcard include/config/lockup/detector.h) \
+ $(wildcard include/config/core/dump/default/elf/headers.h) \
+ $(wildcard include/config/sched/autogroup.h) \
+ $(wildcard include/config/bsd/process/acct.h) \
+ $(wildcard include/config/taskstats.h) \
+ $(wildcard include/config/audit.h) \
+ $(wildcard include/config/cgroups.h) \
+ $(wildcard include/config/inotify/user.h) \
+ $(wildcard include/config/fanotify.h) \
+ $(wildcard include/config/posix/mqueue.h) \
+ $(wildcard include/config/keys.h) \
+ $(wildcard include/config/perf/events.h) \
+ $(wildcard include/config/schedstats.h) \
+ $(wildcard include/config/task/delay/acct.h) \
+ $(wildcard include/config/fair/group/sched.h) \
+ $(wildcard include/config/rt/group/sched.h) \
+ $(wildcard include/config/cgroup/sched.h) \
+ $(wildcard include/config/blk/dev/io/trace.h) \
+ $(wildcard include/config/rcu/boost.h) \
+ $(wildcard include/config/compat/brk.h) \
+ $(wildcard include/config/cc/stackprotector.h) \
+ $(wildcard include/config/sysvipc.h) \
+ $(wildcard include/config/detect/hung/task.h) \
+ $(wildcard include/config/rt/mutexes.h) \
+ $(wildcard include/config/task/xacct.h) \
+ $(wildcard include/config/cpusets.h) \
+ $(wildcard include/config/futex.h) \
+ $(wildcard include/config/fault/injection.h) \
+ $(wildcard include/config/latencytop.h) \
+ $(wildcard include/config/function/graph/tracer.h) \
+ $(wildcard include/config/uprobes.h) \
+ $(wildcard include/config/bcache.h) \
+ $(wildcard include/config/have/unstable/sched/clock.h) \
+ $(wildcard include/config/no/hz/full.h) \
+ $(wildcard include/config/stack/growsup.h) \
+ $(wildcard include/config/mm/owner.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/sched.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/mm_types.h \
+ $(wildcard include/config/split/ptlock/cpus.h) \
+ $(wildcard include/config/have/cmpxchg/double.h) \
+ $(wildcard include/config/have/aligned/struct/page.h) \
+ $(wildcard include/config/want/page/debug/flags.h) \
+ $(wildcard include/config/aio.h) \
+ $(wildcard include/config/mmu/notifier.h) \
+ $(wildcard include/config/transparent/hugepage.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/auxvec.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/auxvec.h \
+ arch/arm/include/generated/asm/auxvec.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/auxvec.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/page-debug-flags.h \
+ $(wildcard include/config/page/poisoning.h) \
+ $(wildcard include/config/page/guard.h) \
+ $(wildcard include/config/page/debug/something/else.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/uprobes.h \
+ $(wildcard include/config/arch/supports/uprobes.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/mmu.h \
+ $(wildcard include/config/cpu/has/asid.h) \
+ arch/arm/include/generated/asm/cputime.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/cputime.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/cputime_jiffies.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/sem.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/sem.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/ipc.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/ipc.h \
+ arch/arm/include/generated/asm/ipcbuf.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/ipcbuf.h \
+ arch/arm/include/generated/asm/sembuf.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/sembuf.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/signal.h \
+ $(wildcard include/config/old/sigaction.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/signal.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/signal.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/signal.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/signal-defs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/sigcontext.h \
+ arch/arm/include/generated/asm/siginfo.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/siginfo.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/siginfo.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/proportions.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/seccomp.h \
+ $(wildcard include/config/seccomp.h) \
+ $(wildcard include/config/seccomp/filter.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/seccomp.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rtmutex.h \
+ $(wildcard include/config/debug/rt/mutexes.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/plist.h \
+ $(wildcard include/config/debug/pi/list.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/resource.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/resource.h \
+ arch/arm/include/generated/asm/resource.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/resource.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/resource.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/task_io_accounting.h \
+ $(wildcard include/config/task/io/accounting.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/latencytop.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/cred.h \
+ $(wildcard include/config/debug/credentials.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/key.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/selinux.h \
+ $(wildcard include/config/security/selinux.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/llist.h \
+ $(wildcard include/config/arch/have/nmi/safe/cmpxchg.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pm_runtime.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/tty.h \
+ $(wildcard include/config/tty.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/major.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/termios.h \
+ arch/arm/include/generated/asm/termios.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/termios.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/termios.h \
+ arch/arm/include/generated/asm/termbits.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/termbits.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/ioctls.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/ioctls.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/tty_driver.h \
+ $(wildcard include/config/console/poll.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/cdev.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/tty_ldisc.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/tty_flags.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/tty.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc/bt_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc/data_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc/btusb_cq.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc/gki_int.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc/gki.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc/target.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc/btusbext.h \
+
+/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/btusb_proc.o: $(deps_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/btusb_proc.o)
+
+$(deps_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/btusb_proc.o):
diff --git a/bcm20705_bcm242/src/.btusb_version.o.cmd b/bcm20705_bcm242/src/.btusb_version.o.cmd
new file mode 100644
index 0000000..bb8076a
--- a/dev/null
+++ b/bcm20705_bcm242/src/.btusb_version.o.cmd
@@ -0,0 +1,644 @@
+cmd_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/btusb_version.o := arm-linux-gnueabihf-gcc -Wp,-MD,/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/.btusb_version.o.d -nostdinc -isystem /opt/gcc-linaro-arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.7.3/include -I/mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include -Iarch/arm/include/generated -I/mnt/nfsroot/weiguang.ruan/m8b/common/include -Iinclude -I/mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi -Iarch/arm/include/generated/uapi -I/mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi -Iinclude/generated/uapi -include /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kconfig.h -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242 -D__KERNEL__ -mlittle-endian -I/mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/mach-mesong9tv/include -I/mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/plat-meson/include -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -Werror -Werror=enum-compare -Werror=comment -Werror=implicit-int -Werror=missing-braces -Werror=unused-value -Werror=maybe-uninitialized -Werror=unused-variable -Werror=format -Werror=unused-function -Werror=switch -Werror=strict-prototypes -Werror=declaration-after-statement -Werror=uninitialized -Werror=unused-label -Werror=undef -Werror=unused-result -Werror=return-type -Werror=parentheses -Werror=int-to-pointer-cast -Wno-error=cpp -O2 -fno-dwarf2-cfi-asm -mabi=aapcs-linux -mno-thumb-interwork -funwind-tables -marm -D__LINUX_ARM_ARCH__=7 -march=armv7-a -msoft-float -Uarm -fno-reorder-blocks -fno-ipa-cp-clone -fno-partial-inlining -Wframe-larger-than=1024 -fno-stack-protector -Wno-unused-but-set-variable -fomit-frame-pointer -g -fno-inline-functions-called-once -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -DCC_HAVE_ASM_GOTO -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242 -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/gki -DEXPORT_SYMTAB -DEXPORT_SYMTAB -DMODULE -D"KBUILD_STR(s)=\#s" -D"KBUILD_BASENAME=KBUILD_STR(btusb_version)" -D"KBUILD_MODNAME=KBUILD_STR(btusb)" -c -o /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/btusb_version.o /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/btusb_version.c
+
+source_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/btusb_version.o := /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/btusb_version.c
+
+deps_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/btusb_version.o := \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc/btusb.h \
+ include/generated/uapi/linux/version.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/usb.h \
+ $(wildcard include/config/usb/mon.h) \
+ $(wildcard include/config/pm.h) \
+ $(wildcard include/config/acpi.h) \
+ $(wildcard include/config/pm/runtime.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/mod_devicetable.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/types.h \
+ $(wildcard include/config/uid16.h) \
+ $(wildcard include/config/lbdaf.h) \
+ $(wildcard include/config/arch/dma/addr/t/64bit.h) \
+ $(wildcard include/config/phys/addr/t/64bit.h) \
+ $(wildcard include/config/64bit.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/types.h \
+ arch/arm/include/generated/asm/types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/int-ll64.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/int-ll64.h \
+ arch/arm/include/generated/asm/bitsperlong.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitsperlong.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/bitsperlong.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/posix_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/stddef.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/stddef.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/compiler.h \
+ $(wildcard include/config/sparse/rcu/pointer.h) \
+ $(wildcard include/config/trace/branch/profiling.h) \
+ $(wildcard include/config/profile/all/branches.h) \
+ $(wildcard include/config/enable/must/check.h) \
+ $(wildcard include/config/enable/warn/deprecated.h) \
+ $(wildcard include/config/kprobes.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/compiler-gcc.h \
+ $(wildcard include/config/arch/supports/optimized/inlining.h) \
+ $(wildcard include/config/optimize/inlining.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/compiler-gcc4.h \
+ $(wildcard include/config/arch/use/builtin/bswap.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/posix_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/posix_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/uuid.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/uuid.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/string.h \
+ $(wildcard include/config/binary/printf.h) \
+ /opt/gcc-linaro-arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.7.3/include/stdarg.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/string.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/string.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/usb/ch9.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/usb/ch9.h \
+ $(wildcard include/config/size.h) \
+ $(wildcard include/config/att/one.h) \
+ $(wildcard include/config/att/selfpower.h) \
+ $(wildcard include/config/att/wakeup.h) \
+ $(wildcard include/config/att/battery.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/byteorder.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/byteorder/little_endian.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/byteorder/little_endian.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/swab.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/swab.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/swab.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/swab.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/byteorder/generic.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/errno.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/errno.h \
+ arch/arm/include/generated/asm/errno.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/errno.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/errno-base.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/delay.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kernel.h \
+ $(wildcard include/config/preempt/voluntary.h) \
+ $(wildcard include/config/debug/atomic/sleep.h) \
+ $(wildcard include/config/prove/locking.h) \
+ $(wildcard include/config/ring/buffer.h) \
+ $(wildcard include/config/tracing.h) \
+ $(wildcard include/config/ftrace/mcount/record.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/linkage.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/stringify.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/export.h \
+ $(wildcard include/config/have/underscore/symbol/prefix.h) \
+ $(wildcard include/config/modules.h) \
+ $(wildcard include/config/modversions.h) \
+ $(wildcard include/config/unused/symbols.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/linkage.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bitops.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/bitops.h \
+ $(wildcard include/config/smp.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/irqflags.h \
+ $(wildcard include/config/trace/irqflags.h) \
+ $(wildcard include/config/irqsoff/tracer.h) \
+ $(wildcard include/config/preempt/tracer.h) \
+ $(wildcard include/config/trace/irqflags/support.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/typecheck.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/irqflags.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/ptrace.h \
+ $(wildcard include/config/arm/thumb.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/ptrace.h \
+ $(wildcard include/config/cpu/endian/be8.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/hwcap.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/hwcap.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/non-atomic.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/fls64.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/sched.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/hweight.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/arch_hweight.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/const_hweight.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/lock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/le.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/ext2-atomic-setbit.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/log2.h \
+ $(wildcard include/config/arch/has/ilog2/u32.h) \
+ $(wildcard include/config/arch/has/ilog2/u64.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/printk.h \
+ $(wildcard include/config/early/printk.h) \
+ $(wildcard include/config/printk.h) \
+ $(wildcard include/config/dynamic/debug.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/init.h \
+ $(wildcard include/config/broken/rodata.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kern_levels.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/dynamic_debug.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/kernel.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/sysinfo.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/div64.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/compiler.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/bug.h \
+ $(wildcard include/config/bug.h) \
+ $(wildcard include/config/thumb2/kernel.h) \
+ $(wildcard include/config/debug/bugverbose.h) \
+ $(wildcard include/config/arm/lpae.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bug.h \
+ $(wildcard include/config/generic/bug.h) \
+ $(wildcard include/config/generic/bug/relative/pointers.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/delay.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/memory.h \
+ $(wildcard include/config/need/mach/memory/h.h) \
+ $(wildcard include/config/mmu.h) \
+ $(wildcard include/config/page/offset.h) \
+ $(wildcard include/config/highmem.h) \
+ $(wildcard include/config/dram/size.h) \
+ $(wildcard include/config/dram/base.h) \
+ $(wildcard include/config/have/tcm.h) \
+ $(wildcard include/config/arm/patch/phys/virt.h) \
+ $(wildcard include/config/phys/offset.h) \
+ $(wildcard include/config/virt/to/bus.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/const.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/sizes.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/mach-mesong9tv/include/mach/memory.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/memory_model.h \
+ $(wildcard include/config/flatmem.h) \
+ $(wildcard include/config/discontigmem.h) \
+ $(wildcard include/config/sparsemem/vmemmap.h) \
+ $(wildcard include/config/sparsemem.h) \
+ arch/arm/include/generated/asm/param.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/param.h \
+ $(wildcard include/config/hz.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/param.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/interrupt.h \
+ $(wildcard include/config/generic/hardirqs.h) \
+ $(wildcard include/config/lockdep.h) \
+ $(wildcard include/config/pm/sleep.h) \
+ $(wildcard include/config/irq/forced/threading.h) \
+ $(wildcard include/config/generic/irq/probe.h) \
+ $(wildcard include/config/proc/fs.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/preempt.h \
+ $(wildcard include/config/debug/preempt.h) \
+ $(wildcard include/config/preempt.h) \
+ $(wildcard include/config/context/tracking.h) \
+ $(wildcard include/config/preempt/count.h) \
+ $(wildcard include/config/preempt/notifiers.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/thread_info.h \
+ $(wildcard include/config/compat.h) \
+ $(wildcard include/config/debug/stack/usage.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bug.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/thread_info.h \
+ $(wildcard include/config/crunch.h) \
+ $(wildcard include/config/arm/thumbee.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/fpstate.h \
+ $(wildcard include/config/vfpv3.h) \
+ $(wildcard include/config/iwmmxt.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/domain.h \
+ $(wildcard include/config/io/36.h) \
+ $(wildcard include/config/cpu/use/domains.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/barrier.h \
+ $(wildcard include/config/cpu/32v6k.h) \
+ $(wildcard include/config/cpu/xsc3.h) \
+ $(wildcard include/config/cpu/fa526.h) \
+ $(wildcard include/config/arch/has/barriers.h) \
+ $(wildcard include/config/arm/dma/mem/bufferable.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/outercache.h \
+ $(wildcard include/config/outer/cache/sync.h) \
+ $(wildcard include/config/outer/cache.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/list.h \
+ $(wildcard include/config/debug/list.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/poison.h \
+ $(wildcard include/config/illegal/pointer/value.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/cpumask.h \
+ $(wildcard include/config/cpumask/offstack.h) \
+ $(wildcard include/config/hotplug/cpu.h) \
+ $(wildcard include/config/debug/per/cpu/maps.h) \
+ $(wildcard include/config/disable/obsolete/cpumask/functions.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/threads.h \
+ $(wildcard include/config/nr/cpus.h) \
+ $(wildcard include/config/base/small.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bitmap.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/irqreturn.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/irqnr.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/irqnr.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/hardirq.h \
+ $(wildcard include/config/tiny/rcu.h) \
+ $(wildcard include/config/tiny/preempt/rcu.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/lockdep.h \
+ $(wildcard include/config/lock/stat.h) \
+ $(wildcard include/config/debug/lock/alloc.h) \
+ $(wildcard include/config/prove/rcu.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/ftrace_irq.h \
+ $(wildcard include/config/ftrace/nmi/enter.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/vtime.h \
+ $(wildcard include/config/virt/cpu/accounting.h) \
+ $(wildcard include/config/virt/cpu/accounting/native.h) \
+ $(wildcard include/config/virt/cpu/accounting/gen.h) \
+ $(wildcard include/config/irq/time/accounting.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/hardirq.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/cache.h \
+ $(wildcard include/config/arch/has/cache/line/size.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/cache.h \
+ $(wildcard include/config/arm/l1/cache/shift.h) \
+ $(wildcard include/config/aeabi.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/irq.h \
+ $(wildcard include/config/sparse/irq.h) \
+ $(wildcard include/config/multi/irq/handler.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/mach-mesong9tv/include/mach/irqs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/irq_cpustat.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/smp.h \
+ $(wildcard include/config/use/generic/smp/helpers.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/smp.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/percpu.h \
+ $(wildcard include/config/need/per/cpu/embed/first/chunk.h) \
+ $(wildcard include/config/need/per/cpu/page/first/chunk.h) \
+ $(wildcard include/config/have/setup/per/cpu/area.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pfn.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/percpu.h \
+ $(wildcard include/config/cpu/v6.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/percpu.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/percpu-defs.h \
+ $(wildcard include/config/debug/force/weak/per/cpu.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/hrtimer.h \
+ $(wildcard include/config/timer/stats.h) \
+ $(wildcard include/config/high/res/timers.h) \
+ $(wildcard include/config/timerfd.h) \
+ $(wildcard include/config/debug/objects/timers.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rbtree.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/ktime.h \
+ $(wildcard include/config/ktime/scalar.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/time.h \
+ $(wildcard include/config/arch/uses/gettimeoffset.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/seqlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/spinlock.h \
+ $(wildcard include/config/debug/spinlock.h) \
+ $(wildcard include/config/generic/lockbreak.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bottom_half.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/spinlock_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/spinlock_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwlock_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/spinlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/processor.h \
+ $(wildcard include/config/have/hw/breakpoint.h) \
+ $(wildcard include/config/arm/errata/754327.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/hw_breakpoint.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/spinlock_api_smp.h \
+ $(wildcard include/config/inline/spin/lock.h) \
+ $(wildcard include/config/inline/spin/lock/bh.h) \
+ $(wildcard include/config/inline/spin/lock/irq.h) \
+ $(wildcard include/config/inline/spin/lock/irqsave.h) \
+ $(wildcard include/config/inline/spin/trylock.h) \
+ $(wildcard include/config/inline/spin/trylock/bh.h) \
+ $(wildcard include/config/uninline/spin/unlock.h) \
+ $(wildcard include/config/inline/spin/unlock/bh.h) \
+ $(wildcard include/config/inline/spin/unlock/irq.h) \
+ $(wildcard include/config/inline/spin/unlock/irqrestore.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwlock_api_smp.h \
+ $(wildcard include/config/inline/read/lock.h) \
+ $(wildcard include/config/inline/write/lock.h) \
+ $(wildcard include/config/inline/read/lock/bh.h) \
+ $(wildcard include/config/inline/write/lock/bh.h) \
+ $(wildcard include/config/inline/read/lock/irq.h) \
+ $(wildcard include/config/inline/write/lock/irq.h) \
+ $(wildcard include/config/inline/read/lock/irqsave.h) \
+ $(wildcard include/config/inline/write/lock/irqsave.h) \
+ $(wildcard include/config/inline/read/trylock.h) \
+ $(wildcard include/config/inline/write/trylock.h) \
+ $(wildcard include/config/inline/read/unlock.h) \
+ $(wildcard include/config/inline/write/unlock.h) \
+ $(wildcard include/config/inline/read/unlock/bh.h) \
+ $(wildcard include/config/inline/write/unlock/bh.h) \
+ $(wildcard include/config/inline/read/unlock/irq.h) \
+ $(wildcard include/config/inline/write/unlock/irq.h) \
+ $(wildcard include/config/inline/read/unlock/irqrestore.h) \
+ $(wildcard include/config/inline/write/unlock/irqrestore.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/atomic.h \
+ $(wildcard include/config/arch/has/atomic/or.h) \
+ $(wildcard include/config/generic/atomic64.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/atomic.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/cmpxchg.h \
+ $(wildcard include/config/cpu/sa1100.h) \
+ $(wildcard include/config/cpu/sa110.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/cmpxchg-local.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/atomic-long.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/math64.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/time.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/jiffies.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/timex.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/timex.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/param.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/timex.h \
+ $(wildcard include/config/arch/multiplatform.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/mach-mesong9tv/include/mach/timex.h \
+ $(wildcard include/config/meson/clock/tick/rate.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/wait.h \
+ arch/arm/include/generated/asm/current.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/current.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/wait.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/timer.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/debugobjects.h \
+ $(wildcard include/config/debug/objects.h) \
+ $(wildcard include/config/debug/objects/free.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/timerqueue.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kref.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/mutex.h \
+ $(wildcard include/config/debug/mutexes.h) \
+ $(wildcard include/config/mutex/spin/on/owner.h) \
+ $(wildcard include/config/have/arch/mutex/cpu/relax.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/workqueue.h \
+ $(wildcard include/config/debug/objects/work.h) \
+ $(wildcard include/config/freezer.h) \
+ $(wildcard include/config/sysfs.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/device.h \
+ $(wildcard include/config/debug/devres.h) \
+ $(wildcard include/config/pinctrl.h) \
+ $(wildcard include/config/numa.h) \
+ $(wildcard include/config/cma.h) \
+ $(wildcard include/config/devtmpfs.h) \
+ $(wildcard include/config/sysfs/deprecated.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/ioport.h \
+ $(wildcard include/config/memory/hotremove.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kobject.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/sysfs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kobject_ns.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/klist.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pinctrl/devinfo.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pinctrl/consumer.h \
+ $(wildcard include/config/pinconf.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/err.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/seq_file.h \
+ $(wildcard include/config/user/ns.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/nodemask.h \
+ $(wildcard include/config/movable/node.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/numa.h \
+ $(wildcard include/config/nodes/shift.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pinctrl/pinctrl-state.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pinctrl/machine.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pm.h \
+ $(wildcard include/config/vt/console/sleep.h) \
+ $(wildcard include/config/pm/clk.h) \
+ $(wildcard include/config/pm/generic/domains.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/completion.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/ratelimit.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/uidgid.h \
+ $(wildcard include/config/uidgid/strict/type/checks.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/highuid.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/device.h \
+ $(wildcard include/config/dmabounce.h) \
+ $(wildcard include/config/iommu/api.h) \
+ $(wildcard include/config/arm/dma/use/iommu.h) \
+ $(wildcard include/config/arch/omap.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pm_wakeup.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/fs.h \
+ $(wildcard include/config/fs/posix/acl.h) \
+ $(wildcard include/config/security.h) \
+ $(wildcard include/config/quota.h) \
+ $(wildcard include/config/fsnotify.h) \
+ $(wildcard include/config/ima.h) \
+ $(wildcard include/config/epoll.h) \
+ $(wildcard include/config/debug/writecount.h) \
+ $(wildcard include/config/file/locking.h) \
+ $(wildcard include/config/auditsyscall.h) \
+ $(wildcard include/config/block.h) \
+ $(wildcard include/config/fs/xip.h) \
+ $(wildcard include/config/migration.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kdev_t.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/kdev_t.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/dcache.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rculist.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rcupdate.h \
+ $(wildcard include/config/rcu/torture/test.h) \
+ $(wildcard include/config/tree/rcu.h) \
+ $(wildcard include/config/tree/preempt/rcu.h) \
+ $(wildcard include/config/rcu/trace.h) \
+ $(wildcard include/config/preempt/rcu.h) \
+ $(wildcard include/config/rcu/user/qs.h) \
+ $(wildcard include/config/debug/objects/rcu/head.h) \
+ $(wildcard include/config/rcu/nocb/cpu.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rcutree.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rculist_bl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/list_bl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bit_spinlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/path.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/stat.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/stat.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/stat.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/radix-tree.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pid.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/capability.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/capability.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/semaphore.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/fiemap.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/shrinker.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/migrate_mode.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/percpu-rwsem.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwsem.h \
+ $(wildcard include/config/rwsem/generic/spinlock.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwsem-spinlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/blk_types.h \
+ $(wildcard include/config/blk/cgroup.h) \
+ $(wildcard include/config/blk/dev/integrity.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/fs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/limits.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/ioctl.h \
+ arch/arm/include/generated/asm/ioctl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/ioctl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/ioctl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/quota.h \
+ $(wildcard include/config/quota/netlink/interface.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/percpu_counter.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/dqblk_xfs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/dqblk_v1.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/dqblk_v2.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/dqblk_qtree.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/projid.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/quota.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/nfs_fs_i.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/fcntl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/fcntl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/fcntl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/fcntl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/sched.h \
+ $(wildcard include/config/sched/debug.h) \
+ $(wildcard include/config/no/hz/common.h) \
+ $(wildcard include/config/lockup/detector.h) \
+ $(wildcard include/config/core/dump/default/elf/headers.h) \
+ $(wildcard include/config/sched/autogroup.h) \
+ $(wildcard include/config/bsd/process/acct.h) \
+ $(wildcard include/config/taskstats.h) \
+ $(wildcard include/config/audit.h) \
+ $(wildcard include/config/cgroups.h) \
+ $(wildcard include/config/inotify/user.h) \
+ $(wildcard include/config/fanotify.h) \
+ $(wildcard include/config/posix/mqueue.h) \
+ $(wildcard include/config/keys.h) \
+ $(wildcard include/config/perf/events.h) \
+ $(wildcard include/config/schedstats.h) \
+ $(wildcard include/config/task/delay/acct.h) \
+ $(wildcard include/config/fair/group/sched.h) \
+ $(wildcard include/config/rt/group/sched.h) \
+ $(wildcard include/config/cgroup/sched.h) \
+ $(wildcard include/config/blk/dev/io/trace.h) \
+ $(wildcard include/config/rcu/boost.h) \
+ $(wildcard include/config/compat/brk.h) \
+ $(wildcard include/config/cc/stackprotector.h) \
+ $(wildcard include/config/sysvipc.h) \
+ $(wildcard include/config/detect/hung/task.h) \
+ $(wildcard include/config/rt/mutexes.h) \
+ $(wildcard include/config/task/xacct.h) \
+ $(wildcard include/config/cpusets.h) \
+ $(wildcard include/config/futex.h) \
+ $(wildcard include/config/numa/balancing.h) \
+ $(wildcard include/config/fault/injection.h) \
+ $(wildcard include/config/latencytop.h) \
+ $(wildcard include/config/function/graph/tracer.h) \
+ $(wildcard include/config/memcg.h) \
+ $(wildcard include/config/uprobes.h) \
+ $(wildcard include/config/bcache.h) \
+ $(wildcard include/config/have/unstable/sched/clock.h) \
+ $(wildcard include/config/no/hz/full.h) \
+ $(wildcard include/config/stack/growsup.h) \
+ $(wildcard include/config/mm/owner.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/sched.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/mm_types.h \
+ $(wildcard include/config/split/ptlock/cpus.h) \
+ $(wildcard include/config/have/cmpxchg/double.h) \
+ $(wildcard include/config/have/aligned/struct/page.h) \
+ $(wildcard include/config/want/page/debug/flags.h) \
+ $(wildcard include/config/kmemcheck.h) \
+ $(wildcard include/config/aio.h) \
+ $(wildcard include/config/mmu/notifier.h) \
+ $(wildcard include/config/transparent/hugepage.h) \
+ $(wildcard include/config/compaction.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/auxvec.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/auxvec.h \
+ arch/arm/include/generated/asm/auxvec.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/auxvec.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/page-debug-flags.h \
+ $(wildcard include/config/page/poisoning.h) \
+ $(wildcard include/config/page/guard.h) \
+ $(wildcard include/config/page/debug/something/else.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/uprobes.h \
+ $(wildcard include/config/arch/supports/uprobes.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/page-flags-layout.h \
+ include/generated/bounds.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/page.h \
+ $(wildcard include/config/cpu/copy/v4wt.h) \
+ $(wildcard include/config/cpu/copy/v4wb.h) \
+ $(wildcard include/config/cpu/copy/feroceon.h) \
+ $(wildcard include/config/cpu/copy/fa.h) \
+ $(wildcard include/config/cpu/xscale.h) \
+ $(wildcard include/config/cpu/copy/v6.h) \
+ $(wildcard include/config/kuser/helpers.h) \
+ $(wildcard include/config/have/arch/pfn/valid.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/glue.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/pgtable-2level-types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/getorder.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/mmu.h \
+ $(wildcard include/config/cpu/has/asid.h) \
+ arch/arm/include/generated/asm/cputime.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/cputime.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/cputime_jiffies.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/sem.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/sem.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/ipc.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/ipc.h \
+ arch/arm/include/generated/asm/ipcbuf.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/ipcbuf.h \
+ arch/arm/include/generated/asm/sembuf.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/sembuf.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/signal.h \
+ $(wildcard include/config/old/sigaction.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/signal.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/signal.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/signal.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/signal-defs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/sigcontext.h \
+ arch/arm/include/generated/asm/siginfo.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/siginfo.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/siginfo.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/topology.h \
+ $(wildcard include/config/sched/smt.h) \
+ $(wildcard include/config/sched/mc.h) \
+ $(wildcard include/config/sched/book.h) \
+ $(wildcard include/config/use/percpu/numa/node/id.h) \
+ $(wildcard include/config/have/memoryless/nodes.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/mmzone.h \
+ $(wildcard include/config/force/max/zoneorder.h) \
+ $(wildcard include/config/memory/isolation.h) \
+ $(wildcard include/config/zone/dma.h) \
+ $(wildcard include/config/zone/dma32.h) \
+ $(wildcard include/config/memory/hotplug.h) \
+ $(wildcard include/config/have/memblock/node/map.h) \
+ $(wildcard include/config/flat/node/mem/map.h) \
+ $(wildcard include/config/no/bootmem.h) \
+ $(wildcard include/config/have/memory/present.h) \
+ $(wildcard include/config/need/node/memmap/size.h) \
+ $(wildcard include/config/need/multiple/nodes.h) \
+ $(wildcard include/config/have/arch/early/pfn/to/nid.h) \
+ $(wildcard include/config/sparsemem/extreme.h) \
+ $(wildcard include/config/nodes/span/other/nodes.h) \
+ $(wildcard include/config/holes/in/zone.h) \
+ $(wildcard include/config/arch/has/holes/memorymodel.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pageblock-flags.h \
+ $(wildcard include/config/hugetlb/page.h) \
+ $(wildcard include/config/hugetlb/page/size/variable.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/sysctl.h \
+ $(wildcard include/config/sysctl.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/sysctl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/memory_hotplug.h \
+ $(wildcard include/config/have/arch/nodedata/extension.h) \
+ $(wildcard include/config/have/bootmem/info/node.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/notifier.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/srcu.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/topology.h \
+ $(wildcard include/config/arm/cpu/topology.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/topology.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/proportions.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/seccomp.h \
+ $(wildcard include/config/seccomp.h) \
+ $(wildcard include/config/seccomp/filter.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/seccomp.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rtmutex.h \
+ $(wildcard include/config/debug/rt/mutexes.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/plist.h \
+ $(wildcard include/config/debug/pi/list.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/resource.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/resource.h \
+ arch/arm/include/generated/asm/resource.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/resource.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/resource.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/task_io_accounting.h \
+ $(wildcard include/config/task/io/accounting.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/latencytop.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/cred.h \
+ $(wildcard include/config/debug/credentials.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/key.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/selinux.h \
+ $(wildcard include/config/security/selinux.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/llist.h \
+ $(wildcard include/config/arch/have/nmi/safe/cmpxchg.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/gfp.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/mmdebug.h \
+ $(wildcard include/config/debug/vm.h) \
+ $(wildcard include/config/debug/virtual.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pm_runtime.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/tty.h \
+ $(wildcard include/config/tty.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/major.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/termios.h \
+ arch/arm/include/generated/asm/termios.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/termios.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/uaccess.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/unified.h \
+ $(wildcard include/config/arm/asm/unified.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/termios.h \
+ arch/arm/include/generated/asm/termbits.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/termbits.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/ioctls.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/ioctls.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/tty_driver.h \
+ $(wildcard include/config/console/poll.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/cdev.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/tty_ldisc.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/tty_flags.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/tty.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc/bt_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc/data_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc/btusb_cq.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc/gki_int.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc/gki.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc/target.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc/btusbext.h \
+
+/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/btusb_version.o: $(deps_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/btusb_version.o)
+
+$(deps_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/btusb_version.o):
diff --git a/src/btusb.c b/bcm20705_bcm242/src/btusb.c
index 5253dcb..5838073 100755
--- a/src/btusb.c
+++ b/bcm20705_bcm242/src/btusb.c
@@ -389,7 +389,7 @@ static int btusb_probe(struct usb_interface *p_interface, const struct usb_devic
int retval = -ENOMEM;
GKI_init();
-
+ printk("===bcm bt drivers for bcm242&bcm20705 ===\r\n");
BTUSB_INFO("p_interface=%p, p_id=%p\n", p_interface, p_id);
BTUSB_INFO("p_interface->cur_altsetting->desc.bInterfaceNumber=%d\n", p_interface->cur_altsetting->desc.bInterfaceNumber);
BTUSB_DBG("match=0x%x VID=0x%x PID=0x%x class=0x%x subclass=0x%x protocol=0x%x\n",
diff --git a/bcm20705_bcm242/src/btusb.o b/bcm20705_bcm242/src/btusb.o
new file mode 100644
index 0000000..4d49994
--- a/dev/null
+++ b/bcm20705_bcm242/src/btusb.o
@@ -0,0 +1,592 @@
+ELF
+0
+
+ph
+XLg
+<,G
+
+
+
+
+ |
+h
+H
+A
+SM
+RM0@
+
+DLL
+
+
+
+H
+ 
+ 0
+ X\
+0
+
+0华g~00b
+p
+0
+
+0华G00D
+` D0
+< 0
+
+ 1
+
+0Gg~
+
+0  
+0
+
+ 0
+
+D`xE
+8 0`0
+` `|
+
+| 0
+
+( 00
+( 6
+ 00
+ `4  p
+ 
+p
+
+
+t
+T
+4 0
+
+
+
+,
+0p0 !
+H
+
+T [ 1
+
+
+H 0(
+
+
+< 0
+
+
+X 0
+
+ <0@0<0a
+
+
+ L0
+
+
+ H0$
+
+
+
+
+
+
+ `
+  
+0!
+0,`00m
+0!
+000T
+0@h00(
+x
+
+
+
+d
+
+
+ 
+
+
+<0
+
+
+
+
+
+
+
+<0
+
+
+
+
+
+<0
+
+
+
+
+
+
+
+p$
+\
+
+
+
+
+p
+P
+4
+H D
+
+
+ 
+
+|\
+`
+L( 
+(
+
+0,
+
+
+
+
+
+
+D
+0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+4
+F
+X
+j
+|
+
+
+'
+I
+L
+
+;
+<'
+9#
+
+
+
+
+L
+
+
+
+
+
+
+
+
+
+
+
+
+:
+
+>'
+s/
+H
+7
+H
+
+7
+
+
+
+
+G
+G
+PG
+f
+
+0
+EwO
+Q
+
+X
+X
+
+
+
+l
+
+l
+
+
+
+$
+[
+fv
+ z
+T'hz
+ 
+
+kD
+
+m
+
+
+
+
+
+
+V
+
+2
+H
+
+H
+C
+!
+l
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+F
+
+F
+
+
+
+
+
+
+
+
+,JQ
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ : ; 
+
+
+
+
+
+
+
+
+
+B
+
+
+
+
+
+
+
+
+,
+
+
+
+
+
+
+
+
+
+
+
+
+
+l
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+J/K
+.u.
+.~J.~.0./u .vf/ .-/-/-/v. .vJ .v. .v/ .--/-/vJ/ .,/v. .vf/ .--/-/vJ/ .,/v/ .--v. .0-v. .v. .-/.-~.w.I
+.u./1.
+J1)3*/1K1/v./-i2Qu. .0x.1z.5+* .uf5y.0H+/2+1-*4)4)00/1/M2*x.. .v,2e2yJfxf-/-/
+
+00,00/IK/0x.RxJ
+.yf.1y..Mkz.zJh/IK/0
+J|J y.0
+[.fLM"J y..yJ y..yJh1
+Jv.0
+[.K.w..*
+
+A "
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/btusb_dev.c b/bcm20705_bcm242/src/btusb_dev.c
index 9e24adc..9e24adc 100755
--- a/src/btusb_dev.c
+++ b/bcm20705_bcm242/src/btusb_dev.c
diff --git a/bcm20705_bcm242/src/btusb_dev.o b/bcm20705_bcm242/src/btusb_dev.o
new file mode 100644
index 0000000..9444be5
--- a/dev/null
+++ b/bcm20705_bcm242/src/btusb_dev.o
@@ -0,0 +1,528 @@
+ELF
+,
+`
+<
+
+0
+
+0
+ 
+ 0
+,0
+$ЍO
+R?NO-,0崐
+
+/
+ 
+
+
+
+(
+
+ 0
+ <00|
+
+X \0
+8
+"9
+;
+
+X 
+
+
+
+
+p
+0@T@
+
+
+
+
+
+
+
+
+
+ 0
+0
+ 0 }?p0   0
+lL
+
+0 {  0
+
+ =?0  0
+
+ 5`0 D 5@
+ᴐ+l
+
+
+ 
+
+H(
+ $
+ 0 5
+
+ 0D 
+ 0
+
+
+
+
+
+
+
+<0
+ 
+
+BC.F? h 0Aσ
+((
+ p`
+ 
+<
+ ( 0
+
+A
+0
+ \D
+@ <0
+ 
+
+XX0
+ 0
+00
+ 
+ |00
+
+T0uS 
+ , 崠
+`t`I=a,0
+ Xd,0
+uV@
+ T`
+
+
+
+
+
+
+DI=
+P0
+
+
+
+$
+
+
+0
+F
+0
+
+B
+E
+
+
+0
+G
+
+7
+0
+V4
+
+
+
+ 
+0
+
+0
+0
+ 
+
+
+ =?00$  0
+0 @<
+
+ 4
+
+
+<
+Q
+ =?00  0
+ xT
+d<V_
+,
+L
+ 
+
+
+
+
+|
+\
+
+
+--------------------------------------------------------------------
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 
++
+E
+
+7
+$
+ 9
+
+
+
+
+
+
+
+
+
+
+m
+
+
+*
+
+
+T
+ +
+
+3
+A3
+T
+T
+H
+3
+
+3
+
+3
+
+K
+3
+3
+j
+I
+
+
+
+3
+3
+3
+3
+3
+3
+
+F
+
+
+
+
+
+
+y
+3
+u}
+
+jA
+
+
+'
+
+
+
+N
+
+
+
+H
+f
++
+$
+
+
+
+&.
+(
+(
+
+
+
+"
+ʷ
+
+
+
+
+
+
+;
+
+
+
+
+b
+
+
+;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+[x
+
+
+
+
+
+
+
+
+_H$
+_$
+_%
+_l%
+[
+[
+_&
+
+
+
+
+ : ; 
+
+
+
+
+
+
+
+
+B
+
+
+
+
+
+
+
+
+
+B 
+
+
+p
+v
+p
+v
+p
+v
+p
+v
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Jw. f
+f3.M.6.hlP
+fu.
+JuJ
+ff2~//L/0d5~x..x..vI,Lg fv. JvJ ff00/of.fw..w..؃vfIK Jv. J3f00/of.wJM}..uI/ JvIK.4z.K/2+1
+g.<}.J$.
+J.
+~.LgL//Hl/-KnJf ք
+~J.
+~JP-0-KM*21gNJic
+Jv.
+J,0
+}..,0
+}J5
+}J/f
+}fgh
+.u. KI/L2*2*2JRx.6
+.hL2uJhgM~J"gM/LgL
+fn`f!.y.
+f
+{ff/-L0x
+fPxJ
+f/-L
+{. fxJ.x.
+Jf
+{ff
+z..4-
+z./x.///4//y./0/
+z./ f-Kx.
+fOwJ.w..w..L,
+[.KJ
+A "
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+)
+-
+8
+9
+:
+\
+{
+|
+
+
+
+
+
+
+
+
diff --git a/src/btusb_isoc.c b/bcm20705_bcm242/src/btusb_isoc.c
index 5987c68..5987c68 100755
--- a/src/btusb_isoc.c
+++ b/bcm20705_bcm242/src/btusb_isoc.c
diff --git a/bcm20705_bcm242/src/btusb_isoc.o b/bcm20705_bcm242/src/btusb_isoc.o
new file mode 100644
index 0000000..f7dbcf4
--- a/dev/null
+++ b/bcm20705_bcm242/src/btusb_isoc.o
@@ -0,0 +1,164 @@
+ELF
+>IJ/
+ 0
+00
+$ЍO80
+T0 h
+d0|P
+ 0|
+`2
+
+
+h 0
+
+ 001_+
+
+
+
+n
+:
+
+
+
+
+
+
+
+
+ 
+"
+$
+%
+
+0
+
+
+
+
+
+/
+
+7
+
+'9'
+
+-
+6
+6
+6
+8
+
+
+
+N
+lJ
+
+
+
+
+
+
+.
+
+
+
+
+
+m
+
+
+v
+
+
+z
+?9
+
+
+
+
+
+
+ۑ
+
+P
+ę
+
+
+
+
+H
+
+
+
+
+
+Ϊ
+
+R
+
+
+
+
+
+* 
+
+
+ : ; 
+
+
+
+
+
+
+
+
+
+
+
+B
+
+
+.v.
+.v.
+.h,0~.h,.~..~.0-3,0g-/-jh s..r. Jy.//3y.60.~.-/./~./.~.fff/-/-/
+J
+A "
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+$
+,
+?
+J
+g
+p
+w
+
+
+
+
+
+
+
+
+
+
diff --git a/src/btusb_lite.c b/bcm20705_bcm242/src/btusb_lite.c
index 7a7fc15..7a7fc15 100755
--- a/src/btusb_lite.c
+++ b/bcm20705_bcm242/src/btusb_lite.c
diff --git a/src/btusb_lite_av.c b/bcm20705_bcm242/src/btusb_lite_av.c
index dff6cc8..dff6cc8 100755
--- a/src/btusb_lite_av.c
+++ b/bcm20705_bcm242/src/btusb_lite_av.c
diff --git a/src/btusb_lite_avdt.c b/bcm20705_bcm242/src/btusb_lite_avdt.c
index d1db2b7..d1db2b7 100755
--- a/src/btusb_lite_avdt.c
+++ b/bcm20705_bcm242/src/btusb_lite_avdt.c
diff --git a/src/btusb_lite_hci.c b/bcm20705_bcm242/src/btusb_lite_hci.c
index 321174a..321174a 100755
--- a/src/btusb_lite_hci.c
+++ b/bcm20705_bcm242/src/btusb_lite_hci.c
diff --git a/src/btusb_lite_l2c.c b/bcm20705_bcm242/src/btusb_lite_l2c.c
index 9d227d2..9d227d2 100755
--- a/src/btusb_lite_l2c.c
+++ b/bcm20705_bcm242/src/btusb_lite_l2c.c
diff --git a/src/btusb_proc.c b/bcm20705_bcm242/src/btusb_proc.c
index 809b25c..809b25c 100755
--- a/src/btusb_proc.c
+++ b/bcm20705_bcm242/src/btusb_proc.c
diff --git a/bcm20705_bcm242/src/btusb_proc.o b/bcm20705_bcm242/src/btusb_proc.o
new file mode 100644
index 0000000..c704f17
--- a/dev/null
+++ b/bcm20705_bcm242/src/btusb_proc.o
@@ -0,0 +1,348 @@
+ELF
+
+@T
+=
+
+t0  
+
+P
+(
+
+EP
+E 
+T
+ 7
+0
+
+ 
+
+
+
+
+
+ 0
+
+
+
+
+
+ 
+ 
+ 
+ 
+ 
+ 
+
+0
+0
+ 
+ 
+0
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0
+
+l
+,
+
+
+0@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+-
+d
+
+:
+ [
+"
+
+F
+
+
+
+
+
+!'
+ %S
+
+
+
+
+
+
+
+
+
+7
+4
+?
+:;
+
+
+
+
+
+T
+
+7
+#
+&
+9a
+
+N
+
+
+
+f
+
+
+ o
+
+
+
+}
+0
+>
+
+
+d
+
+
+
+5
+5
+
+
+
+
+
+$
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+,IQ
+
+@IR
+IQ
+
+@IR
+4IQ
+
+IR
+IQ
+
+IR
+IQ
+IQ8
+IQ\
+IR
+8IQ
+
+
+
+
+
+
+
+
+
+IPu
+
+
+ : ; 
+
+
+
+
+
+
+
+
+B
+
+B 
+
+
+
+
+
+
+.Lz
+}
+fLh/-Kg
+A "
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3
+4
+<
+=
+b
+t
+
+
+
diff --git a/src/btusb_version.c b/bcm20705_bcm242/src/btusb_version.c
index 01f5c8f..01f5c8f 100755
--- a/src/btusb_version.c
+++ b/bcm20705_bcm242/src/btusb_version.c
diff --git a/bcm20705_bcm242/src/btusb_version.o b/bcm20705_bcm242/src/btusb_version.o
new file mode 100644
index 0000000..ab6f66d
--- a/dev/null
+++ b/bcm20705_bcm242/src/btusb_version.o
@@ -0,0 +1,130 @@
+ELF
+)
+0
+
+
+c
+
+}
+U
+
+
+~
+~
+c
+
+
+=
+
+ 
+
+
+
+
+
+_
+}
+J
+"
+G
+|'
+0-
+
+
+7
+7
+
+;
+
+
+
+(
+
+E
+G
+G
+K
+K
+L
+\
+-
+T
+T
+
+\
+A^
+`
+`
+`
+b
+
+
+i
+i
+wm
+f
+
+
+
+
+/
+
+
+E
+
+
+@
+
+
+
+
+
+
+
+
+
+
+Ԉ
+
+
+
+
+
+
+͎
+p
+
+' 
+
+
+
+
+
+
+
+
+A "
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+3
+6
+F
+J
+R
+W
diff --git a/bcm20705_bcm242/src/gki/.gki_buffer.o.cmd b/bcm20705_bcm242/src/gki/.gki_buffer.o.cmd
new file mode 100644
index 0000000..b6e2301
--- a/dev/null
+++ b/bcm20705_bcm242/src/gki/.gki_buffer.o.cmd
@@ -0,0 +1,645 @@
+cmd_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/gki/gki_buffer.o := arm-linux-gnueabihf-gcc -Wp,-MD,/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/gki/.gki_buffer.o.d -nostdinc -isystem /opt/gcc-linaro-arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.7.3/include -I/mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include -Iarch/arm/include/generated -I/mnt/nfsroot/weiguang.ruan/m8b/common/include -Iinclude -I/mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi -Iarch/arm/include/generated/uapi -I/mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi -Iinclude/generated/uapi -include /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kconfig.h -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242 -D__KERNEL__ -mlittle-endian -I/mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/mach-mesong9tv/include -I/mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/plat-meson/include -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -Werror -Werror=enum-compare -Werror=comment -Werror=implicit-int -Werror=missing-braces -Werror=unused-value -Werror=maybe-uninitialized -Werror=unused-variable -Werror=format -Werror=unused-function -Werror=switch -Werror=strict-prototypes -Werror=declaration-after-statement -Werror=uninitialized -Werror=unused-label -Werror=undef -Werror=unused-result -Werror=return-type -Werror=parentheses -Werror=int-to-pointer-cast -Wno-error=cpp -O2 -fno-dwarf2-cfi-asm -mabi=aapcs-linux -mno-thumb-interwork -funwind-tables -marm -D__LINUX_ARM_ARCH__=7 -march=armv7-a -msoft-float -Uarm -fno-reorder-blocks -fno-ipa-cp-clone -fno-partial-inlining -Wframe-larger-than=1024 -fno-stack-protector -Wno-unused-but-set-variable -fomit-frame-pointer -g -fno-inline-functions-called-once -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -DCC_HAVE_ASM_GOTO -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242 -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/gki -DEXPORT_SYMTAB -DEXPORT_SYMTAB -DMODULE -D"KBUILD_STR(s)=\#s" -D"KBUILD_BASENAME=KBUILD_STR(gki_buffer)" -D"KBUILD_MODNAME=KBUILD_STR(btusb)" -c -o /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/gki/gki_buffer.o /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/gki/gki_buffer.c
+
+source_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/gki/gki_buffer.o := /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/gki/gki_buffer.c
+
+deps_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/gki/gki_buffer.o := \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc/gki_int.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc/gki.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc/target.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/usb.h \
+ $(wildcard include/config/usb/mon.h) \
+ $(wildcard include/config/pm.h) \
+ $(wildcard include/config/acpi.h) \
+ $(wildcard include/config/pm/runtime.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/mod_devicetable.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/types.h \
+ $(wildcard include/config/uid16.h) \
+ $(wildcard include/config/lbdaf.h) \
+ $(wildcard include/config/arch/dma/addr/t/64bit.h) \
+ $(wildcard include/config/phys/addr/t/64bit.h) \
+ $(wildcard include/config/64bit.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/types.h \
+ arch/arm/include/generated/asm/types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/int-ll64.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/int-ll64.h \
+ arch/arm/include/generated/asm/bitsperlong.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitsperlong.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/bitsperlong.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/posix_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/stddef.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/stddef.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/compiler.h \
+ $(wildcard include/config/sparse/rcu/pointer.h) \
+ $(wildcard include/config/trace/branch/profiling.h) \
+ $(wildcard include/config/profile/all/branches.h) \
+ $(wildcard include/config/enable/must/check.h) \
+ $(wildcard include/config/enable/warn/deprecated.h) \
+ $(wildcard include/config/kprobes.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/compiler-gcc.h \
+ $(wildcard include/config/arch/supports/optimized/inlining.h) \
+ $(wildcard include/config/optimize/inlining.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/compiler-gcc4.h \
+ $(wildcard include/config/arch/use/builtin/bswap.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/posix_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/posix_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/uuid.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/uuid.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/string.h \
+ $(wildcard include/config/binary/printf.h) \
+ /opt/gcc-linaro-arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.7.3/include/stdarg.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/string.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/string.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/usb/ch9.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/usb/ch9.h \
+ $(wildcard include/config/size.h) \
+ $(wildcard include/config/att/one.h) \
+ $(wildcard include/config/att/selfpower.h) \
+ $(wildcard include/config/att/wakeup.h) \
+ $(wildcard include/config/att/battery.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/byteorder.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/byteorder/little_endian.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/byteorder/little_endian.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/swab.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/swab.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/swab.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/swab.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/byteorder/generic.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/errno.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/errno.h \
+ arch/arm/include/generated/asm/errno.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/errno.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/errno-base.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/delay.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kernel.h \
+ $(wildcard include/config/preempt/voluntary.h) \
+ $(wildcard include/config/debug/atomic/sleep.h) \
+ $(wildcard include/config/prove/locking.h) \
+ $(wildcard include/config/ring/buffer.h) \
+ $(wildcard include/config/tracing.h) \
+ $(wildcard include/config/ftrace/mcount/record.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/linkage.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/stringify.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/export.h \
+ $(wildcard include/config/have/underscore/symbol/prefix.h) \
+ $(wildcard include/config/modules.h) \
+ $(wildcard include/config/modversions.h) \
+ $(wildcard include/config/unused/symbols.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/linkage.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bitops.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/bitops.h \
+ $(wildcard include/config/smp.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/irqflags.h \
+ $(wildcard include/config/trace/irqflags.h) \
+ $(wildcard include/config/irqsoff/tracer.h) \
+ $(wildcard include/config/preempt/tracer.h) \
+ $(wildcard include/config/trace/irqflags/support.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/typecheck.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/irqflags.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/ptrace.h \
+ $(wildcard include/config/arm/thumb.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/ptrace.h \
+ $(wildcard include/config/cpu/endian/be8.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/hwcap.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/hwcap.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/non-atomic.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/fls64.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/sched.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/hweight.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/arch_hweight.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/const_hweight.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/lock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/le.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/ext2-atomic-setbit.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/log2.h \
+ $(wildcard include/config/arch/has/ilog2/u32.h) \
+ $(wildcard include/config/arch/has/ilog2/u64.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/printk.h \
+ $(wildcard include/config/early/printk.h) \
+ $(wildcard include/config/printk.h) \
+ $(wildcard include/config/dynamic/debug.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/init.h \
+ $(wildcard include/config/broken/rodata.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kern_levels.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/dynamic_debug.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/kernel.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/sysinfo.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/div64.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/compiler.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/bug.h \
+ $(wildcard include/config/bug.h) \
+ $(wildcard include/config/thumb2/kernel.h) \
+ $(wildcard include/config/debug/bugverbose.h) \
+ $(wildcard include/config/arm/lpae.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bug.h \
+ $(wildcard include/config/generic/bug.h) \
+ $(wildcard include/config/generic/bug/relative/pointers.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/delay.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/memory.h \
+ $(wildcard include/config/need/mach/memory/h.h) \
+ $(wildcard include/config/mmu.h) \
+ $(wildcard include/config/page/offset.h) \
+ $(wildcard include/config/highmem.h) \
+ $(wildcard include/config/dram/size.h) \
+ $(wildcard include/config/dram/base.h) \
+ $(wildcard include/config/have/tcm.h) \
+ $(wildcard include/config/arm/patch/phys/virt.h) \
+ $(wildcard include/config/phys/offset.h) \
+ $(wildcard include/config/virt/to/bus.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/const.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/sizes.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/mach-mesong9tv/include/mach/memory.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/memory_model.h \
+ $(wildcard include/config/flatmem.h) \
+ $(wildcard include/config/discontigmem.h) \
+ $(wildcard include/config/sparsemem/vmemmap.h) \
+ $(wildcard include/config/sparsemem.h) \
+ arch/arm/include/generated/asm/param.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/param.h \
+ $(wildcard include/config/hz.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/param.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/interrupt.h \
+ $(wildcard include/config/generic/hardirqs.h) \
+ $(wildcard include/config/lockdep.h) \
+ $(wildcard include/config/pm/sleep.h) \
+ $(wildcard include/config/irq/forced/threading.h) \
+ $(wildcard include/config/generic/irq/probe.h) \
+ $(wildcard include/config/proc/fs.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/preempt.h \
+ $(wildcard include/config/debug/preempt.h) \
+ $(wildcard include/config/preempt.h) \
+ $(wildcard include/config/context/tracking.h) \
+ $(wildcard include/config/preempt/count.h) \
+ $(wildcard include/config/preempt/notifiers.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/thread_info.h \
+ $(wildcard include/config/compat.h) \
+ $(wildcard include/config/debug/stack/usage.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bug.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/thread_info.h \
+ $(wildcard include/config/crunch.h) \
+ $(wildcard include/config/arm/thumbee.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/fpstate.h \
+ $(wildcard include/config/vfpv3.h) \
+ $(wildcard include/config/iwmmxt.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/domain.h \
+ $(wildcard include/config/io/36.h) \
+ $(wildcard include/config/cpu/use/domains.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/barrier.h \
+ $(wildcard include/config/cpu/32v6k.h) \
+ $(wildcard include/config/cpu/xsc3.h) \
+ $(wildcard include/config/cpu/fa526.h) \
+ $(wildcard include/config/arch/has/barriers.h) \
+ $(wildcard include/config/arm/dma/mem/bufferable.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/outercache.h \
+ $(wildcard include/config/outer/cache/sync.h) \
+ $(wildcard include/config/outer/cache.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/list.h \
+ $(wildcard include/config/debug/list.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/poison.h \
+ $(wildcard include/config/illegal/pointer/value.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/cpumask.h \
+ $(wildcard include/config/cpumask/offstack.h) \
+ $(wildcard include/config/hotplug/cpu.h) \
+ $(wildcard include/config/debug/per/cpu/maps.h) \
+ $(wildcard include/config/disable/obsolete/cpumask/functions.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/threads.h \
+ $(wildcard include/config/nr/cpus.h) \
+ $(wildcard include/config/base/small.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bitmap.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/irqreturn.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/irqnr.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/irqnr.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/hardirq.h \
+ $(wildcard include/config/tiny/rcu.h) \
+ $(wildcard include/config/tiny/preempt/rcu.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/lockdep.h \
+ $(wildcard include/config/lock/stat.h) \
+ $(wildcard include/config/debug/lock/alloc.h) \
+ $(wildcard include/config/prove/rcu.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/ftrace_irq.h \
+ $(wildcard include/config/ftrace/nmi/enter.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/vtime.h \
+ $(wildcard include/config/virt/cpu/accounting.h) \
+ $(wildcard include/config/virt/cpu/accounting/native.h) \
+ $(wildcard include/config/virt/cpu/accounting/gen.h) \
+ $(wildcard include/config/irq/time/accounting.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/hardirq.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/cache.h \
+ $(wildcard include/config/arch/has/cache/line/size.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/cache.h \
+ $(wildcard include/config/arm/l1/cache/shift.h) \
+ $(wildcard include/config/aeabi.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/irq.h \
+ $(wildcard include/config/sparse/irq.h) \
+ $(wildcard include/config/multi/irq/handler.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/mach-mesong9tv/include/mach/irqs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/irq_cpustat.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/smp.h \
+ $(wildcard include/config/use/generic/smp/helpers.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/smp.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/percpu.h \
+ $(wildcard include/config/need/per/cpu/embed/first/chunk.h) \
+ $(wildcard include/config/need/per/cpu/page/first/chunk.h) \
+ $(wildcard include/config/have/setup/per/cpu/area.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pfn.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/percpu.h \
+ $(wildcard include/config/cpu/v6.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/percpu.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/percpu-defs.h \
+ $(wildcard include/config/debug/force/weak/per/cpu.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/hrtimer.h \
+ $(wildcard include/config/timer/stats.h) \
+ $(wildcard include/config/high/res/timers.h) \
+ $(wildcard include/config/timerfd.h) \
+ $(wildcard include/config/debug/objects/timers.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rbtree.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/ktime.h \
+ $(wildcard include/config/ktime/scalar.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/time.h \
+ $(wildcard include/config/arch/uses/gettimeoffset.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/seqlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/spinlock.h \
+ $(wildcard include/config/debug/spinlock.h) \
+ $(wildcard include/config/generic/lockbreak.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bottom_half.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/spinlock_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/spinlock_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwlock_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/spinlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/processor.h \
+ $(wildcard include/config/have/hw/breakpoint.h) \
+ $(wildcard include/config/arm/errata/754327.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/hw_breakpoint.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/spinlock_api_smp.h \
+ $(wildcard include/config/inline/spin/lock.h) \
+ $(wildcard include/config/inline/spin/lock/bh.h) \
+ $(wildcard include/config/inline/spin/lock/irq.h) \
+ $(wildcard include/config/inline/spin/lock/irqsave.h) \
+ $(wildcard include/config/inline/spin/trylock.h) \
+ $(wildcard include/config/inline/spin/trylock/bh.h) \
+ $(wildcard include/config/uninline/spin/unlock.h) \
+ $(wildcard include/config/inline/spin/unlock/bh.h) \
+ $(wildcard include/config/inline/spin/unlock/irq.h) \
+ $(wildcard include/config/inline/spin/unlock/irqrestore.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwlock_api_smp.h \
+ $(wildcard include/config/inline/read/lock.h) \
+ $(wildcard include/config/inline/write/lock.h) \
+ $(wildcard include/config/inline/read/lock/bh.h) \
+ $(wildcard include/config/inline/write/lock/bh.h) \
+ $(wildcard include/config/inline/read/lock/irq.h) \
+ $(wildcard include/config/inline/write/lock/irq.h) \
+ $(wildcard include/config/inline/read/lock/irqsave.h) \
+ $(wildcard include/config/inline/write/lock/irqsave.h) \
+ $(wildcard include/config/inline/read/trylock.h) \
+ $(wildcard include/config/inline/write/trylock.h) \
+ $(wildcard include/config/inline/read/unlock.h) \
+ $(wildcard include/config/inline/write/unlock.h) \
+ $(wildcard include/config/inline/read/unlock/bh.h) \
+ $(wildcard include/config/inline/write/unlock/bh.h) \
+ $(wildcard include/config/inline/read/unlock/irq.h) \
+ $(wildcard include/config/inline/write/unlock/irq.h) \
+ $(wildcard include/config/inline/read/unlock/irqrestore.h) \
+ $(wildcard include/config/inline/write/unlock/irqrestore.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/atomic.h \
+ $(wildcard include/config/arch/has/atomic/or.h) \
+ $(wildcard include/config/generic/atomic64.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/atomic.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/cmpxchg.h \
+ $(wildcard include/config/cpu/sa1100.h) \
+ $(wildcard include/config/cpu/sa110.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/cmpxchg-local.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/atomic-long.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/math64.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/time.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/jiffies.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/timex.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/timex.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/param.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/timex.h \
+ $(wildcard include/config/arch/multiplatform.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/mach-mesong9tv/include/mach/timex.h \
+ $(wildcard include/config/meson/clock/tick/rate.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/wait.h \
+ arch/arm/include/generated/asm/current.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/current.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/wait.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/timer.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/debugobjects.h \
+ $(wildcard include/config/debug/objects.h) \
+ $(wildcard include/config/debug/objects/free.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/timerqueue.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kref.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/mutex.h \
+ $(wildcard include/config/debug/mutexes.h) \
+ $(wildcard include/config/mutex/spin/on/owner.h) \
+ $(wildcard include/config/have/arch/mutex/cpu/relax.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/workqueue.h \
+ $(wildcard include/config/debug/objects/work.h) \
+ $(wildcard include/config/freezer.h) \
+ $(wildcard include/config/sysfs.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/device.h \
+ $(wildcard include/config/debug/devres.h) \
+ $(wildcard include/config/pinctrl.h) \
+ $(wildcard include/config/numa.h) \
+ $(wildcard include/config/cma.h) \
+ $(wildcard include/config/devtmpfs.h) \
+ $(wildcard include/config/sysfs/deprecated.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/ioport.h \
+ $(wildcard include/config/memory/hotremove.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kobject.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/sysfs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kobject_ns.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/klist.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pinctrl/devinfo.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pinctrl/consumer.h \
+ $(wildcard include/config/pinconf.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/err.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/seq_file.h \
+ $(wildcard include/config/user/ns.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/nodemask.h \
+ $(wildcard include/config/movable/node.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/numa.h \
+ $(wildcard include/config/nodes/shift.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pinctrl/pinctrl-state.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pinctrl/machine.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pm.h \
+ $(wildcard include/config/vt/console/sleep.h) \
+ $(wildcard include/config/pm/clk.h) \
+ $(wildcard include/config/pm/generic/domains.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/completion.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/ratelimit.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/uidgid.h \
+ $(wildcard include/config/uidgid/strict/type/checks.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/highuid.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/device.h \
+ $(wildcard include/config/dmabounce.h) \
+ $(wildcard include/config/iommu/api.h) \
+ $(wildcard include/config/arm/dma/use/iommu.h) \
+ $(wildcard include/config/arch/omap.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pm_wakeup.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/fs.h \
+ $(wildcard include/config/fs/posix/acl.h) \
+ $(wildcard include/config/security.h) \
+ $(wildcard include/config/quota.h) \
+ $(wildcard include/config/fsnotify.h) \
+ $(wildcard include/config/ima.h) \
+ $(wildcard include/config/epoll.h) \
+ $(wildcard include/config/debug/writecount.h) \
+ $(wildcard include/config/file/locking.h) \
+ $(wildcard include/config/auditsyscall.h) \
+ $(wildcard include/config/block.h) \
+ $(wildcard include/config/fs/xip.h) \
+ $(wildcard include/config/migration.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kdev_t.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/kdev_t.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/dcache.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rculist.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rcupdate.h \
+ $(wildcard include/config/rcu/torture/test.h) \
+ $(wildcard include/config/tree/rcu.h) \
+ $(wildcard include/config/tree/preempt/rcu.h) \
+ $(wildcard include/config/rcu/trace.h) \
+ $(wildcard include/config/preempt/rcu.h) \
+ $(wildcard include/config/rcu/user/qs.h) \
+ $(wildcard include/config/debug/objects/rcu/head.h) \
+ $(wildcard include/config/rcu/nocb/cpu.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rcutree.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rculist_bl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/list_bl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bit_spinlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/path.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/stat.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/stat.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/stat.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/radix-tree.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pid.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/capability.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/capability.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/semaphore.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/fiemap.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/shrinker.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/migrate_mode.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/percpu-rwsem.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwsem.h \
+ $(wildcard include/config/rwsem/generic/spinlock.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwsem-spinlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/blk_types.h \
+ $(wildcard include/config/blk/cgroup.h) \
+ $(wildcard include/config/blk/dev/integrity.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/fs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/limits.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/ioctl.h \
+ arch/arm/include/generated/asm/ioctl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/ioctl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/ioctl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/quota.h \
+ $(wildcard include/config/quota/netlink/interface.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/percpu_counter.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/dqblk_xfs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/dqblk_v1.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/dqblk_v2.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/dqblk_qtree.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/projid.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/quota.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/nfs_fs_i.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/fcntl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/fcntl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/fcntl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/fcntl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/sched.h \
+ $(wildcard include/config/sched/debug.h) \
+ $(wildcard include/config/no/hz/common.h) \
+ $(wildcard include/config/lockup/detector.h) \
+ $(wildcard include/config/core/dump/default/elf/headers.h) \
+ $(wildcard include/config/sched/autogroup.h) \
+ $(wildcard include/config/bsd/process/acct.h) \
+ $(wildcard include/config/taskstats.h) \
+ $(wildcard include/config/audit.h) \
+ $(wildcard include/config/cgroups.h) \
+ $(wildcard include/config/inotify/user.h) \
+ $(wildcard include/config/fanotify.h) \
+ $(wildcard include/config/posix/mqueue.h) \
+ $(wildcard include/config/keys.h) \
+ $(wildcard include/config/perf/events.h) \
+ $(wildcard include/config/schedstats.h) \
+ $(wildcard include/config/task/delay/acct.h) \
+ $(wildcard include/config/fair/group/sched.h) \
+ $(wildcard include/config/rt/group/sched.h) \
+ $(wildcard include/config/cgroup/sched.h) \
+ $(wildcard include/config/blk/dev/io/trace.h) \
+ $(wildcard include/config/rcu/boost.h) \
+ $(wildcard include/config/compat/brk.h) \
+ $(wildcard include/config/cc/stackprotector.h) \
+ $(wildcard include/config/sysvipc.h) \
+ $(wildcard include/config/detect/hung/task.h) \
+ $(wildcard include/config/rt/mutexes.h) \
+ $(wildcard include/config/task/xacct.h) \
+ $(wildcard include/config/cpusets.h) \
+ $(wildcard include/config/futex.h) \
+ $(wildcard include/config/numa/balancing.h) \
+ $(wildcard include/config/fault/injection.h) \
+ $(wildcard include/config/latencytop.h) \
+ $(wildcard include/config/function/graph/tracer.h) \
+ $(wildcard include/config/memcg.h) \
+ $(wildcard include/config/uprobes.h) \
+ $(wildcard include/config/bcache.h) \
+ $(wildcard include/config/have/unstable/sched/clock.h) \
+ $(wildcard include/config/no/hz/full.h) \
+ $(wildcard include/config/stack/growsup.h) \
+ $(wildcard include/config/mm/owner.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/sched.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/mm_types.h \
+ $(wildcard include/config/split/ptlock/cpus.h) \
+ $(wildcard include/config/have/cmpxchg/double.h) \
+ $(wildcard include/config/have/aligned/struct/page.h) \
+ $(wildcard include/config/want/page/debug/flags.h) \
+ $(wildcard include/config/kmemcheck.h) \
+ $(wildcard include/config/aio.h) \
+ $(wildcard include/config/mmu/notifier.h) \
+ $(wildcard include/config/transparent/hugepage.h) \
+ $(wildcard include/config/compaction.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/auxvec.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/auxvec.h \
+ arch/arm/include/generated/asm/auxvec.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/auxvec.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/page-debug-flags.h \
+ $(wildcard include/config/page/poisoning.h) \
+ $(wildcard include/config/page/guard.h) \
+ $(wildcard include/config/page/debug/something/else.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/uprobes.h \
+ $(wildcard include/config/arch/supports/uprobes.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/page-flags-layout.h \
+ include/generated/bounds.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/page.h \
+ $(wildcard include/config/cpu/copy/v4wt.h) \
+ $(wildcard include/config/cpu/copy/v4wb.h) \
+ $(wildcard include/config/cpu/copy/feroceon.h) \
+ $(wildcard include/config/cpu/copy/fa.h) \
+ $(wildcard include/config/cpu/xscale.h) \
+ $(wildcard include/config/cpu/copy/v6.h) \
+ $(wildcard include/config/kuser/helpers.h) \
+ $(wildcard include/config/have/arch/pfn/valid.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/glue.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/pgtable-2level-types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/getorder.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/mmu.h \
+ $(wildcard include/config/cpu/has/asid.h) \
+ arch/arm/include/generated/asm/cputime.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/cputime.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/cputime_jiffies.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/sem.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/sem.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/ipc.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/ipc.h \
+ arch/arm/include/generated/asm/ipcbuf.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/ipcbuf.h \
+ arch/arm/include/generated/asm/sembuf.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/sembuf.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/signal.h \
+ $(wildcard include/config/old/sigaction.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/signal.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/signal.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/signal.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/signal-defs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/sigcontext.h \
+ arch/arm/include/generated/asm/siginfo.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/siginfo.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/siginfo.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/topology.h \
+ $(wildcard include/config/sched/smt.h) \
+ $(wildcard include/config/sched/mc.h) \
+ $(wildcard include/config/sched/book.h) \
+ $(wildcard include/config/use/percpu/numa/node/id.h) \
+ $(wildcard include/config/have/memoryless/nodes.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/mmzone.h \
+ $(wildcard include/config/force/max/zoneorder.h) \
+ $(wildcard include/config/memory/isolation.h) \
+ $(wildcard include/config/zone/dma.h) \
+ $(wildcard include/config/zone/dma32.h) \
+ $(wildcard include/config/memory/hotplug.h) \
+ $(wildcard include/config/have/memblock/node/map.h) \
+ $(wildcard include/config/flat/node/mem/map.h) \
+ $(wildcard include/config/no/bootmem.h) \
+ $(wildcard include/config/have/memory/present.h) \
+ $(wildcard include/config/need/node/memmap/size.h) \
+ $(wildcard include/config/need/multiple/nodes.h) \
+ $(wildcard include/config/have/arch/early/pfn/to/nid.h) \
+ $(wildcard include/config/sparsemem/extreme.h) \
+ $(wildcard include/config/nodes/span/other/nodes.h) \
+ $(wildcard include/config/holes/in/zone.h) \
+ $(wildcard include/config/arch/has/holes/memorymodel.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pageblock-flags.h \
+ $(wildcard include/config/hugetlb/page.h) \
+ $(wildcard include/config/hugetlb/page/size/variable.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/sysctl.h \
+ $(wildcard include/config/sysctl.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/sysctl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/memory_hotplug.h \
+ $(wildcard include/config/have/arch/nodedata/extension.h) \
+ $(wildcard include/config/have/bootmem/info/node.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/notifier.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/srcu.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/topology.h \
+ $(wildcard include/config/arm/cpu/topology.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/topology.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/proportions.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/seccomp.h \
+ $(wildcard include/config/seccomp.h) \
+ $(wildcard include/config/seccomp/filter.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/seccomp.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rtmutex.h \
+ $(wildcard include/config/debug/rt/mutexes.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/plist.h \
+ $(wildcard include/config/debug/pi/list.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/resource.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/resource.h \
+ arch/arm/include/generated/asm/resource.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/resource.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/resource.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/task_io_accounting.h \
+ $(wildcard include/config/task/io/accounting.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/latencytop.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/cred.h \
+ $(wildcard include/config/debug/credentials.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/key.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/selinux.h \
+ $(wildcard include/config/security/selinux.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/llist.h \
+ $(wildcard include/config/arch/have/nmi/safe/cmpxchg.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/gfp.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/mmdebug.h \
+ $(wildcard include/config/debug/vm.h) \
+ $(wildcard include/config/debug/virtual.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pm_runtime.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc/data_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc/btusb.h \
+ include/generated/uapi/linux/version.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/tty.h \
+ $(wildcard include/config/tty.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/major.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/termios.h \
+ arch/arm/include/generated/asm/termios.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/termios.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/uaccess.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/unified.h \
+ $(wildcard include/config/arm/asm/unified.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/termios.h \
+ arch/arm/include/generated/asm/termbits.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/termbits.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/ioctls.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/ioctls.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/tty_driver.h \
+ $(wildcard include/config/console/poll.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/cdev.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/tty_ldisc.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/tty_flags.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/tty.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc/bt_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc/btusb_cq.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc/gki_int.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc/btusbext.h \
+
+/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/gki/gki_buffer.o: $(deps_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/gki/gki_buffer.o)
+
+$(deps_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/gki/gki_buffer.o):
diff --git a/bcm20705_bcm242/src/gki/.gki_klinux.o.cmd b/bcm20705_bcm242/src/gki/.gki_klinux.o.cmd
new file mode 100644
index 0000000..a992fbd
--- a/dev/null
+++ b/bcm20705_bcm242/src/gki/.gki_klinux.o.cmd
@@ -0,0 +1,635 @@
+cmd_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/gki/gki_klinux.o := arm-linux-gnueabihf-gcc -Wp,-MD,/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/gki/.gki_klinux.o.d -nostdinc -isystem /opt/gcc-linaro-arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.7.3/include -I/mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include -Iarch/arm/include/generated -I/mnt/nfsroot/weiguang.ruan/m8b/common/include -Iinclude -I/mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi -Iarch/arm/include/generated/uapi -I/mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi -Iinclude/generated/uapi -include /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kconfig.h -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242 -D__KERNEL__ -mlittle-endian -I/mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/mach-mesong9tv/include -I/mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/plat-meson/include -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -Werror -Werror=enum-compare -Werror=comment -Werror=implicit-int -Werror=missing-braces -Werror=unused-value -Werror=maybe-uninitialized -Werror=unused-variable -Werror=format -Werror=unused-function -Werror=switch -Werror=strict-prototypes -Werror=declaration-after-statement -Werror=uninitialized -Werror=unused-label -Werror=undef -Werror=unused-result -Werror=return-type -Werror=parentheses -Werror=int-to-pointer-cast -Wno-error=cpp -O2 -fno-dwarf2-cfi-asm -mabi=aapcs-linux -mno-thumb-interwork -funwind-tables -marm -D__LINUX_ARM_ARCH__=7 -march=armv7-a -msoft-float -Uarm -fno-reorder-blocks -fno-ipa-cp-clone -fno-partial-inlining -Wframe-larger-than=1024 -fno-stack-protector -Wno-unused-but-set-variable -fomit-frame-pointer -g -fno-inline-functions-called-once -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -DCC_HAVE_ASM_GOTO -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242 -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/gki -DEXPORT_SYMTAB -DEXPORT_SYMTAB -DMODULE -D"KBUILD_STR(s)=\#s" -D"KBUILD_BASENAME=KBUILD_STR(gki_klinux)" -D"KBUILD_MODNAME=KBUILD_STR(btusb)" -c -o /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/gki/gki_klinux.o /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/gki/gki_klinux.c
+
+source_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/gki/gki_klinux.o := /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/gki/gki_klinux.c
+
+deps_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/gki/gki_klinux.o := \
+ include/generated/uapi/linux/version.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/slab.h \
+ $(wildcard include/config/slab/debug.h) \
+ $(wildcard include/config/debug/objects.h) \
+ $(wildcard include/config/kmemcheck.h) \
+ $(wildcard include/config/failslab.h) \
+ $(wildcard include/config/slob.h) \
+ $(wildcard include/config/slab.h) \
+ $(wildcard include/config/zone/dma.h) \
+ $(wildcard include/config/slub.h) \
+ $(wildcard include/config/numa.h) \
+ $(wildcard include/config/debug/slab.h) \
+ $(wildcard include/config/tracing.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/gfp.h \
+ $(wildcard include/config/highmem.h) \
+ $(wildcard include/config/zone/dma32.h) \
+ $(wildcard include/config/pm/sleep.h) \
+ $(wildcard include/config/cma.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/mmzone.h \
+ $(wildcard include/config/force/max/zoneorder.h) \
+ $(wildcard include/config/memory/isolation.h) \
+ $(wildcard include/config/smp.h) \
+ $(wildcard include/config/memcg.h) \
+ $(wildcard include/config/compaction.h) \
+ $(wildcard include/config/memory/hotplug.h) \
+ $(wildcard include/config/sparsemem.h) \
+ $(wildcard include/config/have/memblock/node/map.h) \
+ $(wildcard include/config/discontigmem.h) \
+ $(wildcard include/config/flat/node/mem/map.h) \
+ $(wildcard include/config/no/bootmem.h) \
+ $(wildcard include/config/numa/balancing.h) \
+ $(wildcard include/config/have/memory/present.h) \
+ $(wildcard include/config/have/memoryless/nodes.h) \
+ $(wildcard include/config/need/node/memmap/size.h) \
+ $(wildcard include/config/need/multiple/nodes.h) \
+ $(wildcard include/config/have/arch/early/pfn/to/nid.h) \
+ $(wildcard include/config/flatmem.h) \
+ $(wildcard include/config/sparsemem/extreme.h) \
+ $(wildcard include/config/have/arch/pfn/valid.h) \
+ $(wildcard include/config/nodes/span/other/nodes.h) \
+ $(wildcard include/config/holes/in/zone.h) \
+ $(wildcard include/config/arch/has/holes/memorymodel.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/spinlock.h \
+ $(wildcard include/config/debug/spinlock.h) \
+ $(wildcard include/config/generic/lockbreak.h) \
+ $(wildcard include/config/preempt.h) \
+ $(wildcard include/config/debug/lock/alloc.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/typecheck.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/preempt.h \
+ $(wildcard include/config/debug/preempt.h) \
+ $(wildcard include/config/preempt/tracer.h) \
+ $(wildcard include/config/context/tracking.h) \
+ $(wildcard include/config/preempt/count.h) \
+ $(wildcard include/config/preempt/notifiers.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/thread_info.h \
+ $(wildcard include/config/compat.h) \
+ $(wildcard include/config/debug/stack/usage.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/types.h \
+ $(wildcard include/config/uid16.h) \
+ $(wildcard include/config/lbdaf.h) \
+ $(wildcard include/config/arch/dma/addr/t/64bit.h) \
+ $(wildcard include/config/phys/addr/t/64bit.h) \
+ $(wildcard include/config/64bit.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/types.h \
+ arch/arm/include/generated/asm/types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/int-ll64.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/int-ll64.h \
+ arch/arm/include/generated/asm/bitsperlong.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitsperlong.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/bitsperlong.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/posix_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/stddef.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/stddef.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/compiler.h \
+ $(wildcard include/config/sparse/rcu/pointer.h) \
+ $(wildcard include/config/trace/branch/profiling.h) \
+ $(wildcard include/config/profile/all/branches.h) \
+ $(wildcard include/config/enable/must/check.h) \
+ $(wildcard include/config/enable/warn/deprecated.h) \
+ $(wildcard include/config/kprobes.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/compiler-gcc.h \
+ $(wildcard include/config/arch/supports/optimized/inlining.h) \
+ $(wildcard include/config/optimize/inlining.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/compiler-gcc4.h \
+ $(wildcard include/config/arch/use/builtin/bswap.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/posix_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/posix_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bug.h \
+ $(wildcard include/config/generic/bug.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/bug.h \
+ $(wildcard include/config/bug.h) \
+ $(wildcard include/config/thumb2/kernel.h) \
+ $(wildcard include/config/debug/bugverbose.h) \
+ $(wildcard include/config/arm/lpae.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/linkage.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/stringify.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/export.h \
+ $(wildcard include/config/have/underscore/symbol/prefix.h) \
+ $(wildcard include/config/modules.h) \
+ $(wildcard include/config/modversions.h) \
+ $(wildcard include/config/unused/symbols.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/linkage.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bug.h \
+ $(wildcard include/config/generic/bug/relative/pointers.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kernel.h \
+ $(wildcard include/config/preempt/voluntary.h) \
+ $(wildcard include/config/debug/atomic/sleep.h) \
+ $(wildcard include/config/prove/locking.h) \
+ $(wildcard include/config/ring/buffer.h) \
+ $(wildcard include/config/ftrace/mcount/record.h) \
+ /opt/gcc-linaro-arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.7.3/include/stdarg.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bitops.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/bitops.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/irqflags.h \
+ $(wildcard include/config/trace/irqflags.h) \
+ $(wildcard include/config/irqsoff/tracer.h) \
+ $(wildcard include/config/trace/irqflags/support.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/irqflags.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/ptrace.h \
+ $(wildcard include/config/arm/thumb.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/ptrace.h \
+ $(wildcard include/config/cpu/endian/be8.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/hwcap.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/hwcap.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/non-atomic.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/fls64.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/sched.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/hweight.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/arch_hweight.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/const_hweight.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/lock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/le.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/byteorder.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/byteorder/little_endian.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/byteorder/little_endian.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/swab.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/swab.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/swab.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/swab.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/byteorder/generic.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/ext2-atomic-setbit.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/log2.h \
+ $(wildcard include/config/arch/has/ilog2/u32.h) \
+ $(wildcard include/config/arch/has/ilog2/u64.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/printk.h \
+ $(wildcard include/config/early/printk.h) \
+ $(wildcard include/config/printk.h) \
+ $(wildcard include/config/dynamic/debug.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/init.h \
+ $(wildcard include/config/broken/rodata.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kern_levels.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/dynamic_debug.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/string.h \
+ $(wildcard include/config/binary/printf.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/string.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/string.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/errno.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/errno.h \
+ arch/arm/include/generated/asm/errno.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/errno.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/errno-base.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/kernel.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/sysinfo.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/div64.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/compiler.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/thread_info.h \
+ $(wildcard include/config/crunch.h) \
+ $(wildcard include/config/arm/thumbee.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/fpstate.h \
+ $(wildcard include/config/vfpv3.h) \
+ $(wildcard include/config/iwmmxt.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/domain.h \
+ $(wildcard include/config/io/36.h) \
+ $(wildcard include/config/cpu/use/domains.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/barrier.h \
+ $(wildcard include/config/cpu/32v6k.h) \
+ $(wildcard include/config/cpu/xsc3.h) \
+ $(wildcard include/config/cpu/fa526.h) \
+ $(wildcard include/config/arch/has/barriers.h) \
+ $(wildcard include/config/arm/dma/mem/bufferable.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/outercache.h \
+ $(wildcard include/config/outer/cache/sync.h) \
+ $(wildcard include/config/outer/cache.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/list.h \
+ $(wildcard include/config/debug/list.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/poison.h \
+ $(wildcard include/config/illegal/pointer/value.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/const.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bottom_half.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/spinlock_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/spinlock_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/lockdep.h \
+ $(wildcard include/config/lockdep.h) \
+ $(wildcard include/config/lock/stat.h) \
+ $(wildcard include/config/prove/rcu.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwlock_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/spinlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/processor.h \
+ $(wildcard include/config/have/hw/breakpoint.h) \
+ $(wildcard include/config/mmu.h) \
+ $(wildcard include/config/arm/errata/754327.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/hw_breakpoint.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/spinlock_api_smp.h \
+ $(wildcard include/config/inline/spin/lock.h) \
+ $(wildcard include/config/inline/spin/lock/bh.h) \
+ $(wildcard include/config/inline/spin/lock/irq.h) \
+ $(wildcard include/config/inline/spin/lock/irqsave.h) \
+ $(wildcard include/config/inline/spin/trylock.h) \
+ $(wildcard include/config/inline/spin/trylock/bh.h) \
+ $(wildcard include/config/uninline/spin/unlock.h) \
+ $(wildcard include/config/inline/spin/unlock/bh.h) \
+ $(wildcard include/config/inline/spin/unlock/irq.h) \
+ $(wildcard include/config/inline/spin/unlock/irqrestore.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwlock_api_smp.h \
+ $(wildcard include/config/inline/read/lock.h) \
+ $(wildcard include/config/inline/write/lock.h) \
+ $(wildcard include/config/inline/read/lock/bh.h) \
+ $(wildcard include/config/inline/write/lock/bh.h) \
+ $(wildcard include/config/inline/read/lock/irq.h) \
+ $(wildcard include/config/inline/write/lock/irq.h) \
+ $(wildcard include/config/inline/read/lock/irqsave.h) \
+ $(wildcard include/config/inline/write/lock/irqsave.h) \
+ $(wildcard include/config/inline/read/trylock.h) \
+ $(wildcard include/config/inline/write/trylock.h) \
+ $(wildcard include/config/inline/read/unlock.h) \
+ $(wildcard include/config/inline/write/unlock.h) \
+ $(wildcard include/config/inline/read/unlock/bh.h) \
+ $(wildcard include/config/inline/write/unlock/bh.h) \
+ $(wildcard include/config/inline/read/unlock/irq.h) \
+ $(wildcard include/config/inline/write/unlock/irq.h) \
+ $(wildcard include/config/inline/read/unlock/irqrestore.h) \
+ $(wildcard include/config/inline/write/unlock/irqrestore.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/atomic.h \
+ $(wildcard include/config/arch/has/atomic/or.h) \
+ $(wildcard include/config/generic/atomic64.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/atomic.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/cmpxchg.h \
+ $(wildcard include/config/cpu/sa1100.h) \
+ $(wildcard include/config/cpu/sa110.h) \
+ $(wildcard include/config/cpu/v6.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/cmpxchg-local.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/atomic-long.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/wait.h \
+ arch/arm/include/generated/asm/current.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/current.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/wait.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/cache.h \
+ $(wildcard include/config/arch/has/cache/line/size.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/cache.h \
+ $(wildcard include/config/arm/l1/cache/shift.h) \
+ $(wildcard include/config/aeabi.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/threads.h \
+ $(wildcard include/config/nr/cpus.h) \
+ $(wildcard include/config/base/small.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/numa.h \
+ $(wildcard include/config/nodes/shift.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/seqlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/nodemask.h \
+ $(wildcard include/config/movable/node.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bitmap.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pageblock-flags.h \
+ $(wildcard include/config/hugetlb/page.h) \
+ $(wildcard include/config/hugetlb/page/size/variable.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/page-flags-layout.h \
+ $(wildcard include/config/sparsemem/vmemmap.h) \
+ include/generated/bounds.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/page.h \
+ $(wildcard include/config/cpu/copy/v4wt.h) \
+ $(wildcard include/config/cpu/copy/v4wb.h) \
+ $(wildcard include/config/cpu/copy/feroceon.h) \
+ $(wildcard include/config/cpu/copy/fa.h) \
+ $(wildcard include/config/cpu/xscale.h) \
+ $(wildcard include/config/cpu/copy/v6.h) \
+ $(wildcard include/config/kuser/helpers.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/glue.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/pgtable-2level-types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/memory.h \
+ $(wildcard include/config/need/mach/memory/h.h) \
+ $(wildcard include/config/page/offset.h) \
+ $(wildcard include/config/dram/size.h) \
+ $(wildcard include/config/dram/base.h) \
+ $(wildcard include/config/have/tcm.h) \
+ $(wildcard include/config/arm/patch/phys/virt.h) \
+ $(wildcard include/config/phys/offset.h) \
+ $(wildcard include/config/virt/to/bus.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/sizes.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/mach-mesong9tv/include/mach/memory.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/memory_model.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/getorder.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/sysctl.h \
+ $(wildcard include/config/sysctl.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rcupdate.h \
+ $(wildcard include/config/rcu/torture/test.h) \
+ $(wildcard include/config/tree/rcu.h) \
+ $(wildcard include/config/tree/preempt/rcu.h) \
+ $(wildcard include/config/rcu/trace.h) \
+ $(wildcard include/config/preempt/rcu.h) \
+ $(wildcard include/config/rcu/user/qs.h) \
+ $(wildcard include/config/tiny/rcu.h) \
+ $(wildcard include/config/tiny/preempt/rcu.h) \
+ $(wildcard include/config/debug/objects/rcu/head.h) \
+ $(wildcard include/config/hotplug/cpu.h) \
+ $(wildcard include/config/rcu/nocb/cpu.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/cpumask.h \
+ $(wildcard include/config/cpumask/offstack.h) \
+ $(wildcard include/config/debug/per/cpu/maps.h) \
+ $(wildcard include/config/disable/obsolete/cpumask/functions.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/completion.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/debugobjects.h \
+ $(wildcard include/config/debug/objects/free.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rcutree.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rbtree.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/sysctl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/memory_hotplug.h \
+ $(wildcard include/config/memory/hotremove.h) \
+ $(wildcard include/config/have/arch/nodedata/extension.h) \
+ $(wildcard include/config/have/bootmem/info/node.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/notifier.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/mutex.h \
+ $(wildcard include/config/debug/mutexes.h) \
+ $(wildcard include/config/mutex/spin/on/owner.h) \
+ $(wildcard include/config/have/arch/mutex/cpu/relax.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwsem.h \
+ $(wildcard include/config/rwsem/generic/spinlock.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwsem-spinlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/srcu.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/workqueue.h \
+ $(wildcard include/config/debug/objects/work.h) \
+ $(wildcard include/config/freezer.h) \
+ $(wildcard include/config/sysfs.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/timer.h \
+ $(wildcard include/config/timer/stats.h) \
+ $(wildcard include/config/debug/objects/timers.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/ktime.h \
+ $(wildcard include/config/ktime/scalar.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/time.h \
+ $(wildcard include/config/arch/uses/gettimeoffset.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/math64.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/time.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/jiffies.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/timex.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/timex.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/param.h \
+ arch/arm/include/generated/asm/param.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/param.h \
+ $(wildcard include/config/hz.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/param.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/timex.h \
+ $(wildcard include/config/arch/multiplatform.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/mach-mesong9tv/include/mach/timex.h \
+ $(wildcard include/config/meson/clock/tick/rate.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/topology.h \
+ $(wildcard include/config/sched/smt.h) \
+ $(wildcard include/config/sched/mc.h) \
+ $(wildcard include/config/sched/book.h) \
+ $(wildcard include/config/use/percpu/numa/node/id.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/smp.h \
+ $(wildcard include/config/use/generic/smp/helpers.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/smp.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/percpu.h \
+ $(wildcard include/config/need/per/cpu/embed/first/chunk.h) \
+ $(wildcard include/config/need/per/cpu/page/first/chunk.h) \
+ $(wildcard include/config/have/setup/per/cpu/area.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pfn.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/percpu.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/percpu.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/percpu-defs.h \
+ $(wildcard include/config/debug/force/weak/per/cpu.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/topology.h \
+ $(wildcard include/config/arm/cpu/topology.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/topology.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/mmdebug.h \
+ $(wildcard include/config/debug/vm.h) \
+ $(wildcard include/config/debug/virtual.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/slub_def.h \
+ $(wildcard include/config/slub/stats.h) \
+ $(wildcard include/config/memcg/kmem.h) \
+ $(wildcard include/config/slub/debug.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kobject.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/sysfs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kobject_ns.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kref.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kmemleak.h \
+ $(wildcard include/config/debug/kmemleak.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/semaphore.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc/target.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/usb.h \
+ $(wildcard include/config/usb/mon.h) \
+ $(wildcard include/config/pm.h) \
+ $(wildcard include/config/acpi.h) \
+ $(wildcard include/config/pm/runtime.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/mod_devicetable.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/uuid.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/uuid.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/usb/ch9.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/usb/ch9.h \
+ $(wildcard include/config/size.h) \
+ $(wildcard include/config/att/one.h) \
+ $(wildcard include/config/att/selfpower.h) \
+ $(wildcard include/config/att/wakeup.h) \
+ $(wildcard include/config/att/battery.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/delay.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/delay.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/interrupt.h \
+ $(wildcard include/config/generic/hardirqs.h) \
+ $(wildcard include/config/irq/forced/threading.h) \
+ $(wildcard include/config/generic/irq/probe.h) \
+ $(wildcard include/config/proc/fs.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/irqreturn.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/irqnr.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/irqnr.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/hardirq.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/ftrace_irq.h \
+ $(wildcard include/config/ftrace/nmi/enter.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/vtime.h \
+ $(wildcard include/config/virt/cpu/accounting.h) \
+ $(wildcard include/config/virt/cpu/accounting/native.h) \
+ $(wildcard include/config/virt/cpu/accounting/gen.h) \
+ $(wildcard include/config/irq/time/accounting.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/hardirq.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/irq.h \
+ $(wildcard include/config/sparse/irq.h) \
+ $(wildcard include/config/multi/irq/handler.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/mach-mesong9tv/include/mach/irqs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/irq_cpustat.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/hrtimer.h \
+ $(wildcard include/config/high/res/timers.h) \
+ $(wildcard include/config/timerfd.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/timerqueue.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/device.h \
+ $(wildcard include/config/debug/devres.h) \
+ $(wildcard include/config/pinctrl.h) \
+ $(wildcard include/config/devtmpfs.h) \
+ $(wildcard include/config/sysfs/deprecated.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/ioport.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/klist.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pinctrl/devinfo.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pinctrl/consumer.h \
+ $(wildcard include/config/pinconf.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/err.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/seq_file.h \
+ $(wildcard include/config/user/ns.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pinctrl/pinctrl-state.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pinctrl/machine.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pm.h \
+ $(wildcard include/config/vt/console/sleep.h) \
+ $(wildcard include/config/pm/clk.h) \
+ $(wildcard include/config/pm/generic/domains.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/ratelimit.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/uidgid.h \
+ $(wildcard include/config/uidgid/strict/type/checks.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/highuid.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/device.h \
+ $(wildcard include/config/dmabounce.h) \
+ $(wildcard include/config/iommu/api.h) \
+ $(wildcard include/config/arm/dma/use/iommu.h) \
+ $(wildcard include/config/arch/omap.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pm_wakeup.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/fs.h \
+ $(wildcard include/config/fs/posix/acl.h) \
+ $(wildcard include/config/security.h) \
+ $(wildcard include/config/quota.h) \
+ $(wildcard include/config/fsnotify.h) \
+ $(wildcard include/config/ima.h) \
+ $(wildcard include/config/epoll.h) \
+ $(wildcard include/config/debug/writecount.h) \
+ $(wildcard include/config/file/locking.h) \
+ $(wildcard include/config/auditsyscall.h) \
+ $(wildcard include/config/block.h) \
+ $(wildcard include/config/fs/xip.h) \
+ $(wildcard include/config/migration.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kdev_t.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/kdev_t.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/dcache.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rculist.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rculist_bl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/list_bl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bit_spinlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/path.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/stat.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/stat.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/stat.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/radix-tree.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pid.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/capability.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/capability.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/fiemap.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/shrinker.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/migrate_mode.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/percpu-rwsem.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/blk_types.h \
+ $(wildcard include/config/blk/cgroup.h) \
+ $(wildcard include/config/blk/dev/integrity.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/fs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/limits.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/ioctl.h \
+ arch/arm/include/generated/asm/ioctl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/ioctl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/ioctl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/quota.h \
+ $(wildcard include/config/quota/netlink/interface.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/percpu_counter.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/dqblk_xfs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/dqblk_v1.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/dqblk_v2.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/dqblk_qtree.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/projid.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/quota.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/nfs_fs_i.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/fcntl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/fcntl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/fcntl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/fcntl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/sched.h \
+ $(wildcard include/config/sched/debug.h) \
+ $(wildcard include/config/no/hz/common.h) \
+ $(wildcard include/config/lockup/detector.h) \
+ $(wildcard include/config/core/dump/default/elf/headers.h) \
+ $(wildcard include/config/sched/autogroup.h) \
+ $(wildcard include/config/bsd/process/acct.h) \
+ $(wildcard include/config/taskstats.h) \
+ $(wildcard include/config/audit.h) \
+ $(wildcard include/config/cgroups.h) \
+ $(wildcard include/config/inotify/user.h) \
+ $(wildcard include/config/fanotify.h) \
+ $(wildcard include/config/posix/mqueue.h) \
+ $(wildcard include/config/keys.h) \
+ $(wildcard include/config/perf/events.h) \
+ $(wildcard include/config/schedstats.h) \
+ $(wildcard include/config/task/delay/acct.h) \
+ $(wildcard include/config/fair/group/sched.h) \
+ $(wildcard include/config/rt/group/sched.h) \
+ $(wildcard include/config/cgroup/sched.h) \
+ $(wildcard include/config/blk/dev/io/trace.h) \
+ $(wildcard include/config/rcu/boost.h) \
+ $(wildcard include/config/compat/brk.h) \
+ $(wildcard include/config/cc/stackprotector.h) \
+ $(wildcard include/config/sysvipc.h) \
+ $(wildcard include/config/detect/hung/task.h) \
+ $(wildcard include/config/rt/mutexes.h) \
+ $(wildcard include/config/task/xacct.h) \
+ $(wildcard include/config/cpusets.h) \
+ $(wildcard include/config/futex.h) \
+ $(wildcard include/config/fault/injection.h) \
+ $(wildcard include/config/latencytop.h) \
+ $(wildcard include/config/function/graph/tracer.h) \
+ $(wildcard include/config/uprobes.h) \
+ $(wildcard include/config/bcache.h) \
+ $(wildcard include/config/have/unstable/sched/clock.h) \
+ $(wildcard include/config/no/hz/full.h) \
+ $(wildcard include/config/stack/growsup.h) \
+ $(wildcard include/config/mm/owner.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/sched.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/mm_types.h \
+ $(wildcard include/config/split/ptlock/cpus.h) \
+ $(wildcard include/config/have/cmpxchg/double.h) \
+ $(wildcard include/config/have/aligned/struct/page.h) \
+ $(wildcard include/config/want/page/debug/flags.h) \
+ $(wildcard include/config/aio.h) \
+ $(wildcard include/config/mmu/notifier.h) \
+ $(wildcard include/config/transparent/hugepage.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/auxvec.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/auxvec.h \
+ arch/arm/include/generated/asm/auxvec.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/auxvec.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/page-debug-flags.h \
+ $(wildcard include/config/page/poisoning.h) \
+ $(wildcard include/config/page/guard.h) \
+ $(wildcard include/config/page/debug/something/else.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/uprobes.h \
+ $(wildcard include/config/arch/supports/uprobes.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/mmu.h \
+ $(wildcard include/config/cpu/has/asid.h) \
+ arch/arm/include/generated/asm/cputime.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/cputime.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/cputime_jiffies.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/sem.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/sem.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/ipc.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/ipc.h \
+ arch/arm/include/generated/asm/ipcbuf.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/ipcbuf.h \
+ arch/arm/include/generated/asm/sembuf.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/sembuf.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/signal.h \
+ $(wildcard include/config/old/sigaction.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/signal.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/signal.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/signal.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/signal-defs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/sigcontext.h \
+ arch/arm/include/generated/asm/siginfo.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/siginfo.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/siginfo.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/proportions.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/seccomp.h \
+ $(wildcard include/config/seccomp.h) \
+ $(wildcard include/config/seccomp/filter.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/seccomp.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rtmutex.h \
+ $(wildcard include/config/debug/rt/mutexes.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/plist.h \
+ $(wildcard include/config/debug/pi/list.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/resource.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/resource.h \
+ arch/arm/include/generated/asm/resource.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/resource.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/resource.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/task_io_accounting.h \
+ $(wildcard include/config/task/io/accounting.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/latencytop.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/cred.h \
+ $(wildcard include/config/debug/credentials.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/key.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/selinux.h \
+ $(wildcard include/config/security/selinux.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/llist.h \
+ $(wildcard include/config/arch/have/nmi/safe/cmpxchg.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pm_runtime.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc/gki_int.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc/gki.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc/target.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc/data_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/inc/bt_types.h \
+
+/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/gki/gki_klinux.o: $(deps_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/gki/gki_klinux.o)
+
+$(deps_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm20705_bcm242/src/gki/gki_klinux.o):
diff --git a/src/gki/gki_buffer.c b/bcm20705_bcm242/src/gki/gki_buffer.c
index aa09483..aa09483 100755
--- a/src/gki/gki_buffer.c
+++ b/bcm20705_bcm242/src/gki/gki_buffer.c
diff --git a/bcm20705_bcm242/src/gki/gki_buffer.o b/bcm20705_bcm242/src/gki/gki_buffer.o
new file mode 100644
index 0000000..10ea259
--- a/dev/null
+++ b/bcm20705_bcm242/src/gki/gki_buffer.o
@@ -0,0 +1,558 @@
+ELF
+
+
+1
+
+
+
+,Q`
+
+2d
+
+
+
+
+@0T
+@0T
+h@0TDT 
+p@0T`D
+
+`
+<
+`8@0T
+H8@
+0
+0
+@0
+` 1
+p
+
+
+
+
+P
+(
+
+
+
+
+
+1
+
+v
+
+
+h
+p
+
+|
+
+
+
+{u
+x
+x
+x
+x
+x
+
+
+
+y
+!-
+1B
+6
+7x
+8
+;x
+<
+=
+@9
+G}
+J
+Lt
+OOb
+
+OOb
+Q
+Th
+Wx
+Xx
+Xx
+Yx
+Z
+]
+_
+`
+
+b
+e
+h
+i
+k
+l
+wp
+xp
+|
+}
+~p
+
+
+?
+
+m
+`
+`
+Wi
+Wi
+Wi
+Wi
+Wi
+v
+
+
+
+
+
+
+v
+p
+T
+T
+
+x
+x
+bi
+
+o
+U
+T
+m
+[
+a
+i
+i
+i
+
+l
+
+,
+w
+|
+}
+d
+
+kt
+
+
+:
+
+st
+
+|
+ 
+ 
+
+M
+ł
+
+˂
+t
+'ׂ
+)
+,
+0
+1
+E;
+JM
+Lg
+Xx
+Yx
+Z
+d
+e
+x
+z
+
+
+
+
+
+
+
+r
+
+
+
+
+
+
+K
+"
+Z
+'
+C-
+
+
+
+7
+7
+
+
+;
+=
+
+
+8
+
+
+E
+M
+K
+ L
+M
+
+
+
+T
+U
+
+
+
+
+T^
+`
+`
+a
+b
+
+)i
+i
+l
+
+
+
+
+
+
+
+
+
+X'
+m
+ 
+
+
+
+{u
+|
+}u
+~:
+22
+S
+
+pv
+x
+<
+
+Wi
+Wi
+
+
+v
+Wi
+Wi
+
+
+v
+Wi
+Wi
+!w
+Wi
+Wi
+
+\w
+v
+x
+
+
+
+
+x
+S
+p
+l
+x
+x
+p
+x
+
+
+
+x
+
+ v
+ |:
+ 
+
+!w
+v
+p
+!|:
+$x
+&}
+1Wi
+1Wi
+1Wi
+1Wi
+2Wi
+3Wi
+5v
+7
+7
+7
+7
+8
+8
+8
+8
+9
+9
+9
+9
+:
+:
+;t
+C
+N}
+Qu
+W
+X
+Y}
+e;
+hy
+iT
+jT
+m
+S
+)~
+
+
+
+
+O~
+{~
+
+
+~
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+g
+O~
+
+
+
+
+
+
+
+
+~
+g
+s
+s
+{~
+
+
+
+
+
+
+
+
+
+*
+
+
+
+
+o
+
+
+
+[
+
+
+
+
+
+
+z
+
+
+
+3
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+9
+|:
+' 
+
+
+
+
+
+
+
+B
+
+B 
+B 
+
+
+B 
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+.z.4j*0
+.+1 .w.gK3+0///3KR+JJJ.2*2i2JN.5,0LK(X.22i1hhM20/*/L/4*.2*2h!J_.5hJh.20L3)4/2,x.6L3+f.10
+A "
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+>
+?
+T
+}
+
+
diff --git a/src/gki/gki_klinux.c b/bcm20705_bcm242/src/gki/gki_klinux.c
index fb424ee..fb424ee 100755
--- a/src/gki/gki_klinux.c
+++ b/bcm20705_bcm242/src/gki/gki_klinux.c
diff --git a/bcm20705_bcm242/src/gki/gki_klinux.o b/bcm20705_bcm242/src/gki/gki_klinux.o
new file mode 100644
index 0000000..e5296e9
--- a/dev/null
+++ b/bcm20705_bcm242/src/gki/gki_klinux.o
@@ -0,0 +1,116 @@
+ELF
+ 1@!@
+
+
+
+&
+
+
+`
+ 
+
+z
+ 1
+
+{
+
+.
+
+
+
+
+U6
+
+
+
+
+
+
+
+
+b%
+
+
+.
+.
+/
+2
+
+
+
+
+/<
+mB
+eC
+
+
+
+J
+K
+
+
+
+ZT
+V
+V
+W
+X
+
+
+^
+^
+_
+
+
+Bc
+
+)
+
+
+
+<
+
+|IP|
+dIPt
+' 
+
+4
+
+
+
+
+
+
+
+
+B
+
+
+B 
+
+
+B 
+
+A "
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+$
+8
+O
+u
diff --git a/bcm569/.btusb_comp.ko.cmd b/bcm569/.btusb_comp.ko.cmd
new file mode 100644
index 0000000..34fe320
--- a/dev/null
+++ b/bcm569/.btusb_comp.ko.cmd
@@ -0,0 +1 @@
+cmd_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/btusb_comp.ko := arm-linux-gnueabihf-ld -EL -r -T /mnt/nfsroot/weiguang.ruan/m8b/common/scripts/module-common.lds --build-id -o /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/btusb_comp.ko /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/btusb_comp.o /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/btusb_comp.mod.o
diff --git a/bcm569/.btusb_comp.mod.o.cmd b/bcm569/.btusb_comp.mod.o.cmd
new file mode 100644
index 0000000..2029519
--- a/dev/null
+++ b/bcm569/.btusb_comp.mod.o.cmd
@@ -0,0 +1,417 @@
+cmd_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/btusb_comp.mod.o := arm-linux-gnueabihf-gcc -Wp,-MD,/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/.btusb_comp.mod.o.d -nostdinc -isystem /opt/gcc-linaro-arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.7.3/include -I/mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include -Iarch/arm/include/generated -I/mnt/nfsroot/weiguang.ruan/m8b/common/include -Iinclude -I/mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi -Iarch/arm/include/generated/uapi -I/mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi -Iinclude/generated/uapi -include /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kconfig.h -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569 -D__KERNEL__ -mlittle-endian -I/mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/mach-mesong9tv/include -I/mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/plat-meson/include -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -Werror -Werror=enum-compare -Werror=comment -Werror=implicit-int -Werror=missing-braces -Werror=unused-value -Werror=maybe-uninitialized -Werror=unused-variable -Werror=format -Werror=unused-function -Werror=switch -Werror=strict-prototypes -Werror=declaration-after-statement -Werror=uninitialized -Werror=unused-label -Werror=undef -Werror=unused-result -Werror=return-type -Werror=parentheses -Werror=int-to-pointer-cast -Wno-error=cpp -O2 -fno-dwarf2-cfi-asm -mabi=aapcs-linux -mno-thumb-interwork -funwind-tables -marm -D__LINUX_ARM_ARCH__=7 -march=armv7-a -msoft-float -Uarm -fno-reorder-blocks -fno-ipa-cp-clone -fno-partial-inlining -Wframe-larger-than=1024 -fno-stack-protector -Wno-unused-but-set-variable -fomit-frame-pointer -g -fno-inline-functions-called-once -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -DCC_HAVE_ASM_GOTO -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569 -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/inc -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src/gki -DEXPORT_SYMTAB -DEXPORT_SYMTAB -D"KBUILD_STR(s)=\#s" -D"KBUILD_BASENAME=KBUILD_STR(btusb_comp.mod)" -D"KBUILD_MODNAME=KBUILD_STR(btusb_comp)" -DMODULE -c -o /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/btusb_comp.mod.o /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/btusb_comp.mod.c
+
+source_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/btusb_comp.mod.o := /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/btusb_comp.mod.c
+
+deps_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/btusb_comp.mod.o := \
+ $(wildcard include/config/module/unload.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/module.h \
+ $(wildcard include/config/sysfs.h) \
+ $(wildcard include/config/modules.h) \
+ $(wildcard include/config/unused/symbols.h) \
+ $(wildcard include/config/module/sig.h) \
+ $(wildcard include/config/generic/bug.h) \
+ $(wildcard include/config/kallsyms.h) \
+ $(wildcard include/config/smp.h) \
+ $(wildcard include/config/tracepoints.h) \
+ $(wildcard include/config/tracing.h) \
+ $(wildcard include/config/event/tracing.h) \
+ $(wildcard include/config/ftrace/mcount/record.h) \
+ $(wildcard include/config/constructors.h) \
+ $(wildcard include/config/debug/set/module/ronx.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/list.h \
+ $(wildcard include/config/debug/list.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/types.h \
+ $(wildcard include/config/uid16.h) \
+ $(wildcard include/config/lbdaf.h) \
+ $(wildcard include/config/arch/dma/addr/t/64bit.h) \
+ $(wildcard include/config/phys/addr/t/64bit.h) \
+ $(wildcard include/config/64bit.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/types.h \
+ arch/arm/include/generated/asm/types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/int-ll64.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/int-ll64.h \
+ arch/arm/include/generated/asm/bitsperlong.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitsperlong.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/bitsperlong.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/posix_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/stddef.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/stddef.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/compiler.h \
+ $(wildcard include/config/sparse/rcu/pointer.h) \
+ $(wildcard include/config/trace/branch/profiling.h) \
+ $(wildcard include/config/profile/all/branches.h) \
+ $(wildcard include/config/enable/must/check.h) \
+ $(wildcard include/config/enable/warn/deprecated.h) \
+ $(wildcard include/config/kprobes.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/compiler-gcc.h \
+ $(wildcard include/config/arch/supports/optimized/inlining.h) \
+ $(wildcard include/config/optimize/inlining.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/compiler-gcc4.h \
+ $(wildcard include/config/arch/use/builtin/bswap.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/posix_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/posix_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/poison.h \
+ $(wildcard include/config/illegal/pointer/value.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/const.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/stat.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/stat.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/stat.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/time.h \
+ $(wildcard include/config/arch/uses/gettimeoffset.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/cache.h \
+ $(wildcard include/config/arch/has/cache/line/size.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kernel.h \
+ $(wildcard include/config/preempt/voluntary.h) \
+ $(wildcard include/config/debug/atomic/sleep.h) \
+ $(wildcard include/config/prove/locking.h) \
+ $(wildcard include/config/ring/buffer.h) \
+ /opt/gcc-linaro-arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.7.3/include/stdarg.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/linkage.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/stringify.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/export.h \
+ $(wildcard include/config/have/underscore/symbol/prefix.h) \
+ $(wildcard include/config/modversions.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/linkage.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bitops.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/bitops.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/irqflags.h \
+ $(wildcard include/config/trace/irqflags.h) \
+ $(wildcard include/config/irqsoff/tracer.h) \
+ $(wildcard include/config/preempt/tracer.h) \
+ $(wildcard include/config/trace/irqflags/support.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/typecheck.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/irqflags.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/ptrace.h \
+ $(wildcard include/config/arm/thumb.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/ptrace.h \
+ $(wildcard include/config/cpu/endian/be8.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/hwcap.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/hwcap.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/non-atomic.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/fls64.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/sched.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/hweight.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/arch_hweight.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/const_hweight.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/lock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/le.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/byteorder.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/byteorder/little_endian.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/byteorder/little_endian.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/swab.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/swab.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/swab.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/swab.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/byteorder/generic.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/ext2-atomic-setbit.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/log2.h \
+ $(wildcard include/config/arch/has/ilog2/u32.h) \
+ $(wildcard include/config/arch/has/ilog2/u64.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/printk.h \
+ $(wildcard include/config/early/printk.h) \
+ $(wildcard include/config/printk.h) \
+ $(wildcard include/config/dynamic/debug.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/init.h \
+ $(wildcard include/config/broken/rodata.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kern_levels.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/dynamic_debug.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/string.h \
+ $(wildcard include/config/binary/printf.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/string.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/string.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/errno.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/errno.h \
+ arch/arm/include/generated/asm/errno.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/errno.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/errno-base.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/kernel.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/sysinfo.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/div64.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/compiler.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/bug.h \
+ $(wildcard include/config/bug.h) \
+ $(wildcard include/config/thumb2/kernel.h) \
+ $(wildcard include/config/debug/bugverbose.h) \
+ $(wildcard include/config/arm/lpae.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bug.h \
+ $(wildcard include/config/generic/bug/relative/pointers.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/cache.h \
+ $(wildcard include/config/arm/l1/cache/shift.h) \
+ $(wildcard include/config/aeabi.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/seqlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/spinlock.h \
+ $(wildcard include/config/debug/spinlock.h) \
+ $(wildcard include/config/generic/lockbreak.h) \
+ $(wildcard include/config/preempt.h) \
+ $(wildcard include/config/debug/lock/alloc.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/preempt.h \
+ $(wildcard include/config/debug/preempt.h) \
+ $(wildcard include/config/context/tracking.h) \
+ $(wildcard include/config/preempt/count.h) \
+ $(wildcard include/config/preempt/notifiers.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/thread_info.h \
+ $(wildcard include/config/compat.h) \
+ $(wildcard include/config/debug/stack/usage.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bug.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/thread_info.h \
+ $(wildcard include/config/crunch.h) \
+ $(wildcard include/config/arm/thumbee.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/fpstate.h \
+ $(wildcard include/config/vfpv3.h) \
+ $(wildcard include/config/iwmmxt.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/domain.h \
+ $(wildcard include/config/io/36.h) \
+ $(wildcard include/config/cpu/use/domains.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/barrier.h \
+ $(wildcard include/config/cpu/32v6k.h) \
+ $(wildcard include/config/cpu/xsc3.h) \
+ $(wildcard include/config/cpu/fa526.h) \
+ $(wildcard include/config/arch/has/barriers.h) \
+ $(wildcard include/config/arm/dma/mem/bufferable.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/outercache.h \
+ $(wildcard include/config/outer/cache/sync.h) \
+ $(wildcard include/config/outer/cache.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bottom_half.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/spinlock_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/spinlock_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/lockdep.h \
+ $(wildcard include/config/lockdep.h) \
+ $(wildcard include/config/lock/stat.h) \
+ $(wildcard include/config/prove/rcu.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwlock_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/spinlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/processor.h \
+ $(wildcard include/config/have/hw/breakpoint.h) \
+ $(wildcard include/config/mmu.h) \
+ $(wildcard include/config/arm/errata/754327.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/hw_breakpoint.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/spinlock_api_smp.h \
+ $(wildcard include/config/inline/spin/lock.h) \
+ $(wildcard include/config/inline/spin/lock/bh.h) \
+ $(wildcard include/config/inline/spin/lock/irq.h) \
+ $(wildcard include/config/inline/spin/lock/irqsave.h) \
+ $(wildcard include/config/inline/spin/trylock.h) \
+ $(wildcard include/config/inline/spin/trylock/bh.h) \
+ $(wildcard include/config/uninline/spin/unlock.h) \
+ $(wildcard include/config/inline/spin/unlock/bh.h) \
+ $(wildcard include/config/inline/spin/unlock/irq.h) \
+ $(wildcard include/config/inline/spin/unlock/irqrestore.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwlock_api_smp.h \
+ $(wildcard include/config/inline/read/lock.h) \
+ $(wildcard include/config/inline/write/lock.h) \
+ $(wildcard include/config/inline/read/lock/bh.h) \
+ $(wildcard include/config/inline/write/lock/bh.h) \
+ $(wildcard include/config/inline/read/lock/irq.h) \
+ $(wildcard include/config/inline/write/lock/irq.h) \
+ $(wildcard include/config/inline/read/lock/irqsave.h) \
+ $(wildcard include/config/inline/write/lock/irqsave.h) \
+ $(wildcard include/config/inline/read/trylock.h) \
+ $(wildcard include/config/inline/write/trylock.h) \
+ $(wildcard include/config/inline/read/unlock.h) \
+ $(wildcard include/config/inline/write/unlock.h) \
+ $(wildcard include/config/inline/read/unlock/bh.h) \
+ $(wildcard include/config/inline/write/unlock/bh.h) \
+ $(wildcard include/config/inline/read/unlock/irq.h) \
+ $(wildcard include/config/inline/write/unlock/irq.h) \
+ $(wildcard include/config/inline/read/unlock/irqrestore.h) \
+ $(wildcard include/config/inline/write/unlock/irqrestore.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/atomic.h \
+ $(wildcard include/config/arch/has/atomic/or.h) \
+ $(wildcard include/config/generic/atomic64.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/atomic.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/cmpxchg.h \
+ $(wildcard include/config/cpu/sa1100.h) \
+ $(wildcard include/config/cpu/sa110.h) \
+ $(wildcard include/config/cpu/v6.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/cmpxchg-local.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/atomic-long.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/math64.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/time.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/uidgid.h \
+ $(wildcard include/config/uidgid/strict/type/checks.h) \
+ $(wildcard include/config/user/ns.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/highuid.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kmod.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/gfp.h \
+ $(wildcard include/config/numa.h) \
+ $(wildcard include/config/highmem.h) \
+ $(wildcard include/config/zone/dma.h) \
+ $(wildcard include/config/zone/dma32.h) \
+ $(wildcard include/config/pm/sleep.h) \
+ $(wildcard include/config/cma.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/mmzone.h \
+ $(wildcard include/config/force/max/zoneorder.h) \
+ $(wildcard include/config/memory/isolation.h) \
+ $(wildcard include/config/memcg.h) \
+ $(wildcard include/config/compaction.h) \
+ $(wildcard include/config/memory/hotplug.h) \
+ $(wildcard include/config/sparsemem.h) \
+ $(wildcard include/config/have/memblock/node/map.h) \
+ $(wildcard include/config/discontigmem.h) \
+ $(wildcard include/config/flat/node/mem/map.h) \
+ $(wildcard include/config/no/bootmem.h) \
+ $(wildcard include/config/numa/balancing.h) \
+ $(wildcard include/config/have/memory/present.h) \
+ $(wildcard include/config/have/memoryless/nodes.h) \
+ $(wildcard include/config/need/node/memmap/size.h) \
+ $(wildcard include/config/need/multiple/nodes.h) \
+ $(wildcard include/config/have/arch/early/pfn/to/nid.h) \
+ $(wildcard include/config/flatmem.h) \
+ $(wildcard include/config/sparsemem/extreme.h) \
+ $(wildcard include/config/have/arch/pfn/valid.h) \
+ $(wildcard include/config/nodes/span/other/nodes.h) \
+ $(wildcard include/config/holes/in/zone.h) \
+ $(wildcard include/config/arch/has/holes/memorymodel.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/wait.h \
+ arch/arm/include/generated/asm/current.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/current.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/wait.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/threads.h \
+ $(wildcard include/config/nr/cpus.h) \
+ $(wildcard include/config/base/small.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/numa.h \
+ $(wildcard include/config/nodes/shift.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/nodemask.h \
+ $(wildcard include/config/movable/node.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bitmap.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pageblock-flags.h \
+ $(wildcard include/config/hugetlb/page.h) \
+ $(wildcard include/config/hugetlb/page/size/variable.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/page-flags-layout.h \
+ $(wildcard include/config/sparsemem/vmemmap.h) \
+ include/generated/bounds.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/page.h \
+ $(wildcard include/config/cpu/copy/v4wt.h) \
+ $(wildcard include/config/cpu/copy/v4wb.h) \
+ $(wildcard include/config/cpu/copy/feroceon.h) \
+ $(wildcard include/config/cpu/copy/fa.h) \
+ $(wildcard include/config/cpu/xscale.h) \
+ $(wildcard include/config/cpu/copy/v6.h) \
+ $(wildcard include/config/kuser/helpers.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/glue.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/pgtable-2level-types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/memory.h \
+ $(wildcard include/config/need/mach/memory/h.h) \
+ $(wildcard include/config/page/offset.h) \
+ $(wildcard include/config/dram/size.h) \
+ $(wildcard include/config/dram/base.h) \
+ $(wildcard include/config/have/tcm.h) \
+ $(wildcard include/config/arm/patch/phys/virt.h) \
+ $(wildcard include/config/phys/offset.h) \
+ $(wildcard include/config/virt/to/bus.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/sizes.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/mach-mesong9tv/include/mach/memory.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/memory_model.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/getorder.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/sysctl.h \
+ $(wildcard include/config/sysctl.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rcupdate.h \
+ $(wildcard include/config/rcu/torture/test.h) \
+ $(wildcard include/config/tree/rcu.h) \
+ $(wildcard include/config/tree/preempt/rcu.h) \
+ $(wildcard include/config/rcu/trace.h) \
+ $(wildcard include/config/preempt/rcu.h) \
+ $(wildcard include/config/rcu/user/qs.h) \
+ $(wildcard include/config/tiny/rcu.h) \
+ $(wildcard include/config/tiny/preempt/rcu.h) \
+ $(wildcard include/config/debug/objects/rcu/head.h) \
+ $(wildcard include/config/hotplug/cpu.h) \
+ $(wildcard include/config/rcu/nocb/cpu.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/cpumask.h \
+ $(wildcard include/config/cpumask/offstack.h) \
+ $(wildcard include/config/debug/per/cpu/maps.h) \
+ $(wildcard include/config/disable/obsolete/cpumask/functions.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/completion.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/debugobjects.h \
+ $(wildcard include/config/debug/objects.h) \
+ $(wildcard include/config/debug/objects/free.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rcutree.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rbtree.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/sysctl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/memory_hotplug.h \
+ $(wildcard include/config/memory/hotremove.h) \
+ $(wildcard include/config/have/arch/nodedata/extension.h) \
+ $(wildcard include/config/have/bootmem/info/node.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/notifier.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/mutex.h \
+ $(wildcard include/config/debug/mutexes.h) \
+ $(wildcard include/config/mutex/spin/on/owner.h) \
+ $(wildcard include/config/have/arch/mutex/cpu/relax.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwsem.h \
+ $(wildcard include/config/rwsem/generic/spinlock.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwsem-spinlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/srcu.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/workqueue.h \
+ $(wildcard include/config/debug/objects/work.h) \
+ $(wildcard include/config/freezer.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/timer.h \
+ $(wildcard include/config/timer/stats.h) \
+ $(wildcard include/config/debug/objects/timers.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/ktime.h \
+ $(wildcard include/config/ktime/scalar.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/jiffies.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/timex.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/timex.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/param.h \
+ arch/arm/include/generated/asm/param.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/param.h \
+ $(wildcard include/config/hz.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/param.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/timex.h \
+ $(wildcard include/config/arch/multiplatform.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/mach-mesong9tv/include/mach/timex.h \
+ $(wildcard include/config/meson/clock/tick/rate.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/topology.h \
+ $(wildcard include/config/sched/smt.h) \
+ $(wildcard include/config/sched/mc.h) \
+ $(wildcard include/config/sched/book.h) \
+ $(wildcard include/config/use/percpu/numa/node/id.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/smp.h \
+ $(wildcard include/config/use/generic/smp/helpers.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/smp.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/percpu.h \
+ $(wildcard include/config/need/per/cpu/embed/first/chunk.h) \
+ $(wildcard include/config/need/per/cpu/page/first/chunk.h) \
+ $(wildcard include/config/have/setup/per/cpu/area.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pfn.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/percpu.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/percpu.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/percpu-defs.h \
+ $(wildcard include/config/debug/force/weak/per/cpu.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/topology.h \
+ $(wildcard include/config/arm/cpu/topology.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/topology.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/mmdebug.h \
+ $(wildcard include/config/debug/vm.h) \
+ $(wildcard include/config/debug/virtual.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/elf.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/elf.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/user.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/elf.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/elf-em.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kobject.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/sysfs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kobject_ns.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kref.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/moduleparam.h \
+ $(wildcard include/config/alpha.h) \
+ $(wildcard include/config/ia64.h) \
+ $(wildcard include/config/ppc64.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/tracepoint.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/static_key.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/jump_label.h \
+ $(wildcard include/config/jump/label.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/module.h \
+ $(wildcard include/config/arm/unwind.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/module.h \
+ $(wildcard include/config/have/mod/arch/specific.h) \
+ $(wildcard include/config/modules/use/elf/rel.h) \
+ $(wildcard include/config/modules/use/elf/rela.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/vermagic.h \
+ include/generated/utsrelease.h \
+
+/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/btusb_comp.mod.o: $(deps_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/btusb_comp.mod.o)
+
+$(deps_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/btusb_comp.mod.o):
diff --git a/bcm569/.btusb_comp.o.cmd b/bcm569/.btusb_comp.o.cmd
new file mode 100644
index 0000000..dffeeac
--- a/dev/null
+++ b/bcm569/.btusb_comp.o.cmd
@@ -0,0 +1 @@
+cmd_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/btusb_comp.o := arm-linux-gnueabihf-ld -EL -r -o /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/btusb_comp.o /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src/btusb.o /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src/btusb_dev.o /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src/btusb_isoc.o /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src/gki/gki_buffer.o /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src/gki/gki_klinux.o ; scripts/mod/modpost /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/btusb_comp.o
diff --git a/bcm569/.tmp_versions/btusb_comp.mod b/bcm569/.tmp_versions/btusb_comp.mod
new file mode 100644
index 0000000..c51734a
--- a/dev/null
+++ b/bcm569/.tmp_versions/btusb_comp.mod
@@ -0,0 +1,2 @@
+/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/btusb_comp.ko
+/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src/btusb.o /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src/btusb_dev.o /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src/btusb_isoc.o /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src/gki/gki_buffer.o /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src/gki/gki_klinux.o
diff --git a/Makefile b/bcm569/Makefile
index dd522eb..80fbb80 100755
--- a/Makefile
+++ b/bcm569/Makefile
@@ -1,3 +1,4 @@
+export SUBDIRS ?= $(src)
# Specify Include folders
EXTRA_CFLAGS += -I$(SUBDIRS)
@@ -34,13 +35,7 @@ EXTRA_CFLAGS += -DEXPORT_SYMTAB
usbobjs := \
src/btusb.o \
src/btusb_dev.o \
- src/btusb_isoc.o \
- src/btusb_version.o
-
-ifeq ($(CONFIG_PROC_FS),y)
-usbobjs += \
- src/btusb_proc.o
-endif
+ src/btusb_isoc.o
ifeq ($(strip $(LITE)),TRUE)
liteobjs := src/btusb_lite.o \
@@ -54,13 +49,15 @@ gkiobjs := \
src/gki/gki_buffer.o \
src/gki/gki_klinux.o
-obj-m += btusb.o
-btusb-objs := $(usbobjs) $(gkiobjs) $(liteobjs)
+obj-m += btusb_comp.o
+btusb_comp-objs := $(usbobjs) $(gkiobjs) $(liteobjs)
-# specify Kernel build location (can be overriden at command line)
-#KDIR ?= /lib/modules/$(shell uname -r)/build
-KDIR ?= /host/android/tiny4412/tiny_4412/linux-3.5
-PWD := $(shell pwd)
+# specify Kernel build location
+KDIR := /mnt/nfsroot/weiguang.ruan/m8b_2/out/target/product/n300/obj/KERNEL_OBJ
+#KDIR := /home/kausik/Stuff/work/workspace/j_for_g/kernel_dev/manta_kernel/exynos_1/linux/
+#KDIR := /home/kausik/Stuff/work/workspace/j_for_g/kernel_dev/tuna_kernel_4.3/linux
+
+PWD := $(shell pwd)
default:
ifeq ($(strip $(LITE)),TRUE)
@@ -72,9 +69,6 @@ endif
endif
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
-install:
- cp -v btusb.ko /lib/modules/$(uname -r)/kernel/drivers/brcm/btusb.ko
-
clean:
rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions
rm -f Module.markers
@@ -85,44 +79,11 @@ clean:
rm -f ./src/gki/*.o
rm -f ./src/gki/.*.o.cmd
-# define the location of the Linux stable repository
-PROJECTS_DIR ?= ~/projects
-LINUX_STABLE = $(PROJECTS_DIR)/linux-stable
-
-# rule to run a regression on a specific file
-v2.% v3.%:
- @echo Running regression on: $@
- # clean the previous version before switching version
- cd $(LINUX_STABLE); make mrproper >/dev/null
- # switch version
- cd $(LINUX_STABLE); git checkout $@ >/dev/null
- # prepare to build modules
- cd $(LINUX_STABLE); make defconfig >/dev/null
- cd $(LINUX_STABLE); make modules_prepare >/dev/null
- make KDIR=$(LINUX_STABLE)
-
-regression-install:
- cd $(PROJECTS_DIR)
- git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
-
-regression-update:
- cd $(LINUX_STABLE)
- git pull
-
-regression: v2.6.28 v2.6.35 v2.6.36 v3.2.1 v3.12.1
- @echo Regression completed successfully!
-
-.PHONY: help regression regression-update regression-install clean install
-
help:
@echo "BTUSB module configurations and targets:"
@echo " LITE=FALSE : No StackLite (Default)"
@echo " LITE=TRUE : StackLite compiled"
@echo " SEC=FALSE : No SEC Encoder Support(default)"
@echo " SEC=TRUE : SEC Encoder Support. Requires StackLite"
- @echo " clean : remove the build output files"
- @echo " install : copy the driver in the current platform modules list"
- @echo " regression : run a regression on several Linux versions"
-
-
-
+ @echo " clean"
+
diff --git a/inc/bt_target.h b/bcm569/Module.symvers
index e69de29..e69de29 100755..100644
--- a/inc/bt_target.h
+++ b/bcm569/Module.symvers
diff --git a/Release_btusb.txt b/bcm569/Release_btusb.txt
index f6228fe..f6228fe 100755
--- a/Release_btusb.txt
+++ b/bcm569/Release_btusb.txt
diff --git a/bcm569/btusb_comp.ko b/bcm569/btusb_comp.ko
new file mode 100644
index 0000000..50cdb09
--- a/dev/null
+++ b/bcm569/btusb_comp.ko
@@ -0,0 +1,2880 @@
+ELF
+0
+
+ph
+XLb
+8(E
+
+
+
+
+ |
+h
+H
+B
+
+
+
+4<H
+(> T
+
+
+
+ @@
+ 
+ 0
+ lp
+0
+
+
+0b~ⅎ$,p00d
+p
+0
+
+0兎E00F
+l P0
+H (0
+
+ 4
+
+0b~p
+
+
+0 
+0
+
+ 0
+
+4P88
+ E΄n΄ `
+H H
+8 >,,> 
+> V
+ \ 00
+\
+6
+ 00
+
+ P8
+ `
+
+
+
+
+
+
+x 
+X 
+8  0
+
+  0 0
+
+0
+00 .
+|
+
+\ [ !
+
+
+
+X 0(
+
+
+T
+ 0
+
+
+l
+ 0
+
+
+ d<0@0<0a
+
+
+,
+ 0
+= 8 0
+
+
+4
+ 0$
+
+
+P 
+
+
+
+
+
+
+0H
+000
+0|00[
+8 @"8
+8 d4i?
+
+
+
+
+  s
+h
+
+
+ 
+
+|
+ P
+^
+<0
+T
+
+n` 
+
+
+Ѝ
+<0
+T
+
+
+<0
+T
+
+
+
+
+
+
+|
+H
+
+
+
+
+l
+P
+4
+ 
+
+
+$ x`
+ 
+
+
+
+|P 
+X
+D
+
+
+
+
+
+
+
+
+ 
+ 
+ 
+ 
+
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+(0
+ 
+ 
+
+ 
+ 
+0
+ 
+0
+P
+\9
+
+
+ 0
+(
+
+l
+,
+
+ 0
+,0
+(
+0
+@101r
+n@|101V
+ 
+
+0L
+
+ 0
+ h
+,
+<
+
+0
+
+0
+ 
+$
+((X 
+
+
+
+
+%
+
+0
+X0&  㼀 00^ ЍO?0X 0
+
+
+0@T@
+ `P
+@ (
+
+
+9
+x t
+0
+
+
+
+
+ 0<
+
+  0m?`00
+
+I
+m?`
+m?`
+0
+
+
+
+ 0
+
+ =?0  0
+dT
+H 0p9pI
+ᴐ+l
+
+
+ 
+
+8
+ 0|
+ 0 /
+ 08 
+ 0 
+
+
+
+
+
+
+
+
+<0xx
+0P
+
+<
+
+
+00 P !
+ 1
+ @0<
+000
+ ``
+@
+
+` h0
+v8
+8
+;
+
+
+<0xx
+T
+
+
+
+ p@
+$ 
+  0
+
+
+ |0
+ D<
+
+0
+ 0
+00
+
+
+ 0 
+ 
+t
+\@TP
+
+0
+
+
+
+pp
+\ P
+%=
+
+\
+
+ 
+D %=0
+P >
+$
+
+
+0
+F
+0
+
+B
+E
+
+
+0
+G
+
+7
+0
+V4
+
+
+
+ 
+0
+
+0
+0
+ 
+
+
+ =?00$  0
+0 @<
+
+ 4
+
+
+<
+Q
+ =?00  0
+ xT
+d<^_
+,
+L
+ 
+=
+
+t0  
+
+P
+E 
+R/> Q 0
+00
+ЍO8
+l`000
+T0 h
+d0|P
+$
+d
+
+
+
+l
+``
+
+
+̠' p
+
+
+
+
+
+1
+
+
+
+(Q`
+2d
+
+
+@0T
+@0T
+h@0TDT 
+p@0T`D
+
+`
+<
+`8@0T
+H8@
+0
+0
+@0
+`1
+p
+0s0
+
+
+
+
+P
+(
+ 1@!@
+
+
+D
+0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+--------------------------------------------------------------------
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+A ",
+4
+F
+X
+j
+|
+
+
+#
+I
+
+
+
+A
+
+D
+
+
+
+$'n
+ Z
+l
+
+Q%
+4 &
+
+
+
+:
+:
+:
+3
+BB
+
+9
+]
+
+
+;
+&
+
+G
+/
+9g
+
+
+
+
+l
+
+"
+t
+{
+
+U
+
+$
+ˆ
+
+
+
+n
+;
+
+
+
+
+
+
+3
+
+
+@
+B
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ KQ
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ЀKP
+
+
+
+
+
+N
+
+
+
+
+
+
+
+KPK}
+$KPK}
+
+
+
+
+
+
+
+
+
+
+H
+
++
+E
+
+
+
+,'
+
+ =
+z
+
+
+y
+y
+)
+; +
+,
+
+,
+
+:
+=
+
+HqE
+
+
+
+
+7
+
+9m
+(
+
+
+ns
+{
+
+
+
+
+
+q
+
+
+
+
+
+
+
+
+
+
+}
+:
+
+gx
+gx
+g
+ PQ@
+ PR
+PQP
+ PR
+8PQp
+PR
+tPQ
+PR
+@PQ
+ PQ
+pPQ
+8 PQ 
+
+x
+]
+
+]
+
+
+
+
+.f
+.f
+B
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+x
+5
+$
+x
+K
+x
+5
+$
+]
+]
+K
+^
+^
+
+Bg
+,
+m
+:
+
+
+
+
+
+
+
+
+ 
+"
+$
+%
+
+0
+
+;
+
+
+#
+
+
+
+
+7
+I
+
+
+'9'
+
+8
+-
+6
+6
+6
+8
+
+
+
+
+
+lJ
+
+
+
+
+
+
+
+
+
+
+m
+
+v
+
+
+z
+
+
+
+
+
+
+
+
+
+ۑ
+
+
+ę
+
+
+
+
+
+* 
+
+1
+v
+
+
+h
+p
+
+|
+
+
+
+{u
+x
+x
+x
+x
+x
+
+
+
+y
+!-
+1B
+6
+7x
+8
+;x
+<
+=
+@9
+G}
+J
+Lt
+OOb
+OOb
+Q
+Th
+Wx
+Xx
+Xx
+Yx
+Z
+]
+_
+`
+b
+e
+h
+i
+k
+l
+wp
+xp
+|
+}
+~p
+
+
+?
+
+m
+`
+`
+Wi
+Wi
+Wi
+Wi
+Wi
+v
+
+
+
+
+
+
+v
+p
+T
+T
+
+x
+x
+bi
+
+o
+U
+T
+m
+[
+a
+
+i
+i
+i
+l
+
+,
+w
+|
+}
+d
+
+kt
+
+C
+
+:
+
+st
+
+|
+ 
+ 
+
+M
+ł
+
+˂
+t
+'ׂ
+)
+,
+0
+1
+E;
+JM
+Lg
+Xx
+Yx
+Z
+d
+e
+x
+z
+
+
+
+
+
+r
+
+
+"
+Z
+'
+C-
+
+^
+7
+7
+k
+d
+;
+E
+O
+M
+K
+ L
+M
+T
+U
+
+T^
+`
+`
+a
+b
+)i
+i
+r
+l
+
+
+
+
+
+
+
+
+
+X'
+m
+aT
+e
+
+{u
+|
+}u
+~:
+rq
+S
+
+pv
+x
+<
+
+Wi
+Wi
+
+
+v
+Wi
+Wi
+
+
+v
+Wi
+Wi
+!w
+Wi
+Wi
+
+\w
+v
+x
+
+
+
+
+x
+S
+p
+l
+x
+x
+p
+x
+
+
+
+x
+
+ v
+ |:
+ 
+
+!w
+v
+p
+!|:
+$x
+&}
+1Wi
+1Wi
+1Wi
+1Wi
+2Wi
+3Wi
+5v
+7
+7
+7
+7
+8
+8
+8
+8
+9
+9
+9
+9
+:
+:
+;t
+C
+N}
+Qu
+W
+X
+Y}
+e;
+hy
+iT
+jT
+m
+S
+)~
+
+
+
+
+O~
+{~
+
+
+~
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+g
+O~
+
+
+
+
+
+
+
+
+~
+g
+s
+s
+{~
+
+
+
+
+
+
+
+
+
+
+d
+
+
+P
+
+
+
+
+o
+
+
+
+9
+|:
+&
+`
+ 
+
+z
+ 1
+{
+
+
+
+
+
+
+
+
+
+
+
+b%
+
+
+.
+.
+/
+2
+/<
+mB
+eC
+
+
+J
+K
+
+
+
+ZT
+V
+V
+W
+X
+^
+^
+_
+
+Bc
+
+
+|IP|
+dIPt
+
+3
+
+
+
+
+
+3
+ b
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ : ; 
+
+
+
+
+
+
+
+
+
+B
+
+
+
+
+
+
+
+
+ : ; 
+
+
+
+
+
+
+
+
+B
+
+
+B 
+
+
+
+
+
+
+
+
+ : ; 
+
+
+
+
+
+
+
+
+
+
+
+B
+
+' 
+
+
+
+
+
+
+
+B
+
+B 
+B 
+
+
+B 
+
+
+' 
+
+4
+
+
+
+
+
+
+
+
+B
+
+
+B 
+
+
+B 
+
+ : ; 
+
+
+
+
+
+
+
+.u.
+.0~..~..~..~f.~./-/-/v. .vf J-v./ .-/-/vJ/ .,/v. .K-v./ .v. .gv./ .-v./ .-/-/vJ/ .,/.~..h1)3*/1Kv -/Lv. /Jy.LE4)02)0*3F/011/M2*x.. .v,2e2yJf0HLO
+.Ni
+
+00,00/IK/0x.nxJ
+.f׻-/lJz.zJh/IK/0
+[.KJ-/-/_JJL1.yJ .w.h.yJh, .JL1
+J024t.//4
+[.Kf(
+
+
+
+
+
+
+
+fLhg/fQ./gg
+.Pz..4
+.//00,0,01LhguPz..L-3+1
+J&</0+10,0,0R0,0,0N0,0,0N1+ ..5y.5
+g.X
+nJ.
+Jv.
+J,0
+.u.
+.tI,LK ft. JtJ ff2~//L/Ll~fw.Jw.JguI,LK
+fu.
+JuJ
+fh0,0d0/of.fv. .v. .؃ufI/
+Ju.
+J3f00/of.vJM JtI/
+JufI/J "*K-2,0
+[.KJ X.2*2LgOLg-
+nJ .M-K- Jg-//~..
+./-
+
+.v.
+.L,0~.2*0.~./3,0g-/-Nhgj .w.///3y.5/L1-J~..0~.f0h2}f-K0K.
+
+.z.4j*0
+.+1 .w.gK3+0///3KR+JJJ.2*2i2JN.5,0LK(X.22i1hhM20/*/L/4*.2*2h!J_.5hJh.20L3)4/2,x.6L3+f.10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<
+
+\
+
+x
+
+
+
+
+
+t
+
+p
+x
+p
+x
+p
+x
+p
+x
+/
+4/
+$/
+
+$/
+
+v
+L
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+9
+=
+C
+P
+s
+z
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+6
+h
+~
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+!
++
+5
+A
+O
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+]
+
+
+
+
+
+
+
+
+
+
+
+
+f
+s
+v
+y
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/bcm569/btusb_comp.mod.c b/bcm569/btusb_comp.mod.c
new file mode 100644
index 0000000..f76adc4
--- a/dev/null
+++ b/bcm569/btusb_comp.mod.c
@@ -0,0 +1,24 @@
+#include <linux/module.h>
+#include <linux/vermagic.h>
+#include <linux/compiler.h>
+
+MODULE_INFO(vermagic, VERMAGIC_STRING);
+
+struct module __this_module
+__attribute__((section(".gnu.linkonce.this_module"))) = {
+ .name = KBUILD_MODNAME,
+ .init = init_module,
+#ifdef CONFIG_MODULE_UNLOAD
+ .exit = cleanup_module,
+#endif
+ .arch = MODULE_ARCH_INIT,
+};
+
+static const char __module_depends[]
+__used
+__attribute__((section(".modinfo"))) =
+"depends=";
+
+MODULE_ALIAS("usb:v*p*d*dcE0dsc01dp01ic*isc*ip*in*");
+MODULE_ALIAS("usb:v0A5Cp*d*dc*dsc*dp*icE0isc01ip01in*");
+MODULE_ALIAS("usb:v0A5Cp*d*dcFFdsc01dp01ic*isc*ip*in*");
diff --git a/bcm569/btusb_comp.mod.o b/bcm569/btusb_comp.mod.o
new file mode 100644
index 0000000..9187803
--- a/dev/null
+++ b/bcm569/btusb_comp.mod.o
@@ -0,0 +1,87 @@
+ELF
+3
+
+
+
+
+
+
+
+3
+ b
+o
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ : ; 
+
+
+
+
+
+
+
+A "
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/bcm569/btusb_comp.o b/bcm569/btusb_comp.o
new file mode 100644
index 0000000..f6a6668
--- a/dev/null
+++ b/bcm569/btusb_comp.o
@@ -0,0 +1,2832 @@
+ELF
+0
+
+ph
+XLb
+8(E
+
+
+
+
+ |
+h
+H
+B
+
+
+
+4<H
+(> T
+
+
+
+ @@
+ 
+ 0
+ lp
+0
+
+
+0b~ⅎ$,p00d
+p
+0
+
+0兎E00F
+l P0
+H (0
+
+ 4
+
+0b~p
+
+
+0 
+0
+
+ 0
+
+4P88
+ E΄n΄ `
+H H
+8 >,,> 
+> V
+ \ 00
+\
+6
+ 00
+
+ P8
+ `
+
+
+
+
+
+
+x 
+X 
+8  0
+
+  0 0
+
+0
+00 .
+|
+
+\ [ !
+
+
+
+X 0(
+
+
+T
+ 0
+
+
+l
+ 0
+
+
+ d<0@0<0a
+
+
+,
+ 0
+= 8 0
+
+
+4
+ 0$
+
+
+P 
+
+
+
+
+
+
+0H
+000
+0|00[
+8 @"8
+8 d4i?
+
+
+
+
+  s
+h
+
+
+ 
+
+|
+ P
+^
+<0
+T
+
+n` 
+
+
+Ѝ
+<0
+T
+
+
+<0
+T
+
+
+
+
+
+
+|
+H
+
+
+
+
+l
+P
+4
+ 
+
+
+$ x`
+ 
+
+
+
+|P 
+X
+D
+
+
+
+
+
+
+
+
+ 
+ 
+ 
+ 
+
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+(0
+ 
+ 
+
+ 
+ 
+0
+ 
+0
+P
+\9
+
+
+ 0
+(
+
+l
+,
+
+ 0
+,0
+(
+0
+@101r
+n@|101V
+ 
+
+0L
+
+ 0
+ h
+,
+<
+
+0
+
+0
+ 
+$
+((X 
+
+
+
+
+%
+
+0
+X0&  㼀 00^ ЍO?0X 0
+
+
+0@T@
+ `P
+@ (
+
+
+9
+x t
+0
+
+
+
+
+ 0<
+
+  0m?`00
+
+I
+m?`
+m?`
+0
+
+
+
+ 0
+
+ =?0  0
+dT
+H 0p9pI
+ᴐ+l
+
+
+ 
+
+8
+ 0|
+ 0 /
+ 08 
+ 0 
+
+
+
+
+
+
+
+
+<0xx
+0P
+
+<
+
+
+00 P !
+ 1
+ @0<
+000
+ ``
+@
+
+` h0
+v8
+8
+;
+
+
+<0xx
+T
+
+
+
+ p@
+$ 
+  0
+
+
+ |0
+ D<
+
+0
+ 0
+00
+
+
+ 0 
+ 
+t
+\@TP
+
+0
+
+
+
+pp
+\ P
+%=
+
+\
+
+ 
+D %=0
+P >
+$
+
+
+0
+F
+0
+
+B
+E
+
+
+0
+G
+
+7
+0
+V4
+
+
+
+ 
+0
+
+0
+0
+ 
+
+
+ =?00$  0
+0 @<
+
+ 4
+
+
+<
+Q
+ =?00  0
+ xT
+d<^_
+,
+L
+ 
+=
+
+t0  
+
+P
+E 
+R/> Q 0
+00
+ЍO8
+l`000
+T0 h
+d0|P
+$
+d
+
+
+
+l
+``
+
+
+̠' p
+
+
+
+
+
+1
+
+
+
+(Q`
+2d
+
+
+@0T
+@0T
+h@0TDT 
+p@0T`D
+
+`
+<
+`8@0T
+H8@
+0
+0
+@0
+`1
+p
+0s0
+
+
+
+
+P
+(
+ 1@!@
+
+
+D
+0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+--------------------------------------------------------------------
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+A ",
+4
+F
+X
+j
+|
+
+
+#
+I
+
+
+
+A
+
+D
+
+
+
+$'n
+ Z
+l
+
+Q%
+4 &
+
+
+
+:
+:
+:
+3
+BB
+
+9
+]
+
+
+;
+&
+
+G
+/
+9g
+
+
+
+
+l
+
+"
+t
+{
+
+U
+
+$
+ˆ
+
+
+
+n
+;
+
+
+
+
+
+
+3
+
+
+@
+B
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ KQ
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ЀKP
+
+
+
+
+
+N
+
+
+
+
+
+
+
+KPK}
+$KPK}
+
+
+
+
+
+
+
+
+
+
+H
+
++
+E
+
+
+
+,'
+
+ =
+z
+
+
+y
+y
+)
+; +
+,
+
+,
+
+:
+=
+
+HqE
+
+
+
+
+7
+
+9m
+(
+
+
+ns
+{
+
+
+
+
+
+q
+
+
+
+
+
+
+
+
+
+
+}
+:
+
+gx
+gx
+g
+ PQ@
+ PR
+PQP
+ PR
+8PQp
+PR
+tPQ
+PR
+@PQ
+ PQ
+pPQ
+8 PQ 
+
+x
+]
+
+]
+
+
+
+
+.f
+.f
+B
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+x
+5
+$
+x
+K
+x
+5
+$
+]
+]
+K
+^
+^
+
+Bg
+,
+m
+:
+
+
+
+
+
+
+
+
+ 
+"
+$
+%
+
+0
+
+;
+
+
+#
+
+
+
+
+7
+I
+
+
+'9'
+
+8
+-
+6
+6
+6
+8
+
+
+
+
+
+lJ
+
+
+
+
+
+
+
+
+
+
+m
+
+v
+
+
+z
+
+
+
+
+
+
+
+
+
+ۑ
+
+
+ę
+
+
+
+
+
+* 
+
+1
+v
+
+
+h
+p
+
+|
+
+
+
+{u
+x
+x
+x
+x
+x
+
+
+
+y
+!-
+1B
+6
+7x
+8
+;x
+<
+=
+@9
+G}
+J
+Lt
+OOb
+OOb
+Q
+Th
+Wx
+Xx
+Xx
+Yx
+Z
+]
+_
+`
+b
+e
+h
+i
+k
+l
+wp
+xp
+|
+}
+~p
+
+
+?
+
+m
+`
+`
+Wi
+Wi
+Wi
+Wi
+Wi
+v
+
+
+
+
+
+
+v
+p
+T
+T
+
+x
+x
+bi
+
+o
+U
+T
+m
+[
+a
+
+i
+i
+i
+l
+
+,
+w
+|
+}
+d
+
+kt
+
+C
+
+:
+
+st
+
+|
+ 
+ 
+
+M
+ł
+
+˂
+t
+'ׂ
+)
+,
+0
+1
+E;
+JM
+Lg
+Xx
+Yx
+Z
+d
+e
+x
+z
+
+
+
+
+
+r
+
+
+"
+Z
+'
+C-
+
+^
+7
+7
+k
+d
+;
+E
+O
+M
+K
+ L
+M
+T
+U
+
+T^
+`
+`
+a
+b
+)i
+i
+r
+l
+
+
+
+
+
+
+
+
+
+X'
+m
+aT
+e
+
+{u
+|
+}u
+~:
+rq
+S
+
+pv
+x
+<
+
+Wi
+Wi
+
+
+v
+Wi
+Wi
+
+
+v
+Wi
+Wi
+!w
+Wi
+Wi
+
+\w
+v
+x
+
+
+
+
+x
+S
+p
+l
+x
+x
+p
+x
+
+
+
+x
+
+ v
+ |:
+ 
+
+!w
+v
+p
+!|:
+$x
+&}
+1Wi
+1Wi
+1Wi
+1Wi
+2Wi
+3Wi
+5v
+7
+7
+7
+7
+8
+8
+8
+8
+9
+9
+9
+9
+:
+:
+;t
+C
+N}
+Qu
+W
+X
+Y}
+e;
+hy
+iT
+jT
+m
+S
+)~
+
+
+
+
+O~
+{~
+
+
+~
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+g
+O~
+
+
+
+
+
+
+
+
+~
+g
+s
+s
+{~
+
+
+
+
+
+
+
+
+
+
+d
+
+
+P
+
+
+
+
+o
+
+
+
+9
+|:
+&
+`
+ 
+
+z
+ 1
+{
+
+
+
+
+
+
+
+
+
+
+
+b%
+
+
+.
+.
+/
+2
+/<
+mB
+eC
+
+
+J
+K
+
+
+
+ZT
+V
+V
+W
+X
+^
+^
+_
+
+Bc
+
+
+|IP|
+dIPt
+
+ : ; 
+
+
+
+
+
+
+
+
+
+B
+
+
+
+
+
+
+
+
+ : ; 
+
+
+
+
+
+
+
+
+B
+
+
+B 
+
+
+
+
+
+
+
+
+ : ; 
+
+
+
+
+
+
+
+
+
+
+
+B
+
+' 
+
+
+
+
+
+
+
+B
+
+B 
+B 
+
+
+B 
+
+
+' 
+
+4
+
+
+
+
+
+
+
+
+B
+
+
+B 
+
+
+B 
+
+.u.
+.0~..~..~..~f.~./-/-/v. .vf J-v./ .-/-/vJ/ .,/v. .K-v./ .v. .gv./ .-v./ .-/-/vJ/ .,/.~..h1)3*/1Kv -/Lv. /Jy.LE4)02)0*3F/011/M2*x.. .v,2e2yJf0HLO
+.Ni
+
+00,00/IK/0x.nxJ
+.f׻-/lJz.zJh/IK/0
+[.KJ-/-/_JJL1.yJ .w.h.yJh, .JL1
+J024t.//4
+[.Kf(
+
+
+
+
+
+
+
+fLhg/fQ./gg
+.Pz..4
+.//00,0,01LhguPz..L-3+1
+J&</0+10,0,0R0,0,0N0,0,0N1+ ..5y.5
+g.X
+nJ.
+Jv.
+J,0
+.u.
+.tI,LK ft. JtJ ff2~//L/Ll~fw.Jw.JguI,LK
+fu.
+JuJ
+fh0,0d0/of.fv. .v. .؃ufI/
+Ju.
+J3f00/of.vJM JtI/
+JufI/J "*K-2,0
+[.KJ X.2*2LgOLg-
+nJ .M-K- Jg-//~..
+./-
+
+.v.
+.L,0~.2*0.~./3,0g-/-Nhgj .w.///3y.5/L1-J~..0~.f0h2}f-K0K.
+
+.z.4j*0
+.+1 .w.gK3+0///3KR+JJJ.2*2i2JN.5,0LK(X.22i1hhM20/*/L/4*.2*2h!J_.5hJh.20L3)4/2,x.6L3+f.10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<
+
+\
+
+x
+
+
+
+
+
+t
+
+p
+x
+p
+x
+p
+x
+p
+x
+/
+4/
+$/
+
+$/
+
+v
+L
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+9
+=
+C
+P
+s
+z
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+6
+h
+~
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+!
++
+5
+A
+O
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+]
+
+
+
+
+
+
+
+
+
+
+
+
+f
+s
+v
+y
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/bcm569/cpmod b/bcm569/cpmod
new file mode 100755
index 0000000..28919a8
--- a/dev/null
+++ b/bcm569/cpmod
@@ -0,0 +1 @@
+cp -v btusb.ko /lib/modules/$(uname -r)/kernel/drivers/brcm/btusb.ko
diff --git a/inc/bt_target.h b/bcm569/inc/bt_target.h
index e69de29..e69de29 100755
--- a/inc/bt_target.h
+++ b/bcm569/inc/bt_target.h
diff --git a/inc/bt_types.h b/bcm569/inc/bt_types.h
index f214d54..f214d54 100755
--- a/inc/bt_types.h
+++ b/bcm569/inc/bt_types.h
diff --git a/inc/btusb.h b/bcm569/inc/btusb.h
index b9995db..aa7534d 100755
--- a/inc/btusb.h
+++ b/bcm569/inc/btusb.h
@@ -4,7 +4,7 @@
*
*
*
- * Copyright (C) 2011-2014 Broadcom Corporation.
+ * Copyright (C) 2011-2013 Broadcom Corporation.
*
*
*
@@ -33,7 +33,6 @@
#include <linux/time.h>
#include "bt_types.h"
-#include "btusb_cq.h"
#include "gki_int.h"
#include "btusbext.h"
@@ -41,8 +40,6 @@
#include "btusb_lite.h"
#endif
-extern const char bsa_version_string[];
-
/* Linux kernel compatibility abstraction */
#if LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 34)
#define BTUSB_USHRT_MAX USHORT_MAX
@@ -52,10 +49,8 @@ extern const char bsa_version_string[];
#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0)
#define BTUSB_PDE_DATA(inode) PDE(inode)->data
-#define BTUSB_PDE_PARENT_DATA(inode) PDE(inode)->parent->data
#else
#define BTUSB_PDE_DATA(inode) PDE_DATA(inode)
-#define BTUSB_PDE_PARENT_DATA(inode) proc_get_parent_data(inode)
#endif
#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 34)
@@ -76,26 +71,23 @@ extern const char bsa_version_string[];
#define BTUSB_EP_DIR_OUT(ep) usb_endpoint_dir_out(ep)
#endif
-/* debug information flags. one-hot encoded:
- bit0 : enable printk(KERN_DEBUG)
- bit1 : enable printk(KERN_INFO)
- bit16 : enable all message dumps in printk
- bit17 : enable timestamp calculations on voice RX packets
- bit18 : enable timestamp calculations on voice TX packets
- bit19 : enable GKI buffer check */
+// debug information flags. one-hot encoded:
+// bit0 : enable printk(KERN_DEBUG)
+// bit1 : enable printk(KERN_INFO)
+// bit16 : enable all message dumps in printk
+// bit18 : enable GKI buffer check
+// bit19 : enable RX ACL size check
#define BTUSB_DBG_MSG 0x0001
#define BTUSB_INFO_MSG 0x0002
#define BTUSB_DUMP_MSG 0x0100
-#define BTUSB_VOICERX_TIME 0x0200
-#define BTUSB_VOICETX_TIME 0x0400
-#define BTUSB_GKI_CHK_MSG 0x0800
-/* #define BTUSB_DBGFLAGS (BTUSB_DBG_MSG | BTUSB_INFO_MSG | BTUSB_DUMP_MSG | BTUSB_GKI_CHK_MSG) */
+#define BTUSB_GKI_CHK_MSG 0x0400
+//#define BTUSB_DBGFLAGS (BTUSB_DBG_MSG | BTUSB_INFO_MSG | BTUSB_DUMP_MSG | BTUSB_GKI_CHK_MSG)
#define BTUSB_DBGFLAGS 0
extern int dbgflags;
#define BTUSB_DBG(fmt, ...) if (unlikely(dbgflags & BTUSB_DBG_MSG)) \
- printk(KERN_INFO "BTUSB %s: " fmt, __FUNCTION__, ##__VA_ARGS__)
+ printk(KERN_DEBUG "BTUSB %s: " fmt, __FUNCTION__, ##__VA_ARGS__)
#define BTUSB_INFO(fmt, ...) if (unlikely(dbgflags & BTUSB_INFO_MSG))\
printk(KERN_INFO "BTUSB %s: " fmt, __FUNCTION__, ##__VA_ARGS__)
@@ -103,28 +95,30 @@ extern int dbgflags;
#define BTUSB_ERR(fmt, ...) \
printk(KERN_ERR "BTUSB %s: " fmt, __FUNCTION__, ##__VA_ARGS__)
-/* Get a minor range for your devices from the usb maintainer */
+// TBD: how do we assign the minor range?
#define BTUSB_MINOR_BASE 194
-/* 1025 = size(con_hdl) + size(acl_len) + size(3-dh5) = 2 + 2 + 1021 */
+// 1025 = size(con_hdl) + size(acl_len) + size(3-dh5) = 2 + 2 + 1021
#define BTUSB_HCI_MAX_ACL_SIZE 1025
-/* Maximum size of command and events packets (events = 255 + 2, commands = 255 + 3) */
+// Maximum size of command and events packets (events = 255 + 2, commands = 255 + 3)
#define BTUSB_HCI_MAX_CMD_SIZE 258
-#define BTUSB_HCI_MAX_EVT_SIZE 257
+#define BTUSB_HCI_MAX_EVT_SIZE 258
-/* Maximum HCI H4 size = HCI type + ACL packet */
+// Maximum HCI H4 size = HCI type + ACL packet
#define BTUSB_H4_MAX_SIZE (1 + BTUSB_HCI_MAX_ACL_SIZE)
#define BTUSB_NUM_OF_ACL_RX_BUFFERS 12
#define BTUSB_NUM_OF_ACL_TX_BUFFERS 12
-#define BTUSB_NUM_OF_DIAG_RX_BUFFERS 2 /* must not be less than 2 */
+#define BTUSB_NUM_OF_DIAG_RX_BUFFERS 2 // must not be less than 2
#define BTUSB_NUM_OF_DIAG_TX_BUFFERS 2
-#define BTUSB_NUM_OF_EVENT_BUFFERS 8 /* must not be less than 2 */
+#define BTUSB_NUM_OF_EVENT_BUFFERS 8 // should not be less than 2
#define BTUSB_NUM_OF_CMD_BUFFERS 8
#define BTUSB_MAXIMUM_TX_VOICE_SIZE 192
-#define BTUSB_NUM_OF_VOICE_RX_BUFFERS 2 /* must not be less than 2 */
-#define BTUSB_NUM_OF_VOICE_RX_PACKETS 8 /* maximum voice packets pending for user */
-#define BTUSB_NUM_OF_VOICE_TX_BUFFERS 16
+#define BTUSB_NUM_OF_VOICE_RX_BUFFERS 2 // for now should match 2 urbs
+#define BTUSB_NUM_OF_VOICE_TX_BUFFERS 32
+
+#define SCO_RX_BUFF_SIZE 360
+#define SCO_RX_MAX_LEN 240
#define BTUSB_VOICE_BURST_SIZE 48
#define BTUSB_VOICE_HEADER_SIZE 3
@@ -132,11 +126,6 @@ extern int dbgflags;
#define BTUSB_VOICE_BUFFER_MAXSIZE (BTUSB_VOICE_FRAMES_PER_URB * \
ALIGN(BTUSB_VOICE_BURST_SIZE + BTUSB_VOICE_HEADER_SIZE, 4))
-/* size of the SCO packets sent to user application (5 * 48 is the max below 256) */
-#define BTUSB_SCO_RX_LEN (BTUSB_VOICE_BURST_SIZE * 5)
-#if BTUSB_SCO_RX_LEN > 256
-#error SCO RX packet length is larger than the format supports
-#endif
#ifndef UINT8_TO_STREAM
#define UINT8_TO_STREAM(p, u8) {*(p)++ = (UINT8)(u8);}
@@ -156,7 +145,7 @@ extern int dbgflags;
#define UINT16_TO_BE_STREAM(p, u16) {*(p)++ = (UINT8)((u16) >> 8); *(p)++ = (UINT8)(u16);}
#define UINT8_TO_BE_STREAM(p, u8) {*(p)++ = (UINT8)(u8);}
-/* macro that helps parsing arrays */
+// macro that helps parsing arrays
#define BTUSB_ARRAY_FOR_EACH_TRANS(__a) \
for (idx = 0, p_trans = &__a[0]; idx < ARRAY_SIZE(__a); idx++, p_trans = &__a[idx])
@@ -164,150 +153,154 @@ extern int dbgflags;
#define BTUSB_LS_H4_TYPE_SENT (1<<0) /* H4 HCI Type already sent */
#define BTUSB_LS_GKI_BUFFER (1<<1) /* Locally allocated buffer-not to resubmit */
-struct btusb;
-
-/* Container used to copy the URB to sniff the SCO */
+//
+// Container used to copy the URB to sniff the SCO
+//
struct btusb_scosniff
{
- struct list_head lh; /* to add element to a list */
- int s; /* start frame */
- unsigned int n; /* number of descriptors */
- unsigned int l; /* buffer length */
- struct usb_iso_packet_descriptor d[0]; /* descriptors */
+ struct list_head lh; // to add element to a list
+ int s; // start frame
+ unsigned int n; // number of descriptors
+ unsigned int l; // buffer length
+ struct usb_iso_packet_descriptor d[0]; // descriptors
};
-/* USB transaction */
-struct btusb_trans
+//
+// This data structure is used for isochronous transfers
+//
+typedef struct
+{
+ // These two must go in sequence
+ void *dev;
+ unsigned char *packet;
+ int length;
+ unsigned long index;
+ int used;
+
+ // URB & related info must be the last fields
+ struct urb urb;
+ // enough to cover the longest request
+ struct usb_iso_packet_descriptor IsoPacket[(BTUSB_MAXIMUM_TX_VOICE_SIZE /9) + 1];
+} tBTUSB_ISO_ELEMENT;
+
+// BTUSB transaction
+typedef struct
{
/* This is mapped to a GKI buffer to allow queuing */
BUFFER_HDR_T gki_hdr;
/* Sharing queue with other packets -> needs BT header to multiplex */
BT_HDR bt_hdr;
- /* Pointer to the location where the data is stored */
+ /* Pointer to the location where the USB data is received */
UINT8 *dma_buffer;
/* DMA structure */
dma_addr_t dma;
/* URB for this transaction */
struct urb *p_urb;
- /* pointer to the device information */
- struct btusb *p_dev;
- void (*complete)(struct btusb *p_dev, struct btusb_trans *p_trans, struct urb *p_urb);
+ void *context;
#if (GKI_ENABLE_BUF_CORRUPTION_CHECK == TRUE)
/* Magic number */
UINT32 magic;
#endif
-};
+} tBTUSB_TRANSACTION;
-/* Voice packet */
-struct btusb_voice_pkt
+// Voice channel descriptor
+typedef struct
{
- /* This is mapped to a GKI buffer to allow queuing */
- BUFFER_HDR_T gki_hdr;
- /* Sharing queue with other packets -> needs BT header to multiplex */
- BT_HDR bt_hdr;
- UINT8 data[BTUSB_VOICE_HEADER_SIZE + BTUSB_SCO_RX_LEN];
-#if (GKI_ENABLE_BUF_CORRUPTION_CHECK == TRUE)
- /* Magic number */
- UINT32 magic;
-#endif
-};
+ unsigned short sco_handle;
+ unsigned char burst;
+} tBTUSB_SCO_INFO;
-/* Voice channel descriptor */
-struct btusb_voice_channel
+typedef struct
{
- bool used;
- unsigned short handle;
- unsigned char burst;
- /* pointer to HCI packet being reconstructed */
- struct btusb_voice_pkt *p_pkt;
-};
+ int used;
+ BT_HDR *p_msg;
+ tBTUSB_SCO_INFO info;
+} tBTUSB_VOICE_CHANNEL;
-/* hardware quirks required for some BT controllers */
#define BTUSB_QUIRK_ZLP_TX_REQ (1 << 0)
-#define BTUSB_QUIRK_EXAMPLE (1 << 1)
+#define BTUSB_QUIRK_ZLP_RX_WA (1 << 1)
-/* Define the main structure */
-struct btusb
+// Define the main structure
+typedef struct btusb_cb
{
- struct usb_device *p_udev; /* usb device for this device */
- const struct usb_device_id *p_id; /* device id from probe */
- struct usb_interface *p_main_intf; /* main interface reference */
- struct usb_interface *p_voice_intf; /* voice interface reference */
- struct usb_interface *p_dfu_intf; /* DFU interface reference */
- struct usb_interface *p_diag_intf; /* diag interface reference */
-
- struct usb_host_endpoint *p_acl_in; /* acl bulk in endpoint */
- struct usb_host_endpoint *p_acl_out; /* acl bulk out endpoint */
- struct usb_host_endpoint *p_diag_in; /* diag bulk in endpoint */
- struct usb_host_endpoint *p_diag_out; /* diag bulk out endpoint */
- struct usb_host_endpoint *p_event_in; /* event interrupt in endpoint */
- struct usb_host_endpoint *p_voice_out; /* isoc voice out endpoint */
- struct usb_host_endpoint *p_voice_in; /* isoc voice in endpoint */
- struct ktermios kterm; /* TTY emulation */
+ struct usb_device *p_udev; // the usb device for this device
+ const struct usb_device_id *p_id; // Device Id from probe
+ struct usb_interface *p_main_intf; // Main Interface reference
+ struct usb_interface *p_voice_intf; // VOICE Interface reference
+ struct usb_interface *p_dfu_intf; // DFU Interface reference
+ struct usb_interface *p_diag_intf; // Diag Interface reference
+
+ struct usb_host_endpoint *p_acl_in; // the acl bulk in endpoint
+ struct usb_host_endpoint *p_acl_out; // the acl bulk out endpoint
+ struct usb_host_endpoint *p_diag_in; // the diag bulk in endpoint
+ struct usb_host_endpoint *p_diag_out; // the diag bulk out endpoint
+ struct usb_host_endpoint *p_event_in; // the interrupt in endpoint
+ struct usb_host_endpoint *p_voice_out; // iso out endpoint
+ struct usb_host_endpoint *p_voice_in; // voice in endpoint
+ struct ktermios kterm; // TTY emulation
+ struct mutex open_mutex; // protect concurrent open accesses
+ spinlock_t tasklet_lock;
struct kref kref;
tBTUSB_STATS stats;
+ bool opened;
bool issharedusb;
unsigned int quirks;
- /* reception queue */
+ // reception queue
wait_queue_head_t rx_wait_q;
- /* tx tasklet */
+ // tx tasklet
struct tasklet_struct tx_task;
- /* proc filesystem entry to retrieve info from driver environment */
- struct proc_dir_entry *p_pde;
+ // proc filesystem entry to retrieve info from driver environment
+ struct proc_dir_entry *p_debug_pde;
bool scosniff_active;
+ struct proc_dir_entry *p_scosniff_pde;
struct list_head scosniff_list;
struct completion scosniff_completion;
- /* Command transmit path */
- struct btusb_trans cmd_array[BTUSB_NUM_OF_CMD_BUFFERS];
+ // Command transmit path
+ tBTUSB_TRANSACTION cmd_array[BTUSB_NUM_OF_CMD_BUFFERS];
struct usb_ctrlrequest cmd_req_array[BTUSB_NUM_OF_CMD_BUFFERS];
struct usb_anchor cmd_submitted;
- /* Event receive path */
- struct btusb_trans event_array[BTUSB_NUM_OF_EVENT_BUFFERS];
+ // Event receive path
+ tBTUSB_TRANSACTION event_array[BTUSB_NUM_OF_EVENT_BUFFERS];
struct usb_anchor event_submitted;
- /* ACL receive path */
- struct btusb_trans acl_rx_array[BTUSB_NUM_OF_ACL_RX_BUFFERS];
+ // ACL receive path
+ tBTUSB_TRANSACTION acl_rx_array[BTUSB_NUM_OF_ACL_RX_BUFFERS];
struct usb_anchor acl_rx_submitted;
- /* ACL transmit path */
- struct btusb_trans acl_tx_array[BTUSB_NUM_OF_ACL_TX_BUFFERS];
+ // ACL transmit path
+ tBTUSB_TRANSACTION acl_tx_array[BTUSB_NUM_OF_ACL_TX_BUFFERS];
struct usb_anchor acl_tx_submitted;
- /* Diagnostics receive path */
- struct btusb_trans diag_rx_array[BTUSB_NUM_OF_DIAG_RX_BUFFERS];
+ // Diagnostics receive path
+ tBTUSB_TRANSACTION diag_rx_array[BTUSB_NUM_OF_DIAG_RX_BUFFERS];
struct usb_anchor diag_rx_submitted;
- /* Diagnostics transmit path */
- struct btusb_trans diag_tx_array[BTUSB_NUM_OF_DIAG_TX_BUFFERS];
+ // Diagnostics transmit path
+ tBTUSB_TRANSACTION diag_tx_array[BTUSB_NUM_OF_DIAG_TX_BUFFERS];
struct usb_anchor diag_tx_submitted;
- /* Voice RX */
- struct btusb_trans voice_rx_array[BTUSB_NUM_OF_VOICE_RX_BUFFERS];
+ // Voice
+ tBTUSB_TRANSACTION voice_rx_array[BTUSB_NUM_OF_VOICE_RX_BUFFERS];
struct usb_anchor voice_rx_submitted;
- struct btusb_voice_pkt voice_rx_pkts[BTUSB_NUM_OF_VOICE_RX_PACKETS];
- DECLARE_BTUSB_CQ(voice_rx_list, struct btusb_voice_pkt *, BTUSB_NUM_OF_VOICE_RX_PACKETS);
-
- struct
- {
- struct btusb_voice_channel channels[3];
- unsigned int remaining;
- struct btusb_voice_pkt **pp_pkt;
- unsigned char hdr[BTUSB_VOICE_HEADER_SIZE];
- unsigned int hdr_size;
- } voice_rx;
-
- /* Voice TX */
- struct btusb_trans voice_tx_array[BTUSB_NUM_OF_VOICE_TX_BUFFERS];
- struct usb_anchor voice_tx_submitted;
- atomic_t voice_tx_active;
+
+ tBTUSB_VOICE_CHANNEL voice_channels[3];
+ unsigned short desired_packet_size;
+ unsigned int pending_bytes;
+ BT_HDR **pp_pending_msg;
+ unsigned char pending_hdr[BTUSB_VOICE_HEADER_SIZE];
+ unsigned int pending_hdr_size;
BT_HDR *p_write_msg;
+ unsigned long room_for_device_object; // must be here before the pending buffer
+ tBTUSB_ISO_ELEMENT *p_voicetxIrpList;
+ unsigned long voicetxIrpIndex;
+
BUFFER_Q rx_queue;
BT_HDR *p_rx_msg;
BUFFER_Q tx_queue;
@@ -315,40 +308,37 @@ struct btusb
#ifdef BTUSB_LITE
struct btusb_lite_cb lite_cb;
#endif
-};
+} tBTUSB_CB;
+
-/* Function prototypes */
+//
+// Function prototypes
+//
void btusb_delete(struct kref *kref);
void btusb_tx_task(unsigned long arg);
-void btusb_cancel_voice(struct btusb *p_dev);
-void btusb_cancel_urbs(struct btusb *p_dev);
+void btusb_cancel_voice(tBTUSB_CB *p_dev);
+void btusb_cancel_urbs(tBTUSB_CB *p_dev);
void btusb_voice_stats(unsigned long *p_max, unsigned long *p_min,
struct timeval *p_result, struct timeval *p_last_time);
/* URB submit */
-int btusb_submit(struct btusb *p_dev, struct usb_anchor *p_anchor, struct btusb_trans *p_trans, int mem_flags);
-void btusb_submit_voice_rx(struct btusb *p_dev, struct btusb_trans *p_trans, int mem_flags);
+int btusb_submit(tBTUSB_CB *p_dev, struct usb_anchor *p_anchor, tBTUSB_TRANSACTION *p_trans, int mem_flags);
+void btusb_submit_voice_rx(tBTUSB_CB *p_dev, tBTUSB_TRANSACTION *p_trans, int mem_flags);
-/* BT controller to host routines */
-void btusb_rx_enqueue(struct btusb *p_dev, struct btusb_trans *p_trans, UINT8 hcitype);
-void btusb_rx_enqueue_voice(struct btusb *p_dev, struct btusb_voice_pkt *p_pkt);
-void btusb_rx_dequeued(struct btusb *p_dev, BT_HDR *p_msg);
+/* bt controller to host routines */
+void btusb_enqueue(tBTUSB_CB *p_dev, tBTUSB_TRANSACTION *p_trans, UINT8 hcitype);
+void btusb_dequeued(tBTUSB_CB *p_dev, BT_HDR *p_msg);
void btusb_dump_data(const UINT8 *p, int len, const char *p_title);
-void btusb_cmd_complete(struct btusb *p_dev, struct btusb_trans *p_trans, struct urb *p_urb);
-void btusb_voicetx_complete(struct btusb *p_dev, struct btusb_trans *p_trans, struct urb *p_urb);
-void btusb_urb_out_complete(struct urb *p_urb);
+void btusb_cmd_complete(struct urb *p_urb);
+void btusb_write_complete(struct urb *p_urb);
void btusb_voicerx_complete(struct urb *p_urb);
-/* Voice commands */
-int btusb_add_voice_channel(struct btusb *p_dev, unsigned short sco_handle, unsigned char burst);
-int btusb_remove_voice_channel(struct btusb *p_dev, unsigned short sco_handle);
-
-/* USB device interface */
+// USB device interface
int btusb_open(struct inode *inode, struct file *file);
int btusb_release(struct inode *inode, struct file *file);
ssize_t btusb_read(struct file *file, char __user *buffer, size_t count, loff_t *ppos);
@@ -360,8 +350,18 @@ long btusb_ioctl(struct file *file, unsigned int cmd, unsigned long arg);
int btusb_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg);
#endif
-/* Globals */
+// proc standard interface
+int btusb_debug_open(struct inode *inode, struct file *file);
+ssize_t btusb_debug_write(struct file *file, const char *buf, size_t count, loff_t *pos);
+
+ssize_t btusb_scosniff_read(struct file *file, char __user *buf, size_t size, loff_t *ppos);
+int btusb_scosniff_open(struct inode *inode, struct file *file);
+int btusb_scosniff_release(struct inode *inode, struct file *file);
+
+//
+// Globals
+//
extern struct usb_driver btusb_driver;
extern bool autopm;
-#endif /* BTUSB_H */
+#endif // BTUSB_H
diff --git a/inc/btusb_lite.h b/bcm569/inc/btusb_lite.h
index 0f6fe06..66faaaa 100755
--- a/inc/btusb_lite.h
+++ b/bcm569/inc/btusb_lite.h
@@ -26,8 +26,8 @@
#ifndef BTUSB_LITE_H
#define BTUSB_LITE_H
-struct btusb;
-struct btpcm;
+/* Forward declaration of BTUSB CB */
+struct btusb_cb;
#include "bt_target.h"
#include "hcidefs.h"
@@ -52,7 +52,7 @@ struct btpcm;
struct btusb_lite_mgt_cb
{
- bool opened;
+ int opened;
};
struct btusb_lite_stat
@@ -93,17 +93,18 @@ struct btusb_lite_btu_cb
UINT8 transport_disabled;
};
-enum btusb_lite_pcm_state
+typedef enum
{
- PCM_CLOSED = 0,
- PCM_OPENED,
- PCM_CONFIGURED,
- PCM_STARTED
-};
+ BTPCM_LITE_PCM_CLOSED = 0,
+ BTPCM_LITE_PCM_OPENED,
+ BTPCM_LITE_PCM_CONFIGURED,
+ BTPCM_LITE_PCM_STARTED
+} btusb_lite_pcm_state_t;
struct btusb_lite_pcm_ccb
{
- enum btusb_lite_pcm_state state;
+ btusb_lite_pcm_state_t state;
+ int channel;
int frequency;
};
@@ -121,8 +122,7 @@ struct btusb_lite_encoder_ccb
struct btusb_lite_av_cb
{
UINT8 audio_open_cnt;
- UINT16 stack_mtu; /* received value from bt stack */
- UINT16 curr_mtu; /* modified value in btusb to meet PCM buffer size */
+ UINT16 curr_mtu;
UINT8 multi_av;
struct btusb_lite_pcm_ccb pcm;
struct btusb_lite_encoder_ccb encoder;
@@ -138,21 +138,16 @@ struct btusb_lite_av_cb
/* Main Lite Control Block */
struct btusb_lite_cb
{
- /* static entries */
struct proc_dir_entry *p_lite_pde;
- struct btpcm *p_btpcm;
- /* dynamic entries */
- struct {
- bool opened;
- struct btusb_lite_stat stat;
- struct btusb_lite_from_app from_app;
- struct btusb_lite_to_app to_app;
- struct btusb_lite_mgt_cb mgt; /* Management */
- struct btusb_lite_btu_cb btu; /* BTU */
- struct btusb_lite_l2c_cb l2c; /* L2C */
- struct btusb_lite_av_cb av; /* AV */
- struct btusb_lite_avdt_cb avdt;
- } s;
+ int opened;
+ struct btusb_lite_stat stat;
+ struct btusb_lite_from_app from_app;
+ struct btusb_lite_to_app to_app;
+ struct btusb_lite_mgt_cb mgt; /* Management */
+ struct btusb_lite_btu_cb btu; /* BTU */
+ struct btusb_lite_l2c_cb l2c; /* L2C */
+ struct btusb_lite_av_cb av; /* AV */
+ struct btusb_lite_avdt_cb avdt;
};
/*******************************************************************************
@@ -164,7 +159,7 @@ struct btusb_lite_cb
** Returns status (< 0 if error)
**
*******************************************************************************/
-int btusb_lite_create(struct btusb *p_dev, struct usb_interface *p_interface);
+int btusb_lite_create(struct btusb_cb *p_dev, struct usb_interface *p_interface);
/*******************************************************************************
**
@@ -175,7 +170,7 @@ int btusb_lite_create(struct btusb *p_dev, struct usb_interface *p_interface);
** Returns none
**
*******************************************************************************/
-void btusb_lite_delete(struct btusb *p_dev, struct usb_interface *p_interface);
+void btusb_lite_delete(struct btusb_cb *p_dev, struct usb_interface *p_interface);
/*******************************************************************************
**
@@ -186,7 +181,7 @@ void btusb_lite_delete(struct btusb *p_dev, struct usb_interface *p_interface);
** Returns void
**
*******************************************************************************/
-void btusb_lite_stop_all(struct btusb *p_dev);
+void btusb_lite_stop_all(struct btusb_cb *p_dev);
/*******************************************************************************
**
@@ -197,7 +192,7 @@ void btusb_lite_stop_all(struct btusb *p_dev);
** Returns int (1 if HCI is over IPC otherwise 0)
**
*******************************************************************************/
-int btusb_lite_is_hci_over_ipc(struct btusb *p_dev);
+int btusb_lite_is_hci_over_ipc(struct btusb_cb *p_dev);
#endif /* BTUSB_LITE_H*/
diff --git a/inc/btusb_lite_av.h b/bcm569/inc/btusb_lite_av.h
index 5b2f05d..f19ad0b 100755
--- a/inc/btusb_lite_av.h
+++ b/bcm569/inc/btusb_lite_av.h
@@ -77,7 +77,7 @@ extern int pcm0_mute;
** Returns None.
**
*******************************************************************************/
-void btusb_lite_av_add(struct btusb *p_dev, tBTA_AV_SYNC_INFO *p_sync_info,
+void btusb_lite_av_add(struct btusb_cb *p_dev, tBTA_AV_SYNC_INFO *p_sync_info,
UINT8 multi_av_supported, UINT16 curr_mtu);
/*******************************************************************************
@@ -90,7 +90,7 @@ void btusb_lite_av_add(struct btusb *p_dev, tBTA_AV_SYNC_INFO *p_sync_info,
** Returns None.
**
*******************************************************************************/
-void btusb_lite_av_remove(struct btusb *p_dev, UINT8 scb_idx,
+void btusb_lite_av_remove(struct btusb_cb *p_dev, UINT8 scb_idx,
UINT8 audio_open_cnt, UINT16 curr_mtu);
/*******************************************************************************
@@ -104,7 +104,7 @@ void btusb_lite_av_remove(struct btusb *p_dev, UINT8 scb_idx,
** is not allocated.
**
*******************************************************************************/
-void btusb_lite_av_start(struct btusb *p_dev, UINT8 scb_idx, UINT8 start_stop_flag,
+void btusb_lite_av_start(struct btusb_cb *p_dev, UINT8 scb_idx, UINT8 start_stop_flag,
UINT8 audio_open_cnt, tBTA_AV_AUDIO_CODEC_INFO *p_codec_cfg);
/*******************************************************************************
@@ -118,7 +118,7 @@ void btusb_lite_av_start(struct btusb *p_dev, UINT8 scb_idx, UINT8 start_stop_fl
** is not allocated.
**
*******************************************************************************/
-void btusb_lite_av_stop(struct btusb *p_dev, UINT8 scb_idx, UINT8 audio_open_cnt);
+void btusb_lite_av_stop(struct btusb_cb *p_dev, UINT8 scb_idx, UINT8 audio_open_cnt);
/*******************************************************************************
**
@@ -129,7 +129,7 @@ void btusb_lite_av_stop(struct btusb *p_dev, UINT8 scb_idx, UINT8 audio_open_cnt
** Returns none.
**
*******************************************************************************/
-void btusb_lite_av_suspend(struct btusb *p_dev, UINT8 scb_idx, UINT8 audio_open_cnt);
+void btusb_lite_av_suspend(struct btusb_cb *p_dev, UINT8 scb_idx, UINT8 audio_open_cnt);
#endif /* BTUSB_LITE_AV_H*/
diff --git a/inc/btusb_lite_avdt.h b/bcm569/inc/btusb_lite_avdt.h
index 2be89a1..3538cc7 100755
--- a/inc/btusb_lite_avdt.h
+++ b/bcm569/inc/btusb_lite_avdt.h
@@ -96,7 +96,7 @@ struct btusb_lite_avdt_cb
** is not allocated.
**
*******************************************************************************/
-struct btusb_lite_avdt_scb *btusb_lite_avdt_scb_by_hdl(struct btusb *p_dev, UINT8 hdl);
+struct btusb_lite_avdt_scb *btusb_lite_avdt_scb_by_hdl(struct btusb_cb *p_dev, UINT8 hdl);
/*******************************************************************************
**
@@ -107,7 +107,7 @@ struct btusb_lite_avdt_scb *btusb_lite_avdt_scb_by_hdl(struct btusb *p_dev, UINT
** Returns AVDT_SYNC_SUCCESS/AVDT_SYNC_FAILURE
**
*******************************************************************************/
-UINT8 btusb_lite_avdt_init_scb(struct btusb *p_dev, tAVDT_SCB_SYNC_INFO *p_scb_info);
+UINT8 btusb_lite_avdt_init_scb(struct btusb_cb *p_dev, tAVDT_SCB_SYNC_INFO *p_scb_info);
/*******************************************************************************
**
@@ -118,7 +118,7 @@ UINT8 btusb_lite_avdt_init_scb(struct btusb *p_dev, tAVDT_SCB_SYNC_INFO *p_scb_i
** Returns AVDT_SYNC_SUCCESS/AVDT_SYNC_FAILURE
**
*******************************************************************************/
-UINT8 btusb_lite_avdt_remove_scb(struct btusb *p_dev, UINT8 handle, tAVDT_SCB_SYNC_INFO *p_scb_info);
+UINT8 btusb_lite_avdt_remove_scb(struct btusb_cb *p_dev, UINT8 handle, tAVDT_SCB_SYNC_INFO *p_scb_info);
/*******************************************************************************
**
@@ -129,7 +129,7 @@ UINT8 btusb_lite_avdt_remove_scb(struct btusb *p_dev, UINT8 handle, tAVDT_SCB_SY
** Returns None
**
*******************************************************************************/
-void btusb_lite_avdt_send(struct btusb *p_dev, BT_HDR *p_msg, UINT8 avdt_handle,
+void btusb_lite_avdt_send(struct btusb_cb *p_dev, BT_HDR *p_msg, UINT8 avdt_handle,
UINT8 m_pt, UINT8 option, UINT32 timestamp);
/*******************************************************************************
@@ -141,7 +141,7 @@ void btusb_lite_avdt_send(struct btusb *p_dev, BT_HDR *p_msg, UINT8 avdt_handle,
** Returns AVDT_SYNC_SUCCESS/AVDT_SYNC_FAILURE
**
*******************************************************************************/
-UINT8 btusb_lite_avdt_cp_set_scms(struct btusb *p_dev, UINT8 avdt_handle,
+UINT8 btusb_lite_avdt_cp_set_scms(struct btusb_cb *p_dev, UINT8 avdt_handle,
BOOLEAN enable, UINT8 scms_hdr);
#endif /* BTUSB_LITE_AVDT_H*/
diff --git a/inc/btusb_lite_hci.h b/bcm569/inc/btusb_lite_hci.h
index ca634a1..bb88d26 100755
--- a/inc/btusb_lite_hci.h
+++ b/bcm569/inc/btusb_lite_hci.h
@@ -41,7 +41,7 @@
** Returns Status
**
*******************************************************************************/
-int btusb_lite_hci_acl_send(struct btusb *p_dev, BT_HDR *p_msg, UINT16 con_hdl);
+int btusb_lite_hci_acl_send(struct btusb_cb *p_dev, BT_HDR *p_msg, UINT16 con_hdl);
/*******************************************************************************
**
@@ -54,7 +54,7 @@ int btusb_lite_hci_acl_send(struct btusb *p_dev, BT_HDR *p_msg, UINT16 con_hdl);
** 0 if the command is handled
**
*******************************************************************************/
-int btusb_lite_hci_cmd_filter(struct btusb *p_dev, BT_HDR *p_msg);
+int btusb_lite_hci_cmd_filter(struct btusb_cb *p_dev, BT_HDR *p_msg);
/*******************************************************************************
**
@@ -65,7 +65,7 @@ int btusb_lite_hci_cmd_filter(struct btusb *p_dev, BT_HDR *p_msg);
** Returns int (1 if HCI is over IPC otherwise 0)
**
*******************************************************************************/
-int btusb_lite_hci_event_filter(struct btusb *p_dev, UINT8 *p_data, int length);
+int btusb_lite_hci_event_filter(struct btusb_cb *p_dev, UINT8 *p_data, int length);
#endif /* BTUSB_LITE_HCI_H */
diff --git a/inc/btusb_lite_l2c.h b/bcm569/inc/btusb_lite_l2c.h
index c740a29..bf5aa6a 100755
--- a/inc/btusb_lite_l2c.h
+++ b/bcm569/inc/btusb_lite_l2c.h
@@ -66,7 +66,7 @@ struct btusb_lite_l2c_cb
** Returns Status.
**
*******************************************************************************/
-int btusb_lite_l2c_add(struct btusb *p_dev, tL2C_STREAM_INFO *p_l2c_stream);
+int btusb_lite_l2c_add(struct btusb_cb *p_dev, tL2C_STREAM_INFO *p_l2c_stream);
/*******************************************************************************
**
@@ -77,7 +77,7 @@ int btusb_lite_l2c_add(struct btusb *p_dev, tL2C_STREAM_INFO *p_l2c_stream);
** Returns Status.
**
*******************************************************************************/
-int btusb_lite_l2c_remove(struct btusb *p_dev, UINT16 local_cid);
+int btusb_lite_l2c_remove(struct btusb_cb *p_dev, UINT16 local_cid);
/*******************************************************************************
**
@@ -88,7 +88,7 @@ int btusb_lite_l2c_remove(struct btusb *p_dev, UINT16 local_cid);
** Returns Status
**
*******************************************************************************/
-int btusb_lite_l2c_send(struct btusb *p_dev, BT_HDR *p_msg, UINT16 local_cid);
+int btusb_lite_l2c_send(struct btusb_cb *p_dev, BT_HDR *p_msg, UINT16 local_cid);
/*******************************************************************************
**
@@ -99,7 +99,7 @@ int btusb_lite_l2c_send(struct btusb *p_dev, BT_HDR *p_msg, UINT16 local_cid);
** Returns Number Of Complete Packet caught
**
*******************************************************************************/
-UINT16 btusb_lite_l2c_nocp_hdlr(struct btusb *p_dev, UINT16 con_hdl, UINT16 num_cplt_pck);
+UINT16 btusb_lite_l2c_nocp_hdlr(struct btusb_cb *p_dev, UINT16 con_hdl, UINT16 num_cplt_pck);
#endif /* BTUSB_LITE_L2C_H*/
diff --git a/inc/btusbext.h b/bcm569/inc/btusbext.h
index 4654f25..ccdff66 100755
--- a/inc/btusbext.h
+++ b/bcm569/inc/btusbext.h
@@ -29,67 +29,110 @@
#include <linux/time.h>
-/* BTUSB Statistics structure */
+// BTUSB Statistics structure
typedef struct
{
- /* All URB submit counter */
+ // All URB submit counter
unsigned long urb_submit_ok;
unsigned long urb_submit_err;
- /* All URB out complete */
- unsigned long urb_out_complete;
- unsigned long urb_out_complete_err;
-
- /* CMD counters */
- unsigned long cmd_submit_ok;
- unsigned long cmd_submit_err;
- unsigned long cmd_complete;
- unsigned long cmd_complete_err;
-
- /* ACL RX counters */
+ // ACL RX counters
unsigned long acl_rx_submit_ok;
unsigned long acl_rx_submit_err;
- unsigned long acl_rx_complete;
- unsigned long acl_rx_complete_err;
+ unsigned long acl_rx_completed;
unsigned long acl_rx_resubmit;
unsigned long acl_rx_bytes;
- /* DIAG RX counters */
+ // DIAG RX counters
unsigned long diag_rx_submit_ok;
unsigned long diag_rx_submit_err;
- unsigned long diag_rx_complete;
- unsigned long diag_rx_complete_err;
+ unsigned long diag_rx_completed;
unsigned long diag_rx_resubmit;
unsigned long diag_rx_bytes;
- /* EVENT counters */
+ // EVENT counters
unsigned long event_submit_ok;
unsigned long event_submit_err;
- unsigned long event_complete;
- unsigned long event_complete_err;
+ unsigned long event_completed;
unsigned long event_resubmit;
unsigned long event_bytes;
- /* VOICE RX counters */
- unsigned long voicerx_submit_ok;
- unsigned long voicerx_submit_err;
- unsigned long voicerx_complete;
- unsigned long voicerx_complete_err;
- unsigned long voicerx_bad_frames;
+ // Number of Write IRPs submitted
+ unsigned long writes_submitted;
+
+ // Number of Write IRPs submitted in error
+ unsigned long writes_submitted_error;
+
+ // Number of Write IRPs completed
+ unsigned long writes_completed;
+
+ // Number of Write IRPs completed in error
+ unsigned long writes_completed_error;
+
+ // Number of Command IRPs submitted
+ unsigned long commands_submitted;
+
+ // Number of Command IRPs submitted in error
+ unsigned long commands_submitted_error;
+
+ // Number of Command IRPs completed
+ unsigned long commands_completed;
+
+ // Number of Command IRPs completed in error
+ unsigned long commands_completed_error;
+
+ // Number of voice reqs submitted to the USB software stack
+ unsigned long voicerx_submitted;
+
+ // Number of voice rx submitted in error
+ unsigned long voicerx_submitted_error;
+
+ // Number of voice req completions from the USB software stack
+ unsigned long voicerx_completed;
+
+ // Number of Voice req completions in error
+ unsigned long voicerx_completed_error;
+
+ // Number of bad voice RX packets received
+ unsigned long voicerx_bad_packets;
+
+ // Bytes received altogether
unsigned long voicerx_raw_bytes;
+
+ // Bytes skipped
unsigned long voicerx_skipped_bytes;
+
+ // SCO headers split across packets
unsigned long voicerx_split_hdr;
- unsigned long voicerx_bad_hdr;
- unsigned long voicerx_bad_size;
- /* VOICE TX counters */
- unsigned long voicetx_submit_ok;
- unsigned long voicetx_submit_err;
- unsigned long voicetx_nobuf;
- unsigned long voicetx_complete;
- unsigned long voicetx_complete_err;
+ // Voice frames discarded due to no headers in data
+ unsigned long voicerx_disc_nohdr;
+
+ // Number of Voice Tx reqs submitted
+ unsigned long voicetx_submitted;
+
+ // Number of voice tx submitted in error
+ unsigned long voicetx_submitted_error;
+
+ // Number of Voice Tx reqs completed
+ unsigned long voicetx_completed;
+
+ // Number of Voice Tx reqs completed in error
+ unsigned long voicetx_completed_error;
- /* voice timings */
+ // Number of Voice Tx not submitted due to no room on the tx queue
+ unsigned long voicetx_disc_nobuf;
+
+ // Number of Voice tx not submitted due to too long data
+ unsigned long voicetx_disc_toolong;
+
+ /* number of Voice packet pending */
+ unsigned long voice_tx_cnt;
+
+ /* max number of Voice packet pending */
+ unsigned long voice_max_tx_cnt;
+
+ /* max delta time between 2 consecutive tx done routine in us */
unsigned long voice_max_tx_done_delta_time;
unsigned long voice_min_tx_done_delta_time;
struct timeval voice_tx_done_delta_time;
@@ -108,7 +151,9 @@ typedef struct
struct timeval voice_last_rx_feeding_ts;
} tBTUSB_STATS;
-/* IOCTL definitions (shared among all user mode applications, do not modify) */
+//
+// IOCTL definitions (shared among all user mode applications, do not modify)
+//
#define IOCTL_BTWUSB_GET_STATS 0x1001
#define IOCTL_BTWUSB_CLEAR_STATS 0x1002
#define IOCTL_BTWUSB_PUT 0x1003
@@ -121,10 +166,4 @@ typedef struct
#define IOCTL_BTWUSB_REMOVE_VOICE_CHANNEL 0x100a
#define IOCTL_BTWUSB_DEV_RESET 0x100b
-struct btusb_ioctl_sco_info
-{
- unsigned short handle;
- unsigned char burst;
-};
-
-#endif
+#endif // BTUSBEXT_H
diff --git a/inc/data_types.h b/bcm569/inc/data_types.h
index e8ccf4b..e8ccf4b 100755
--- a/inc/data_types.h
+++ b/bcm569/inc/data_types.h
diff --git a/inc/gki.h b/bcm569/inc/gki.h
index 8b04756..8b04756 100755
--- a/inc/gki.h
+++ b/bcm569/inc/gki.h
diff --git a/inc/gki_int.h b/bcm569/inc/gki_int.h
index f210e58..f210e58 100755
--- a/inc/gki_int.h
+++ b/bcm569/inc/gki_int.h
diff --git a/inc/hcidefs.h b/bcm569/inc/hcidefs.h
index 57cd195..ec2e802 100755
--- a/inc/hcidefs.h
+++ b/bcm569/inc/hcidefs.h
@@ -51,7 +51,7 @@
#define HCI_OCF(p) ( 0x3FF & (p))
/*
-** Definitions for Link Control Commands
+** Defentions for Link Control Commands
*/
/* Following opcode is used only in command complete event for flow control */
#define HCI_COMMAND_NONE 0x0000
@@ -345,7 +345,7 @@
specification compliant */
/*
-** HCI Error Codes definition
+** Defentions for HCI Error Codes that are past in the events
*/
#define HCI_SUCCESS 0x00
#define HCI_PENDING 0x00
@@ -561,13 +561,13 @@
#define HCI_CR_CONN_ALLOW_SWITCH 0x01
/*
-** Hold Mode command destination
+** Hold Mode command destination
*/
#define HOLD_MODE_DEST_LOCAL_DEVICE 0x00
#define HOLD_MODE_DEST_RMT_DEVICE 0x01
/*
-** Definitions of different HCI parameters
+** Defentions for different HCI parameters
*/
#define HCI_PER_INQ_MIN_MAX_PERIOD 0x0003
#define HCI_PER_INQ_MAX_MAX_PERIOD 0xFFFF
@@ -579,12 +579,12 @@
#define HCI_MIN_INQ_LAP 0x9E8B00
#define HCI_MAX_INQ_LAP 0x9E8B3F
-/* HCI role definition */
+/* HCI role defenitions */
#define HCI_ROLE_MASTER 0x00
#define HCI_ROLE_SLAVE 0x01
-#define HCI_ROLE_UNKNOWN 0xff
+#define HCI_ROLE_UNKNOWN 0xff
-/* HCI mode definition */
+/* HCI mode defenitions */
#define HCI_MODE_ACTIVE 0x00
#define HCI_MODE_HOLD 0x01
#define HCI_MODE_SNIFF 0x02
diff --git a/inc/target.h b/bcm569/inc/target.h
index 32b5bf9..32b5bf9 100755
--- a/inc/target.h
+++ b/bcm569/inc/target.h
diff --git a/bcm569/modules.order b/bcm569/modules.order
new file mode 100644
index 0000000..b86d624
--- a/dev/null
+++ b/bcm569/modules.order
@@ -0,0 +1 @@
+kernel//mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/btusb_comp.ko
diff --git a/bcm569/src/.btusb.o.cmd b/bcm569/src/.btusb.o.cmd
new file mode 100644
index 0000000..6e4e809
--- a/dev/null
+++ b/bcm569/src/.btusb.o.cmd
@@ -0,0 +1,686 @@
+cmd_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src/btusb.o := arm-linux-gnueabihf-gcc -Wp,-MD,/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src/.btusb.o.d -nostdinc -isystem /opt/gcc-linaro-arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.7.3/include -I/mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include -Iarch/arm/include/generated -I/mnt/nfsroot/weiguang.ruan/m8b/common/include -Iinclude -I/mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi -Iarch/arm/include/generated/uapi -I/mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi -Iinclude/generated/uapi -include /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kconfig.h -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569 -D__KERNEL__ -mlittle-endian -I/mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/mach-mesong9tv/include -I/mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/plat-meson/include -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -Werror -Werror=enum-compare -Werror=comment -Werror=implicit-int -Werror=missing-braces -Werror=unused-value -Werror=maybe-uninitialized -Werror=unused-variable -Werror=format -Werror=unused-function -Werror=switch -Werror=strict-prototypes -Werror=declaration-after-statement -Werror=uninitialized -Werror=unused-label -Werror=undef -Werror=unused-result -Werror=return-type -Werror=parentheses -Werror=int-to-pointer-cast -Wno-error=cpp -O2 -fno-dwarf2-cfi-asm -mabi=aapcs-linux -mno-thumb-interwork -funwind-tables -marm -D__LINUX_ARM_ARCH__=7 -march=armv7-a -msoft-float -Uarm -fno-reorder-blocks -fno-ipa-cp-clone -fno-partial-inlining -Wframe-larger-than=1024 -fno-stack-protector -Wno-unused-but-set-variable -fomit-frame-pointer -g -fno-inline-functions-called-once -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -DCC_HAVE_ASM_GOTO -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569 -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/inc -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src/gki -DEXPORT_SYMTAB -DEXPORT_SYMTAB -DMODULE -D"KBUILD_STR(s)=\#s" -D"KBUILD_BASENAME=KBUILD_STR(btusb)" -D"KBUILD_MODNAME=KBUILD_STR(btusb_comp)" -c -o /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src/btusb.o /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src/btusb.c
+
+source_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src/btusb.o := /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src/btusb.c
+
+deps_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src/btusb.o := \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/module.h \
+ $(wildcard include/config/sysfs.h) \
+ $(wildcard include/config/modules.h) \
+ $(wildcard include/config/unused/symbols.h) \
+ $(wildcard include/config/module/sig.h) \
+ $(wildcard include/config/generic/bug.h) \
+ $(wildcard include/config/kallsyms.h) \
+ $(wildcard include/config/smp.h) \
+ $(wildcard include/config/tracepoints.h) \
+ $(wildcard include/config/tracing.h) \
+ $(wildcard include/config/event/tracing.h) \
+ $(wildcard include/config/ftrace/mcount/record.h) \
+ $(wildcard include/config/module/unload.h) \
+ $(wildcard include/config/constructors.h) \
+ $(wildcard include/config/debug/set/module/ronx.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/list.h \
+ $(wildcard include/config/debug/list.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/types.h \
+ $(wildcard include/config/uid16.h) \
+ $(wildcard include/config/lbdaf.h) \
+ $(wildcard include/config/arch/dma/addr/t/64bit.h) \
+ $(wildcard include/config/phys/addr/t/64bit.h) \
+ $(wildcard include/config/64bit.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/types.h \
+ arch/arm/include/generated/asm/types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/int-ll64.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/int-ll64.h \
+ arch/arm/include/generated/asm/bitsperlong.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitsperlong.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/bitsperlong.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/posix_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/stddef.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/stddef.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/compiler.h \
+ $(wildcard include/config/sparse/rcu/pointer.h) \
+ $(wildcard include/config/trace/branch/profiling.h) \
+ $(wildcard include/config/profile/all/branches.h) \
+ $(wildcard include/config/enable/must/check.h) \
+ $(wildcard include/config/enable/warn/deprecated.h) \
+ $(wildcard include/config/kprobes.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/compiler-gcc.h \
+ $(wildcard include/config/arch/supports/optimized/inlining.h) \
+ $(wildcard include/config/optimize/inlining.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/compiler-gcc4.h \
+ $(wildcard include/config/arch/use/builtin/bswap.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/posix_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/posix_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/poison.h \
+ $(wildcard include/config/illegal/pointer/value.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/const.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/stat.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/stat.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/stat.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/time.h \
+ $(wildcard include/config/arch/uses/gettimeoffset.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/cache.h \
+ $(wildcard include/config/arch/has/cache/line/size.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kernel.h \
+ $(wildcard include/config/preempt/voluntary.h) \
+ $(wildcard include/config/debug/atomic/sleep.h) \
+ $(wildcard include/config/prove/locking.h) \
+ $(wildcard include/config/ring/buffer.h) \
+ /opt/gcc-linaro-arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.7.3/include/stdarg.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/linkage.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/stringify.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/export.h \
+ $(wildcard include/config/have/underscore/symbol/prefix.h) \
+ $(wildcard include/config/modversions.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/linkage.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bitops.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/bitops.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/irqflags.h \
+ $(wildcard include/config/trace/irqflags.h) \
+ $(wildcard include/config/irqsoff/tracer.h) \
+ $(wildcard include/config/preempt/tracer.h) \
+ $(wildcard include/config/trace/irqflags/support.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/typecheck.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/irqflags.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/ptrace.h \
+ $(wildcard include/config/arm/thumb.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/ptrace.h \
+ $(wildcard include/config/cpu/endian/be8.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/hwcap.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/hwcap.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/non-atomic.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/fls64.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/sched.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/hweight.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/arch_hweight.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/const_hweight.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/lock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/le.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/byteorder.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/byteorder/little_endian.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/byteorder/little_endian.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/swab.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/swab.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/swab.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/swab.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/byteorder/generic.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/ext2-atomic-setbit.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/log2.h \
+ $(wildcard include/config/arch/has/ilog2/u32.h) \
+ $(wildcard include/config/arch/has/ilog2/u64.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/printk.h \
+ $(wildcard include/config/early/printk.h) \
+ $(wildcard include/config/printk.h) \
+ $(wildcard include/config/dynamic/debug.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/init.h \
+ $(wildcard include/config/broken/rodata.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kern_levels.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/dynamic_debug.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/string.h \
+ $(wildcard include/config/binary/printf.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/string.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/string.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/errno.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/errno.h \
+ arch/arm/include/generated/asm/errno.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/errno.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/errno-base.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/kernel.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/sysinfo.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/div64.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/compiler.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/bug.h \
+ $(wildcard include/config/bug.h) \
+ $(wildcard include/config/thumb2/kernel.h) \
+ $(wildcard include/config/debug/bugverbose.h) \
+ $(wildcard include/config/arm/lpae.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bug.h \
+ $(wildcard include/config/generic/bug/relative/pointers.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/cache.h \
+ $(wildcard include/config/arm/l1/cache/shift.h) \
+ $(wildcard include/config/aeabi.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/seqlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/spinlock.h \
+ $(wildcard include/config/debug/spinlock.h) \
+ $(wildcard include/config/generic/lockbreak.h) \
+ $(wildcard include/config/preempt.h) \
+ $(wildcard include/config/debug/lock/alloc.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/preempt.h \
+ $(wildcard include/config/debug/preempt.h) \
+ $(wildcard include/config/context/tracking.h) \
+ $(wildcard include/config/preempt/count.h) \
+ $(wildcard include/config/preempt/notifiers.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/thread_info.h \
+ $(wildcard include/config/compat.h) \
+ $(wildcard include/config/debug/stack/usage.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bug.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/thread_info.h \
+ $(wildcard include/config/crunch.h) \
+ $(wildcard include/config/arm/thumbee.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/fpstate.h \
+ $(wildcard include/config/vfpv3.h) \
+ $(wildcard include/config/iwmmxt.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/domain.h \
+ $(wildcard include/config/io/36.h) \
+ $(wildcard include/config/cpu/use/domains.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/barrier.h \
+ $(wildcard include/config/cpu/32v6k.h) \
+ $(wildcard include/config/cpu/xsc3.h) \
+ $(wildcard include/config/cpu/fa526.h) \
+ $(wildcard include/config/arch/has/barriers.h) \
+ $(wildcard include/config/arm/dma/mem/bufferable.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/outercache.h \
+ $(wildcard include/config/outer/cache/sync.h) \
+ $(wildcard include/config/outer/cache.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bottom_half.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/spinlock_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/spinlock_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/lockdep.h \
+ $(wildcard include/config/lockdep.h) \
+ $(wildcard include/config/lock/stat.h) \
+ $(wildcard include/config/prove/rcu.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwlock_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/spinlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/processor.h \
+ $(wildcard include/config/have/hw/breakpoint.h) \
+ $(wildcard include/config/mmu.h) \
+ $(wildcard include/config/arm/errata/754327.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/hw_breakpoint.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/spinlock_api_smp.h \
+ $(wildcard include/config/inline/spin/lock.h) \
+ $(wildcard include/config/inline/spin/lock/bh.h) \
+ $(wildcard include/config/inline/spin/lock/irq.h) \
+ $(wildcard include/config/inline/spin/lock/irqsave.h) \
+ $(wildcard include/config/inline/spin/trylock.h) \
+ $(wildcard include/config/inline/spin/trylock/bh.h) \
+ $(wildcard include/config/uninline/spin/unlock.h) \
+ $(wildcard include/config/inline/spin/unlock/bh.h) \
+ $(wildcard include/config/inline/spin/unlock/irq.h) \
+ $(wildcard include/config/inline/spin/unlock/irqrestore.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwlock_api_smp.h \
+ $(wildcard include/config/inline/read/lock.h) \
+ $(wildcard include/config/inline/write/lock.h) \
+ $(wildcard include/config/inline/read/lock/bh.h) \
+ $(wildcard include/config/inline/write/lock/bh.h) \
+ $(wildcard include/config/inline/read/lock/irq.h) \
+ $(wildcard include/config/inline/write/lock/irq.h) \
+ $(wildcard include/config/inline/read/lock/irqsave.h) \
+ $(wildcard include/config/inline/write/lock/irqsave.h) \
+ $(wildcard include/config/inline/read/trylock.h) \
+ $(wildcard include/config/inline/write/trylock.h) \
+ $(wildcard include/config/inline/read/unlock.h) \
+ $(wildcard include/config/inline/write/unlock.h) \
+ $(wildcard include/config/inline/read/unlock/bh.h) \
+ $(wildcard include/config/inline/write/unlock/bh.h) \
+ $(wildcard include/config/inline/read/unlock/irq.h) \
+ $(wildcard include/config/inline/write/unlock/irq.h) \
+ $(wildcard include/config/inline/read/unlock/irqrestore.h) \
+ $(wildcard include/config/inline/write/unlock/irqrestore.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/atomic.h \
+ $(wildcard include/config/arch/has/atomic/or.h) \
+ $(wildcard include/config/generic/atomic64.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/atomic.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/cmpxchg.h \
+ $(wildcard include/config/cpu/sa1100.h) \
+ $(wildcard include/config/cpu/sa110.h) \
+ $(wildcard include/config/cpu/v6.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/cmpxchg-local.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/atomic-long.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/math64.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/time.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/uidgid.h \
+ $(wildcard include/config/uidgid/strict/type/checks.h) \
+ $(wildcard include/config/user/ns.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/highuid.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kmod.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/gfp.h \
+ $(wildcard include/config/numa.h) \
+ $(wildcard include/config/highmem.h) \
+ $(wildcard include/config/zone/dma.h) \
+ $(wildcard include/config/zone/dma32.h) \
+ $(wildcard include/config/pm/sleep.h) \
+ $(wildcard include/config/cma.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/mmzone.h \
+ $(wildcard include/config/force/max/zoneorder.h) \
+ $(wildcard include/config/memory/isolation.h) \
+ $(wildcard include/config/memcg.h) \
+ $(wildcard include/config/compaction.h) \
+ $(wildcard include/config/memory/hotplug.h) \
+ $(wildcard include/config/sparsemem.h) \
+ $(wildcard include/config/have/memblock/node/map.h) \
+ $(wildcard include/config/discontigmem.h) \
+ $(wildcard include/config/flat/node/mem/map.h) \
+ $(wildcard include/config/no/bootmem.h) \
+ $(wildcard include/config/numa/balancing.h) \
+ $(wildcard include/config/have/memory/present.h) \
+ $(wildcard include/config/have/memoryless/nodes.h) \
+ $(wildcard include/config/need/node/memmap/size.h) \
+ $(wildcard include/config/need/multiple/nodes.h) \
+ $(wildcard include/config/have/arch/early/pfn/to/nid.h) \
+ $(wildcard include/config/flatmem.h) \
+ $(wildcard include/config/sparsemem/extreme.h) \
+ $(wildcard include/config/have/arch/pfn/valid.h) \
+ $(wildcard include/config/nodes/span/other/nodes.h) \
+ $(wildcard include/config/holes/in/zone.h) \
+ $(wildcard include/config/arch/has/holes/memorymodel.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/wait.h \
+ arch/arm/include/generated/asm/current.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/current.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/wait.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/threads.h \
+ $(wildcard include/config/nr/cpus.h) \
+ $(wildcard include/config/base/small.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/numa.h \
+ $(wildcard include/config/nodes/shift.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/nodemask.h \
+ $(wildcard include/config/movable/node.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bitmap.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pageblock-flags.h \
+ $(wildcard include/config/hugetlb/page.h) \
+ $(wildcard include/config/hugetlb/page/size/variable.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/page-flags-layout.h \
+ $(wildcard include/config/sparsemem/vmemmap.h) \
+ include/generated/bounds.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/page.h \
+ $(wildcard include/config/cpu/copy/v4wt.h) \
+ $(wildcard include/config/cpu/copy/v4wb.h) \
+ $(wildcard include/config/cpu/copy/feroceon.h) \
+ $(wildcard include/config/cpu/copy/fa.h) \
+ $(wildcard include/config/cpu/xscale.h) \
+ $(wildcard include/config/cpu/copy/v6.h) \
+ $(wildcard include/config/kuser/helpers.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/glue.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/pgtable-2level-types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/memory.h \
+ $(wildcard include/config/need/mach/memory/h.h) \
+ $(wildcard include/config/page/offset.h) \
+ $(wildcard include/config/dram/size.h) \
+ $(wildcard include/config/dram/base.h) \
+ $(wildcard include/config/have/tcm.h) \
+ $(wildcard include/config/arm/patch/phys/virt.h) \
+ $(wildcard include/config/phys/offset.h) \
+ $(wildcard include/config/virt/to/bus.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/sizes.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/mach-mesong9tv/include/mach/memory.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/memory_model.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/getorder.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/sysctl.h \
+ $(wildcard include/config/sysctl.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rcupdate.h \
+ $(wildcard include/config/rcu/torture/test.h) \
+ $(wildcard include/config/tree/rcu.h) \
+ $(wildcard include/config/tree/preempt/rcu.h) \
+ $(wildcard include/config/rcu/trace.h) \
+ $(wildcard include/config/preempt/rcu.h) \
+ $(wildcard include/config/rcu/user/qs.h) \
+ $(wildcard include/config/tiny/rcu.h) \
+ $(wildcard include/config/tiny/preempt/rcu.h) \
+ $(wildcard include/config/debug/objects/rcu/head.h) \
+ $(wildcard include/config/hotplug/cpu.h) \
+ $(wildcard include/config/rcu/nocb/cpu.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/cpumask.h \
+ $(wildcard include/config/cpumask/offstack.h) \
+ $(wildcard include/config/debug/per/cpu/maps.h) \
+ $(wildcard include/config/disable/obsolete/cpumask/functions.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/completion.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/debugobjects.h \
+ $(wildcard include/config/debug/objects.h) \
+ $(wildcard include/config/debug/objects/free.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rcutree.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rbtree.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/sysctl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/memory_hotplug.h \
+ $(wildcard include/config/memory/hotremove.h) \
+ $(wildcard include/config/have/arch/nodedata/extension.h) \
+ $(wildcard include/config/have/bootmem/info/node.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/notifier.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/mutex.h \
+ $(wildcard include/config/debug/mutexes.h) \
+ $(wildcard include/config/mutex/spin/on/owner.h) \
+ $(wildcard include/config/have/arch/mutex/cpu/relax.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwsem.h \
+ $(wildcard include/config/rwsem/generic/spinlock.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwsem-spinlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/srcu.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/workqueue.h \
+ $(wildcard include/config/debug/objects/work.h) \
+ $(wildcard include/config/freezer.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/timer.h \
+ $(wildcard include/config/timer/stats.h) \
+ $(wildcard include/config/debug/objects/timers.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/ktime.h \
+ $(wildcard include/config/ktime/scalar.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/jiffies.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/timex.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/timex.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/param.h \
+ arch/arm/include/generated/asm/param.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/param.h \
+ $(wildcard include/config/hz.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/param.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/timex.h \
+ $(wildcard include/config/arch/multiplatform.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/mach-mesong9tv/include/mach/timex.h \
+ $(wildcard include/config/meson/clock/tick/rate.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/topology.h \
+ $(wildcard include/config/sched/smt.h) \
+ $(wildcard include/config/sched/mc.h) \
+ $(wildcard include/config/sched/book.h) \
+ $(wildcard include/config/use/percpu/numa/node/id.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/smp.h \
+ $(wildcard include/config/use/generic/smp/helpers.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/smp.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/percpu.h \
+ $(wildcard include/config/need/per/cpu/embed/first/chunk.h) \
+ $(wildcard include/config/need/per/cpu/page/first/chunk.h) \
+ $(wildcard include/config/have/setup/per/cpu/area.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pfn.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/percpu.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/percpu.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/percpu-defs.h \
+ $(wildcard include/config/debug/force/weak/per/cpu.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/topology.h \
+ $(wildcard include/config/arm/cpu/topology.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/topology.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/mmdebug.h \
+ $(wildcard include/config/debug/vm.h) \
+ $(wildcard include/config/debug/virtual.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/elf.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/elf.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/user.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/elf.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/elf-em.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kobject.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/sysfs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kobject_ns.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kref.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/moduleparam.h \
+ $(wildcard include/config/alpha.h) \
+ $(wildcard include/config/ia64.h) \
+ $(wildcard include/config/ppc64.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/tracepoint.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/static_key.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/jump_label.h \
+ $(wildcard include/config/jump/label.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/module.h \
+ $(wildcard include/config/arm/unwind.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/module.h \
+ $(wildcard include/config/have/mod/arch/specific.h) \
+ $(wildcard include/config/modules/use/elf/rel.h) \
+ $(wildcard include/config/modules/use/elf/rela.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/slab.h \
+ $(wildcard include/config/slab/debug.h) \
+ $(wildcard include/config/kmemcheck.h) \
+ $(wildcard include/config/failslab.h) \
+ $(wildcard include/config/slob.h) \
+ $(wildcard include/config/slab.h) \
+ $(wildcard include/config/slub.h) \
+ $(wildcard include/config/debug/slab.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/slub_def.h \
+ $(wildcard include/config/slub/stats.h) \
+ $(wildcard include/config/memcg/kmem.h) \
+ $(wildcard include/config/slub/debug.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kmemleak.h \
+ $(wildcard include/config/debug/kmemleak.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/proc_fs.h \
+ $(wildcard include/config/proc/fs.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/fs.h \
+ $(wildcard include/config/fs/posix/acl.h) \
+ $(wildcard include/config/security.h) \
+ $(wildcard include/config/quota.h) \
+ $(wildcard include/config/fsnotify.h) \
+ $(wildcard include/config/ima.h) \
+ $(wildcard include/config/epoll.h) \
+ $(wildcard include/config/debug/writecount.h) \
+ $(wildcard include/config/file/locking.h) \
+ $(wildcard include/config/auditsyscall.h) \
+ $(wildcard include/config/block.h) \
+ $(wildcard include/config/fs/xip.h) \
+ $(wildcard include/config/migration.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kdev_t.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/kdev_t.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/dcache.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rculist.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rculist_bl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/list_bl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bit_spinlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/path.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/radix-tree.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pid.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/capability.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/capability.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/semaphore.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/fiemap.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/shrinker.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/migrate_mode.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/percpu-rwsem.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/blk_types.h \
+ $(wildcard include/config/blk/cgroup.h) \
+ $(wildcard include/config/blk/dev/integrity.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/fs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/limits.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/ioctl.h \
+ arch/arm/include/generated/asm/ioctl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/ioctl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/ioctl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/quota.h \
+ $(wildcard include/config/quota/netlink/interface.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/percpu_counter.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/dqblk_xfs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/dqblk_v1.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/dqblk_v2.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/dqblk_qtree.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/projid.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/quota.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/nfs_fs_i.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/fcntl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/fcntl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/fcntl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/fcntl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/err.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/seq_file.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/inc/btusb.h \
+ include/generated/uapi/linux/version.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/usb.h \
+ $(wildcard include/config/usb/mon.h) \
+ $(wildcard include/config/pm.h) \
+ $(wildcard include/config/acpi.h) \
+ $(wildcard include/config/pm/runtime.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/mod_devicetable.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/uuid.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/uuid.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/usb/ch9.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/usb/ch9.h \
+ $(wildcard include/config/size.h) \
+ $(wildcard include/config/att/one.h) \
+ $(wildcard include/config/att/selfpower.h) \
+ $(wildcard include/config/att/wakeup.h) \
+ $(wildcard include/config/att/battery.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/delay.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/delay.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/interrupt.h \
+ $(wildcard include/config/generic/hardirqs.h) \
+ $(wildcard include/config/irq/forced/threading.h) \
+ $(wildcard include/config/generic/irq/probe.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/irqreturn.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/irqnr.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/irqnr.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/hardirq.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/ftrace_irq.h \
+ $(wildcard include/config/ftrace/nmi/enter.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/vtime.h \
+ $(wildcard include/config/virt/cpu/accounting.h) \
+ $(wildcard include/config/virt/cpu/accounting/native.h) \
+ $(wildcard include/config/virt/cpu/accounting/gen.h) \
+ $(wildcard include/config/irq/time/accounting.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/hardirq.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/irq.h \
+ $(wildcard include/config/sparse/irq.h) \
+ $(wildcard include/config/multi/irq/handler.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/mach-mesong9tv/include/mach/irqs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/irq_cpustat.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/hrtimer.h \
+ $(wildcard include/config/high/res/timers.h) \
+ $(wildcard include/config/timerfd.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/timerqueue.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/device.h \
+ $(wildcard include/config/debug/devres.h) \
+ $(wildcard include/config/pinctrl.h) \
+ $(wildcard include/config/devtmpfs.h) \
+ $(wildcard include/config/sysfs/deprecated.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/ioport.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/klist.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pinctrl/devinfo.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pinctrl/consumer.h \
+ $(wildcard include/config/pinconf.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pinctrl/pinctrl-state.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pinctrl/machine.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pm.h \
+ $(wildcard include/config/vt/console/sleep.h) \
+ $(wildcard include/config/pm/clk.h) \
+ $(wildcard include/config/pm/generic/domains.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/ratelimit.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/device.h \
+ $(wildcard include/config/dmabounce.h) \
+ $(wildcard include/config/iommu/api.h) \
+ $(wildcard include/config/arm/dma/use/iommu.h) \
+ $(wildcard include/config/arch/omap.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pm_wakeup.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/sched.h \
+ $(wildcard include/config/sched/debug.h) \
+ $(wildcard include/config/no/hz/common.h) \
+ $(wildcard include/config/lockup/detector.h) \
+ $(wildcard include/config/core/dump/default/elf/headers.h) \
+ $(wildcard include/config/sched/autogroup.h) \
+ $(wildcard include/config/bsd/process/acct.h) \
+ $(wildcard include/config/taskstats.h) \
+ $(wildcard include/config/audit.h) \
+ $(wildcard include/config/cgroups.h) \
+ $(wildcard include/config/inotify/user.h) \
+ $(wildcard include/config/fanotify.h) \
+ $(wildcard include/config/posix/mqueue.h) \
+ $(wildcard include/config/keys.h) \
+ $(wildcard include/config/perf/events.h) \
+ $(wildcard include/config/schedstats.h) \
+ $(wildcard include/config/task/delay/acct.h) \
+ $(wildcard include/config/fair/group/sched.h) \
+ $(wildcard include/config/rt/group/sched.h) \
+ $(wildcard include/config/cgroup/sched.h) \
+ $(wildcard include/config/blk/dev/io/trace.h) \
+ $(wildcard include/config/rcu/boost.h) \
+ $(wildcard include/config/compat/brk.h) \
+ $(wildcard include/config/cc/stackprotector.h) \
+ $(wildcard include/config/sysvipc.h) \
+ $(wildcard include/config/detect/hung/task.h) \
+ $(wildcard include/config/rt/mutexes.h) \
+ $(wildcard include/config/task/xacct.h) \
+ $(wildcard include/config/cpusets.h) \
+ $(wildcard include/config/futex.h) \
+ $(wildcard include/config/fault/injection.h) \
+ $(wildcard include/config/latencytop.h) \
+ $(wildcard include/config/function/graph/tracer.h) \
+ $(wildcard include/config/uprobes.h) \
+ $(wildcard include/config/bcache.h) \
+ $(wildcard include/config/have/unstable/sched/clock.h) \
+ $(wildcard include/config/no/hz/full.h) \
+ $(wildcard include/config/stack/growsup.h) \
+ $(wildcard include/config/mm/owner.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/sched.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/mm_types.h \
+ $(wildcard include/config/split/ptlock/cpus.h) \
+ $(wildcard include/config/have/cmpxchg/double.h) \
+ $(wildcard include/config/have/aligned/struct/page.h) \
+ $(wildcard include/config/want/page/debug/flags.h) \
+ $(wildcard include/config/aio.h) \
+ $(wildcard include/config/mmu/notifier.h) \
+ $(wildcard include/config/transparent/hugepage.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/auxvec.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/auxvec.h \
+ arch/arm/include/generated/asm/auxvec.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/auxvec.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/page-debug-flags.h \
+ $(wildcard include/config/page/poisoning.h) \
+ $(wildcard include/config/page/guard.h) \
+ $(wildcard include/config/page/debug/something/else.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/uprobes.h \
+ $(wildcard include/config/arch/supports/uprobes.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/mmu.h \
+ $(wildcard include/config/cpu/has/asid.h) \
+ arch/arm/include/generated/asm/cputime.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/cputime.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/cputime_jiffies.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/sem.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/sem.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/ipc.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/ipc.h \
+ arch/arm/include/generated/asm/ipcbuf.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/ipcbuf.h \
+ arch/arm/include/generated/asm/sembuf.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/sembuf.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/signal.h \
+ $(wildcard include/config/old/sigaction.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/signal.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/signal.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/signal.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/signal-defs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/sigcontext.h \
+ arch/arm/include/generated/asm/siginfo.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/siginfo.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/siginfo.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/proportions.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/seccomp.h \
+ $(wildcard include/config/seccomp.h) \
+ $(wildcard include/config/seccomp/filter.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/seccomp.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rtmutex.h \
+ $(wildcard include/config/debug/rt/mutexes.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/plist.h \
+ $(wildcard include/config/debug/pi/list.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/resource.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/resource.h \
+ arch/arm/include/generated/asm/resource.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/resource.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/resource.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/task_io_accounting.h \
+ $(wildcard include/config/task/io/accounting.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/latencytop.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/cred.h \
+ $(wildcard include/config/debug/credentials.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/key.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/selinux.h \
+ $(wildcard include/config/security/selinux.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/llist.h \
+ $(wildcard include/config/arch/have/nmi/safe/cmpxchg.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pm_runtime.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/tty.h \
+ $(wildcard include/config/tty.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/major.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/termios.h \
+ arch/arm/include/generated/asm/termios.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/termios.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/uaccess.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/unified.h \
+ $(wildcard include/config/arm/asm/unified.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/termios.h \
+ arch/arm/include/generated/asm/termbits.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/termbits.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/ioctls.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/ioctls.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/tty_driver.h \
+ $(wildcard include/config/console/poll.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/cdev.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/tty_ldisc.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/tty_flags.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/tty.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/inc/bt_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/inc/data_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/inc/gki_int.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/inc/gki.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/inc/target.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/inc/btusbext.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/inc/hcidefs.h \
+
+/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src/btusb.o: $(deps_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src/btusb.o)
+
+$(deps_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src/btusb.o):
diff --git a/bcm569/src/.btusb_dev.o.cmd b/bcm569/src/.btusb_dev.o.cmd
new file mode 100644
index 0000000..cb7bdc9
--- a/dev/null
+++ b/bcm569/src/.btusb_dev.o.cmd
@@ -0,0 +1,693 @@
+cmd_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src/btusb_dev.o := arm-linux-gnueabihf-gcc -Wp,-MD,/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src/.btusb_dev.o.d -nostdinc -isystem /opt/gcc-linaro-arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.7.3/include -I/mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include -Iarch/arm/include/generated -I/mnt/nfsroot/weiguang.ruan/m8b/common/include -Iinclude -I/mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi -Iarch/arm/include/generated/uapi -I/mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi -Iinclude/generated/uapi -include /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kconfig.h -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569 -D__KERNEL__ -mlittle-endian -I/mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/mach-mesong9tv/include -I/mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/plat-meson/include -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -Werror -Werror=enum-compare -Werror=comment -Werror=implicit-int -Werror=missing-braces -Werror=unused-value -Werror=maybe-uninitialized -Werror=unused-variable -Werror=format -Werror=unused-function -Werror=switch -Werror=strict-prototypes -Werror=declaration-after-statement -Werror=uninitialized -Werror=unused-label -Werror=undef -Werror=unused-result -Werror=return-type -Werror=parentheses -Werror=int-to-pointer-cast -Wno-error=cpp -O2 -fno-dwarf2-cfi-asm -mabi=aapcs-linux -mno-thumb-interwork -funwind-tables -marm -D__LINUX_ARM_ARCH__=7 -march=armv7-a -msoft-float -Uarm -fno-reorder-blocks -fno-ipa-cp-clone -fno-partial-inlining -Wframe-larger-than=1024 -fno-stack-protector -Wno-unused-but-set-variable -fomit-frame-pointer -g -fno-inline-functions-called-once -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -DCC_HAVE_ASM_GOTO -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569 -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/inc -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src/gki -DEXPORT_SYMTAB -DEXPORT_SYMTAB -DMODULE -D"KBUILD_STR(s)=\#s" -D"KBUILD_BASENAME=KBUILD_STR(btusb_dev)" -D"KBUILD_MODNAME=KBUILD_STR(btusb_comp)" -c -o /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src/btusb_dev.o /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src/btusb_dev.c
+
+source_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src/btusb_dev.o := /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src/btusb_dev.c
+
+deps_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src/btusb_dev.o := \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/module.h \
+ $(wildcard include/config/sysfs.h) \
+ $(wildcard include/config/modules.h) \
+ $(wildcard include/config/unused/symbols.h) \
+ $(wildcard include/config/module/sig.h) \
+ $(wildcard include/config/generic/bug.h) \
+ $(wildcard include/config/kallsyms.h) \
+ $(wildcard include/config/smp.h) \
+ $(wildcard include/config/tracepoints.h) \
+ $(wildcard include/config/tracing.h) \
+ $(wildcard include/config/event/tracing.h) \
+ $(wildcard include/config/ftrace/mcount/record.h) \
+ $(wildcard include/config/module/unload.h) \
+ $(wildcard include/config/constructors.h) \
+ $(wildcard include/config/debug/set/module/ronx.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/list.h \
+ $(wildcard include/config/debug/list.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/types.h \
+ $(wildcard include/config/uid16.h) \
+ $(wildcard include/config/lbdaf.h) \
+ $(wildcard include/config/arch/dma/addr/t/64bit.h) \
+ $(wildcard include/config/phys/addr/t/64bit.h) \
+ $(wildcard include/config/64bit.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/types.h \
+ arch/arm/include/generated/asm/types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/int-ll64.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/int-ll64.h \
+ arch/arm/include/generated/asm/bitsperlong.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitsperlong.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/bitsperlong.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/posix_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/stddef.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/stddef.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/compiler.h \
+ $(wildcard include/config/sparse/rcu/pointer.h) \
+ $(wildcard include/config/trace/branch/profiling.h) \
+ $(wildcard include/config/profile/all/branches.h) \
+ $(wildcard include/config/enable/must/check.h) \
+ $(wildcard include/config/enable/warn/deprecated.h) \
+ $(wildcard include/config/kprobes.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/compiler-gcc.h \
+ $(wildcard include/config/arch/supports/optimized/inlining.h) \
+ $(wildcard include/config/optimize/inlining.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/compiler-gcc4.h \
+ $(wildcard include/config/arch/use/builtin/bswap.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/posix_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/posix_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/poison.h \
+ $(wildcard include/config/illegal/pointer/value.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/const.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/stat.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/stat.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/stat.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/time.h \
+ $(wildcard include/config/arch/uses/gettimeoffset.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/cache.h \
+ $(wildcard include/config/arch/has/cache/line/size.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kernel.h \
+ $(wildcard include/config/preempt/voluntary.h) \
+ $(wildcard include/config/debug/atomic/sleep.h) \
+ $(wildcard include/config/prove/locking.h) \
+ $(wildcard include/config/ring/buffer.h) \
+ /opt/gcc-linaro-arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.7.3/include/stdarg.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/linkage.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/stringify.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/export.h \
+ $(wildcard include/config/have/underscore/symbol/prefix.h) \
+ $(wildcard include/config/modversions.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/linkage.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bitops.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/bitops.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/irqflags.h \
+ $(wildcard include/config/trace/irqflags.h) \
+ $(wildcard include/config/irqsoff/tracer.h) \
+ $(wildcard include/config/preempt/tracer.h) \
+ $(wildcard include/config/trace/irqflags/support.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/typecheck.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/irqflags.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/ptrace.h \
+ $(wildcard include/config/arm/thumb.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/ptrace.h \
+ $(wildcard include/config/cpu/endian/be8.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/hwcap.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/hwcap.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/non-atomic.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/fls64.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/sched.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/hweight.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/arch_hweight.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/const_hweight.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/lock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/le.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/byteorder.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/byteorder/little_endian.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/byteorder/little_endian.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/swab.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/swab.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/swab.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/swab.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/byteorder/generic.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/ext2-atomic-setbit.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/log2.h \
+ $(wildcard include/config/arch/has/ilog2/u32.h) \
+ $(wildcard include/config/arch/has/ilog2/u64.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/printk.h \
+ $(wildcard include/config/early/printk.h) \
+ $(wildcard include/config/printk.h) \
+ $(wildcard include/config/dynamic/debug.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/init.h \
+ $(wildcard include/config/broken/rodata.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kern_levels.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/dynamic_debug.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/string.h \
+ $(wildcard include/config/binary/printf.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/string.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/string.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/errno.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/errno.h \
+ arch/arm/include/generated/asm/errno.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/errno.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/errno-base.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/kernel.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/sysinfo.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/div64.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/compiler.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/bug.h \
+ $(wildcard include/config/bug.h) \
+ $(wildcard include/config/thumb2/kernel.h) \
+ $(wildcard include/config/debug/bugverbose.h) \
+ $(wildcard include/config/arm/lpae.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bug.h \
+ $(wildcard include/config/generic/bug/relative/pointers.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/cache.h \
+ $(wildcard include/config/arm/l1/cache/shift.h) \
+ $(wildcard include/config/aeabi.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/seqlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/spinlock.h \
+ $(wildcard include/config/debug/spinlock.h) \
+ $(wildcard include/config/generic/lockbreak.h) \
+ $(wildcard include/config/preempt.h) \
+ $(wildcard include/config/debug/lock/alloc.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/preempt.h \
+ $(wildcard include/config/debug/preempt.h) \
+ $(wildcard include/config/context/tracking.h) \
+ $(wildcard include/config/preempt/count.h) \
+ $(wildcard include/config/preempt/notifiers.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/thread_info.h \
+ $(wildcard include/config/compat.h) \
+ $(wildcard include/config/debug/stack/usage.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bug.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/thread_info.h \
+ $(wildcard include/config/crunch.h) \
+ $(wildcard include/config/arm/thumbee.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/fpstate.h \
+ $(wildcard include/config/vfpv3.h) \
+ $(wildcard include/config/iwmmxt.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/domain.h \
+ $(wildcard include/config/io/36.h) \
+ $(wildcard include/config/cpu/use/domains.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/barrier.h \
+ $(wildcard include/config/cpu/32v6k.h) \
+ $(wildcard include/config/cpu/xsc3.h) \
+ $(wildcard include/config/cpu/fa526.h) \
+ $(wildcard include/config/arch/has/barriers.h) \
+ $(wildcard include/config/arm/dma/mem/bufferable.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/outercache.h \
+ $(wildcard include/config/outer/cache/sync.h) \
+ $(wildcard include/config/outer/cache.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bottom_half.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/spinlock_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/spinlock_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/lockdep.h \
+ $(wildcard include/config/lockdep.h) \
+ $(wildcard include/config/lock/stat.h) \
+ $(wildcard include/config/prove/rcu.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwlock_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/spinlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/processor.h \
+ $(wildcard include/config/have/hw/breakpoint.h) \
+ $(wildcard include/config/mmu.h) \
+ $(wildcard include/config/arm/errata/754327.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/hw_breakpoint.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/spinlock_api_smp.h \
+ $(wildcard include/config/inline/spin/lock.h) \
+ $(wildcard include/config/inline/spin/lock/bh.h) \
+ $(wildcard include/config/inline/spin/lock/irq.h) \
+ $(wildcard include/config/inline/spin/lock/irqsave.h) \
+ $(wildcard include/config/inline/spin/trylock.h) \
+ $(wildcard include/config/inline/spin/trylock/bh.h) \
+ $(wildcard include/config/uninline/spin/unlock.h) \
+ $(wildcard include/config/inline/spin/unlock/bh.h) \
+ $(wildcard include/config/inline/spin/unlock/irq.h) \
+ $(wildcard include/config/inline/spin/unlock/irqrestore.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwlock_api_smp.h \
+ $(wildcard include/config/inline/read/lock.h) \
+ $(wildcard include/config/inline/write/lock.h) \
+ $(wildcard include/config/inline/read/lock/bh.h) \
+ $(wildcard include/config/inline/write/lock/bh.h) \
+ $(wildcard include/config/inline/read/lock/irq.h) \
+ $(wildcard include/config/inline/write/lock/irq.h) \
+ $(wildcard include/config/inline/read/lock/irqsave.h) \
+ $(wildcard include/config/inline/write/lock/irqsave.h) \
+ $(wildcard include/config/inline/read/trylock.h) \
+ $(wildcard include/config/inline/write/trylock.h) \
+ $(wildcard include/config/inline/read/unlock.h) \
+ $(wildcard include/config/inline/write/unlock.h) \
+ $(wildcard include/config/inline/read/unlock/bh.h) \
+ $(wildcard include/config/inline/write/unlock/bh.h) \
+ $(wildcard include/config/inline/read/unlock/irq.h) \
+ $(wildcard include/config/inline/write/unlock/irq.h) \
+ $(wildcard include/config/inline/read/unlock/irqrestore.h) \
+ $(wildcard include/config/inline/write/unlock/irqrestore.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/atomic.h \
+ $(wildcard include/config/arch/has/atomic/or.h) \
+ $(wildcard include/config/generic/atomic64.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/atomic.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/cmpxchg.h \
+ $(wildcard include/config/cpu/sa1100.h) \
+ $(wildcard include/config/cpu/sa110.h) \
+ $(wildcard include/config/cpu/v6.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/cmpxchg-local.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/atomic-long.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/math64.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/time.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/uidgid.h \
+ $(wildcard include/config/uidgid/strict/type/checks.h) \
+ $(wildcard include/config/user/ns.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/highuid.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kmod.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/gfp.h \
+ $(wildcard include/config/numa.h) \
+ $(wildcard include/config/highmem.h) \
+ $(wildcard include/config/zone/dma.h) \
+ $(wildcard include/config/zone/dma32.h) \
+ $(wildcard include/config/pm/sleep.h) \
+ $(wildcard include/config/cma.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/mmzone.h \
+ $(wildcard include/config/force/max/zoneorder.h) \
+ $(wildcard include/config/memory/isolation.h) \
+ $(wildcard include/config/memcg.h) \
+ $(wildcard include/config/compaction.h) \
+ $(wildcard include/config/memory/hotplug.h) \
+ $(wildcard include/config/sparsemem.h) \
+ $(wildcard include/config/have/memblock/node/map.h) \
+ $(wildcard include/config/discontigmem.h) \
+ $(wildcard include/config/flat/node/mem/map.h) \
+ $(wildcard include/config/no/bootmem.h) \
+ $(wildcard include/config/numa/balancing.h) \
+ $(wildcard include/config/have/memory/present.h) \
+ $(wildcard include/config/have/memoryless/nodes.h) \
+ $(wildcard include/config/need/node/memmap/size.h) \
+ $(wildcard include/config/need/multiple/nodes.h) \
+ $(wildcard include/config/have/arch/early/pfn/to/nid.h) \
+ $(wildcard include/config/flatmem.h) \
+ $(wildcard include/config/sparsemem/extreme.h) \
+ $(wildcard include/config/have/arch/pfn/valid.h) \
+ $(wildcard include/config/nodes/span/other/nodes.h) \
+ $(wildcard include/config/holes/in/zone.h) \
+ $(wildcard include/config/arch/has/holes/memorymodel.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/wait.h \
+ arch/arm/include/generated/asm/current.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/current.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/wait.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/threads.h \
+ $(wildcard include/config/nr/cpus.h) \
+ $(wildcard include/config/base/small.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/numa.h \
+ $(wildcard include/config/nodes/shift.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/nodemask.h \
+ $(wildcard include/config/movable/node.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bitmap.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pageblock-flags.h \
+ $(wildcard include/config/hugetlb/page.h) \
+ $(wildcard include/config/hugetlb/page/size/variable.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/page-flags-layout.h \
+ $(wildcard include/config/sparsemem/vmemmap.h) \
+ include/generated/bounds.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/page.h \
+ $(wildcard include/config/cpu/copy/v4wt.h) \
+ $(wildcard include/config/cpu/copy/v4wb.h) \
+ $(wildcard include/config/cpu/copy/feroceon.h) \
+ $(wildcard include/config/cpu/copy/fa.h) \
+ $(wildcard include/config/cpu/xscale.h) \
+ $(wildcard include/config/cpu/copy/v6.h) \
+ $(wildcard include/config/kuser/helpers.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/glue.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/pgtable-2level-types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/memory.h \
+ $(wildcard include/config/need/mach/memory/h.h) \
+ $(wildcard include/config/page/offset.h) \
+ $(wildcard include/config/dram/size.h) \
+ $(wildcard include/config/dram/base.h) \
+ $(wildcard include/config/have/tcm.h) \
+ $(wildcard include/config/arm/patch/phys/virt.h) \
+ $(wildcard include/config/phys/offset.h) \
+ $(wildcard include/config/virt/to/bus.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/sizes.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/mach-mesong9tv/include/mach/memory.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/memory_model.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/getorder.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/sysctl.h \
+ $(wildcard include/config/sysctl.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rcupdate.h \
+ $(wildcard include/config/rcu/torture/test.h) \
+ $(wildcard include/config/tree/rcu.h) \
+ $(wildcard include/config/tree/preempt/rcu.h) \
+ $(wildcard include/config/rcu/trace.h) \
+ $(wildcard include/config/preempt/rcu.h) \
+ $(wildcard include/config/rcu/user/qs.h) \
+ $(wildcard include/config/tiny/rcu.h) \
+ $(wildcard include/config/tiny/preempt/rcu.h) \
+ $(wildcard include/config/debug/objects/rcu/head.h) \
+ $(wildcard include/config/hotplug/cpu.h) \
+ $(wildcard include/config/rcu/nocb/cpu.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/cpumask.h \
+ $(wildcard include/config/cpumask/offstack.h) \
+ $(wildcard include/config/debug/per/cpu/maps.h) \
+ $(wildcard include/config/disable/obsolete/cpumask/functions.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/completion.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/debugobjects.h \
+ $(wildcard include/config/debug/objects.h) \
+ $(wildcard include/config/debug/objects/free.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rcutree.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rbtree.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/sysctl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/memory_hotplug.h \
+ $(wildcard include/config/memory/hotremove.h) \
+ $(wildcard include/config/have/arch/nodedata/extension.h) \
+ $(wildcard include/config/have/bootmem/info/node.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/notifier.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/mutex.h \
+ $(wildcard include/config/debug/mutexes.h) \
+ $(wildcard include/config/mutex/spin/on/owner.h) \
+ $(wildcard include/config/have/arch/mutex/cpu/relax.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwsem.h \
+ $(wildcard include/config/rwsem/generic/spinlock.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwsem-spinlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/srcu.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/workqueue.h \
+ $(wildcard include/config/debug/objects/work.h) \
+ $(wildcard include/config/freezer.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/timer.h \
+ $(wildcard include/config/timer/stats.h) \
+ $(wildcard include/config/debug/objects/timers.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/ktime.h \
+ $(wildcard include/config/ktime/scalar.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/jiffies.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/timex.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/timex.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/param.h \
+ arch/arm/include/generated/asm/param.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/param.h \
+ $(wildcard include/config/hz.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/param.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/timex.h \
+ $(wildcard include/config/arch/multiplatform.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/mach-mesong9tv/include/mach/timex.h \
+ $(wildcard include/config/meson/clock/tick/rate.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/topology.h \
+ $(wildcard include/config/sched/smt.h) \
+ $(wildcard include/config/sched/mc.h) \
+ $(wildcard include/config/sched/book.h) \
+ $(wildcard include/config/use/percpu/numa/node/id.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/smp.h \
+ $(wildcard include/config/use/generic/smp/helpers.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/smp.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/percpu.h \
+ $(wildcard include/config/need/per/cpu/embed/first/chunk.h) \
+ $(wildcard include/config/need/per/cpu/page/first/chunk.h) \
+ $(wildcard include/config/have/setup/per/cpu/area.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pfn.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/percpu.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/percpu.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/percpu-defs.h \
+ $(wildcard include/config/debug/force/weak/per/cpu.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/topology.h \
+ $(wildcard include/config/arm/cpu/topology.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/topology.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/mmdebug.h \
+ $(wildcard include/config/debug/vm.h) \
+ $(wildcard include/config/debug/virtual.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/elf.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/elf.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/user.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/elf.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/elf-em.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kobject.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/sysfs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kobject_ns.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kref.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/moduleparam.h \
+ $(wildcard include/config/alpha.h) \
+ $(wildcard include/config/ia64.h) \
+ $(wildcard include/config/ppc64.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/tracepoint.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/static_key.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/jump_label.h \
+ $(wildcard include/config/jump/label.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/module.h \
+ $(wildcard include/config/arm/unwind.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/module.h \
+ $(wildcard include/config/have/mod/arch/specific.h) \
+ $(wildcard include/config/modules/use/elf/rel.h) \
+ $(wildcard include/config/modules/use/elf/rela.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/poll.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/fs.h \
+ $(wildcard include/config/fs/posix/acl.h) \
+ $(wildcard include/config/security.h) \
+ $(wildcard include/config/quota.h) \
+ $(wildcard include/config/fsnotify.h) \
+ $(wildcard include/config/ima.h) \
+ $(wildcard include/config/epoll.h) \
+ $(wildcard include/config/debug/writecount.h) \
+ $(wildcard include/config/file/locking.h) \
+ $(wildcard include/config/auditsyscall.h) \
+ $(wildcard include/config/block.h) \
+ $(wildcard include/config/fs/xip.h) \
+ $(wildcard include/config/migration.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kdev_t.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/kdev_t.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/dcache.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rculist.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rculist_bl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/list_bl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bit_spinlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/path.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/radix-tree.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pid.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/capability.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/capability.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/semaphore.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/fiemap.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/shrinker.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/migrate_mode.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/percpu-rwsem.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/blk_types.h \
+ $(wildcard include/config/blk/cgroup.h) \
+ $(wildcard include/config/blk/dev/integrity.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/fs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/limits.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/ioctl.h \
+ arch/arm/include/generated/asm/ioctl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/ioctl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/ioctl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/quota.h \
+ $(wildcard include/config/quota/netlink/interface.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/percpu_counter.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/dqblk_xfs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/dqblk_v1.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/dqblk_v2.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/dqblk_qtree.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/projid.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/quota.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/nfs_fs_i.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/fcntl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/fcntl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/fcntl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/fcntl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/err.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/uaccess.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/unified.h \
+ $(wildcard include/config/arm/asm/unified.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/poll.h \
+ arch/arm/include/generated/asm/poll.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/poll.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/slab.h \
+ $(wildcard include/config/slab/debug.h) \
+ $(wildcard include/config/kmemcheck.h) \
+ $(wildcard include/config/failslab.h) \
+ $(wildcard include/config/slob.h) \
+ $(wildcard include/config/slab.h) \
+ $(wildcard include/config/slub.h) \
+ $(wildcard include/config/debug/slab.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/slub_def.h \
+ $(wildcard include/config/slub/stats.h) \
+ $(wildcard include/config/memcg/kmem.h) \
+ $(wildcard include/config/slub/debug.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kmemleak.h \
+ $(wildcard include/config/debug/kmemleak.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/serial.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/serial.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/tty_flags.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/proc_fs.h \
+ $(wildcard include/config/proc/fs.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/seq_file.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/inc/btusb.h \
+ include/generated/uapi/linux/version.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/usb.h \
+ $(wildcard include/config/usb/mon.h) \
+ $(wildcard include/config/pm.h) \
+ $(wildcard include/config/acpi.h) \
+ $(wildcard include/config/pm/runtime.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/mod_devicetable.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/uuid.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/uuid.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/usb/ch9.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/usb/ch9.h \
+ $(wildcard include/config/size.h) \
+ $(wildcard include/config/att/one.h) \
+ $(wildcard include/config/att/selfpower.h) \
+ $(wildcard include/config/att/wakeup.h) \
+ $(wildcard include/config/att/battery.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/delay.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/delay.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/interrupt.h \
+ $(wildcard include/config/generic/hardirqs.h) \
+ $(wildcard include/config/irq/forced/threading.h) \
+ $(wildcard include/config/generic/irq/probe.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/irqreturn.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/irqnr.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/irqnr.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/hardirq.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/ftrace_irq.h \
+ $(wildcard include/config/ftrace/nmi/enter.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/vtime.h \
+ $(wildcard include/config/virt/cpu/accounting.h) \
+ $(wildcard include/config/virt/cpu/accounting/native.h) \
+ $(wildcard include/config/virt/cpu/accounting/gen.h) \
+ $(wildcard include/config/irq/time/accounting.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/hardirq.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/irq.h \
+ $(wildcard include/config/sparse/irq.h) \
+ $(wildcard include/config/multi/irq/handler.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/mach-mesong9tv/include/mach/irqs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/irq_cpustat.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/hrtimer.h \
+ $(wildcard include/config/high/res/timers.h) \
+ $(wildcard include/config/timerfd.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/timerqueue.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/device.h \
+ $(wildcard include/config/debug/devres.h) \
+ $(wildcard include/config/pinctrl.h) \
+ $(wildcard include/config/devtmpfs.h) \
+ $(wildcard include/config/sysfs/deprecated.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/ioport.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/klist.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pinctrl/devinfo.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pinctrl/consumer.h \
+ $(wildcard include/config/pinconf.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pinctrl/pinctrl-state.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pinctrl/machine.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pm.h \
+ $(wildcard include/config/vt/console/sleep.h) \
+ $(wildcard include/config/pm/clk.h) \
+ $(wildcard include/config/pm/generic/domains.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/ratelimit.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/device.h \
+ $(wildcard include/config/dmabounce.h) \
+ $(wildcard include/config/iommu/api.h) \
+ $(wildcard include/config/arm/dma/use/iommu.h) \
+ $(wildcard include/config/arch/omap.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pm_wakeup.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/sched.h \
+ $(wildcard include/config/sched/debug.h) \
+ $(wildcard include/config/no/hz/common.h) \
+ $(wildcard include/config/lockup/detector.h) \
+ $(wildcard include/config/core/dump/default/elf/headers.h) \
+ $(wildcard include/config/sched/autogroup.h) \
+ $(wildcard include/config/bsd/process/acct.h) \
+ $(wildcard include/config/taskstats.h) \
+ $(wildcard include/config/audit.h) \
+ $(wildcard include/config/cgroups.h) \
+ $(wildcard include/config/inotify/user.h) \
+ $(wildcard include/config/fanotify.h) \
+ $(wildcard include/config/posix/mqueue.h) \
+ $(wildcard include/config/keys.h) \
+ $(wildcard include/config/perf/events.h) \
+ $(wildcard include/config/schedstats.h) \
+ $(wildcard include/config/task/delay/acct.h) \
+ $(wildcard include/config/fair/group/sched.h) \
+ $(wildcard include/config/rt/group/sched.h) \
+ $(wildcard include/config/cgroup/sched.h) \
+ $(wildcard include/config/blk/dev/io/trace.h) \
+ $(wildcard include/config/rcu/boost.h) \
+ $(wildcard include/config/compat/brk.h) \
+ $(wildcard include/config/cc/stackprotector.h) \
+ $(wildcard include/config/sysvipc.h) \
+ $(wildcard include/config/detect/hung/task.h) \
+ $(wildcard include/config/rt/mutexes.h) \
+ $(wildcard include/config/task/xacct.h) \
+ $(wildcard include/config/cpusets.h) \
+ $(wildcard include/config/futex.h) \
+ $(wildcard include/config/fault/injection.h) \
+ $(wildcard include/config/latencytop.h) \
+ $(wildcard include/config/function/graph/tracer.h) \
+ $(wildcard include/config/uprobes.h) \
+ $(wildcard include/config/bcache.h) \
+ $(wildcard include/config/have/unstable/sched/clock.h) \
+ $(wildcard include/config/no/hz/full.h) \
+ $(wildcard include/config/stack/growsup.h) \
+ $(wildcard include/config/mm/owner.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/sched.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/mm_types.h \
+ $(wildcard include/config/split/ptlock/cpus.h) \
+ $(wildcard include/config/have/cmpxchg/double.h) \
+ $(wildcard include/config/have/aligned/struct/page.h) \
+ $(wildcard include/config/want/page/debug/flags.h) \
+ $(wildcard include/config/aio.h) \
+ $(wildcard include/config/mmu/notifier.h) \
+ $(wildcard include/config/transparent/hugepage.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/auxvec.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/auxvec.h \
+ arch/arm/include/generated/asm/auxvec.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/auxvec.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/page-debug-flags.h \
+ $(wildcard include/config/page/poisoning.h) \
+ $(wildcard include/config/page/guard.h) \
+ $(wildcard include/config/page/debug/something/else.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/uprobes.h \
+ $(wildcard include/config/arch/supports/uprobes.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/mmu.h \
+ $(wildcard include/config/cpu/has/asid.h) \
+ arch/arm/include/generated/asm/cputime.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/cputime.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/cputime_jiffies.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/sem.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/sem.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/ipc.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/ipc.h \
+ arch/arm/include/generated/asm/ipcbuf.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/ipcbuf.h \
+ arch/arm/include/generated/asm/sembuf.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/sembuf.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/signal.h \
+ $(wildcard include/config/old/sigaction.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/signal.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/signal.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/signal.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/signal-defs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/sigcontext.h \
+ arch/arm/include/generated/asm/siginfo.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/siginfo.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/siginfo.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/proportions.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/seccomp.h \
+ $(wildcard include/config/seccomp.h) \
+ $(wildcard include/config/seccomp/filter.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/seccomp.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rtmutex.h \
+ $(wildcard include/config/debug/rt/mutexes.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/plist.h \
+ $(wildcard include/config/debug/pi/list.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/resource.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/resource.h \
+ arch/arm/include/generated/asm/resource.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/resource.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/resource.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/task_io_accounting.h \
+ $(wildcard include/config/task/io/accounting.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/latencytop.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/cred.h \
+ $(wildcard include/config/debug/credentials.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/key.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/selinux.h \
+ $(wildcard include/config/security/selinux.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/llist.h \
+ $(wildcard include/config/arch/have/nmi/safe/cmpxchg.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pm_runtime.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/tty.h \
+ $(wildcard include/config/tty.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/major.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/termios.h \
+ arch/arm/include/generated/asm/termios.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/termios.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/termios.h \
+ arch/arm/include/generated/asm/termbits.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/termbits.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/ioctls.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/ioctls.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/tty_driver.h \
+ $(wildcard include/config/console/poll.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/cdev.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/tty_ldisc.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/tty.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/inc/bt_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/inc/data_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/inc/gki_int.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/inc/gki.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/inc/target.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/inc/btusbext.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/inc/hcidefs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/inc/gki_int.h \
+
+/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src/btusb_dev.o: $(deps_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src/btusb_dev.o)
+
+$(deps_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src/btusb_dev.o):
diff --git a/bcm569/src/.btusb_isoc.o.cmd b/bcm569/src/.btusb_isoc.o.cmd
new file mode 100644
index 0000000..4fd52f1
--- a/dev/null
+++ b/bcm569/src/.btusb_isoc.o.cmd
@@ -0,0 +1,657 @@
+cmd_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src/btusb_isoc.o := arm-linux-gnueabihf-gcc -Wp,-MD,/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src/.btusb_isoc.o.d -nostdinc -isystem /opt/gcc-linaro-arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.7.3/include -I/mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include -Iarch/arm/include/generated -I/mnt/nfsroot/weiguang.ruan/m8b/common/include -Iinclude -I/mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi -Iarch/arm/include/generated/uapi -I/mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi -Iinclude/generated/uapi -include /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kconfig.h -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569 -D__KERNEL__ -mlittle-endian -I/mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/mach-mesong9tv/include -I/mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/plat-meson/include -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -Werror -Werror=enum-compare -Werror=comment -Werror=implicit-int -Werror=missing-braces -Werror=unused-value -Werror=maybe-uninitialized -Werror=unused-variable -Werror=format -Werror=unused-function -Werror=switch -Werror=strict-prototypes -Werror=declaration-after-statement -Werror=uninitialized -Werror=unused-label -Werror=undef -Werror=unused-result -Werror=return-type -Werror=parentheses -Werror=int-to-pointer-cast -Wno-error=cpp -O2 -fno-dwarf2-cfi-asm -mabi=aapcs-linux -mno-thumb-interwork -funwind-tables -marm -D__LINUX_ARM_ARCH__=7 -march=armv7-a -msoft-float -Uarm -fno-reorder-blocks -fno-ipa-cp-clone -fno-partial-inlining -Wframe-larger-than=1024 -fno-stack-protector -Wno-unused-but-set-variable -fomit-frame-pointer -g -fno-inline-functions-called-once -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -DCC_HAVE_ASM_GOTO -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569 -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/inc -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src/gki -DEXPORT_SYMTAB -DEXPORT_SYMTAB -DMODULE -D"KBUILD_STR(s)=\#s" -D"KBUILD_BASENAME=KBUILD_STR(btusb_isoc)" -D"KBUILD_MODNAME=KBUILD_STR(btusb_comp)" -c -o /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src/btusb_isoc.o /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src/btusb_isoc.c
+
+source_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src/btusb_isoc.o := /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src/btusb_isoc.c
+
+deps_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src/btusb_isoc.o := \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/slab.h \
+ $(wildcard include/config/slab/debug.h) \
+ $(wildcard include/config/debug/objects.h) \
+ $(wildcard include/config/kmemcheck.h) \
+ $(wildcard include/config/failslab.h) \
+ $(wildcard include/config/slob.h) \
+ $(wildcard include/config/slab.h) \
+ $(wildcard include/config/zone/dma.h) \
+ $(wildcard include/config/slub.h) \
+ $(wildcard include/config/numa.h) \
+ $(wildcard include/config/debug/slab.h) \
+ $(wildcard include/config/tracing.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/gfp.h \
+ $(wildcard include/config/highmem.h) \
+ $(wildcard include/config/zone/dma32.h) \
+ $(wildcard include/config/pm/sleep.h) \
+ $(wildcard include/config/cma.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/mmzone.h \
+ $(wildcard include/config/force/max/zoneorder.h) \
+ $(wildcard include/config/memory/isolation.h) \
+ $(wildcard include/config/smp.h) \
+ $(wildcard include/config/memcg.h) \
+ $(wildcard include/config/compaction.h) \
+ $(wildcard include/config/memory/hotplug.h) \
+ $(wildcard include/config/sparsemem.h) \
+ $(wildcard include/config/have/memblock/node/map.h) \
+ $(wildcard include/config/discontigmem.h) \
+ $(wildcard include/config/flat/node/mem/map.h) \
+ $(wildcard include/config/no/bootmem.h) \
+ $(wildcard include/config/numa/balancing.h) \
+ $(wildcard include/config/have/memory/present.h) \
+ $(wildcard include/config/have/memoryless/nodes.h) \
+ $(wildcard include/config/need/node/memmap/size.h) \
+ $(wildcard include/config/need/multiple/nodes.h) \
+ $(wildcard include/config/have/arch/early/pfn/to/nid.h) \
+ $(wildcard include/config/flatmem.h) \
+ $(wildcard include/config/sparsemem/extreme.h) \
+ $(wildcard include/config/have/arch/pfn/valid.h) \
+ $(wildcard include/config/nodes/span/other/nodes.h) \
+ $(wildcard include/config/holes/in/zone.h) \
+ $(wildcard include/config/arch/has/holes/memorymodel.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/spinlock.h \
+ $(wildcard include/config/debug/spinlock.h) \
+ $(wildcard include/config/generic/lockbreak.h) \
+ $(wildcard include/config/preempt.h) \
+ $(wildcard include/config/debug/lock/alloc.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/typecheck.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/preempt.h \
+ $(wildcard include/config/debug/preempt.h) \
+ $(wildcard include/config/preempt/tracer.h) \
+ $(wildcard include/config/context/tracking.h) \
+ $(wildcard include/config/preempt/count.h) \
+ $(wildcard include/config/preempt/notifiers.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/thread_info.h \
+ $(wildcard include/config/compat.h) \
+ $(wildcard include/config/debug/stack/usage.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/types.h \
+ $(wildcard include/config/uid16.h) \
+ $(wildcard include/config/lbdaf.h) \
+ $(wildcard include/config/arch/dma/addr/t/64bit.h) \
+ $(wildcard include/config/phys/addr/t/64bit.h) \
+ $(wildcard include/config/64bit.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/types.h \
+ arch/arm/include/generated/asm/types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/int-ll64.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/int-ll64.h \
+ arch/arm/include/generated/asm/bitsperlong.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitsperlong.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/bitsperlong.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/posix_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/stddef.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/stddef.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/compiler.h \
+ $(wildcard include/config/sparse/rcu/pointer.h) \
+ $(wildcard include/config/trace/branch/profiling.h) \
+ $(wildcard include/config/profile/all/branches.h) \
+ $(wildcard include/config/enable/must/check.h) \
+ $(wildcard include/config/enable/warn/deprecated.h) \
+ $(wildcard include/config/kprobes.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/compiler-gcc.h \
+ $(wildcard include/config/arch/supports/optimized/inlining.h) \
+ $(wildcard include/config/optimize/inlining.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/compiler-gcc4.h \
+ $(wildcard include/config/arch/use/builtin/bswap.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/posix_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/posix_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bug.h \
+ $(wildcard include/config/generic/bug.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/bug.h \
+ $(wildcard include/config/bug.h) \
+ $(wildcard include/config/thumb2/kernel.h) \
+ $(wildcard include/config/debug/bugverbose.h) \
+ $(wildcard include/config/arm/lpae.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/linkage.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/stringify.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/export.h \
+ $(wildcard include/config/have/underscore/symbol/prefix.h) \
+ $(wildcard include/config/modules.h) \
+ $(wildcard include/config/modversions.h) \
+ $(wildcard include/config/unused/symbols.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/linkage.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bug.h \
+ $(wildcard include/config/generic/bug/relative/pointers.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kernel.h \
+ $(wildcard include/config/preempt/voluntary.h) \
+ $(wildcard include/config/debug/atomic/sleep.h) \
+ $(wildcard include/config/prove/locking.h) \
+ $(wildcard include/config/ring/buffer.h) \
+ $(wildcard include/config/ftrace/mcount/record.h) \
+ /opt/gcc-linaro-arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.7.3/include/stdarg.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bitops.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/bitops.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/irqflags.h \
+ $(wildcard include/config/trace/irqflags.h) \
+ $(wildcard include/config/irqsoff/tracer.h) \
+ $(wildcard include/config/trace/irqflags/support.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/irqflags.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/ptrace.h \
+ $(wildcard include/config/arm/thumb.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/ptrace.h \
+ $(wildcard include/config/cpu/endian/be8.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/hwcap.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/hwcap.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/non-atomic.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/fls64.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/sched.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/hweight.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/arch_hweight.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/const_hweight.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/lock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/le.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/byteorder.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/byteorder/little_endian.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/byteorder/little_endian.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/swab.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/swab.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/swab.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/swab.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/byteorder/generic.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/ext2-atomic-setbit.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/log2.h \
+ $(wildcard include/config/arch/has/ilog2/u32.h) \
+ $(wildcard include/config/arch/has/ilog2/u64.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/printk.h \
+ $(wildcard include/config/early/printk.h) \
+ $(wildcard include/config/printk.h) \
+ $(wildcard include/config/dynamic/debug.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/init.h \
+ $(wildcard include/config/broken/rodata.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kern_levels.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/dynamic_debug.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/string.h \
+ $(wildcard include/config/binary/printf.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/string.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/string.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/errno.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/errno.h \
+ arch/arm/include/generated/asm/errno.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/errno.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/errno-base.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/kernel.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/sysinfo.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/div64.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/compiler.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/thread_info.h \
+ $(wildcard include/config/crunch.h) \
+ $(wildcard include/config/arm/thumbee.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/fpstate.h \
+ $(wildcard include/config/vfpv3.h) \
+ $(wildcard include/config/iwmmxt.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/domain.h \
+ $(wildcard include/config/io/36.h) \
+ $(wildcard include/config/cpu/use/domains.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/barrier.h \
+ $(wildcard include/config/cpu/32v6k.h) \
+ $(wildcard include/config/cpu/xsc3.h) \
+ $(wildcard include/config/cpu/fa526.h) \
+ $(wildcard include/config/arch/has/barriers.h) \
+ $(wildcard include/config/arm/dma/mem/bufferable.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/outercache.h \
+ $(wildcard include/config/outer/cache/sync.h) \
+ $(wildcard include/config/outer/cache.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/list.h \
+ $(wildcard include/config/debug/list.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/poison.h \
+ $(wildcard include/config/illegal/pointer/value.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/const.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bottom_half.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/spinlock_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/spinlock_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/lockdep.h \
+ $(wildcard include/config/lockdep.h) \
+ $(wildcard include/config/lock/stat.h) \
+ $(wildcard include/config/prove/rcu.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwlock_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/spinlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/processor.h \
+ $(wildcard include/config/have/hw/breakpoint.h) \
+ $(wildcard include/config/mmu.h) \
+ $(wildcard include/config/arm/errata/754327.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/hw_breakpoint.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/spinlock_api_smp.h \
+ $(wildcard include/config/inline/spin/lock.h) \
+ $(wildcard include/config/inline/spin/lock/bh.h) \
+ $(wildcard include/config/inline/spin/lock/irq.h) \
+ $(wildcard include/config/inline/spin/lock/irqsave.h) \
+ $(wildcard include/config/inline/spin/trylock.h) \
+ $(wildcard include/config/inline/spin/trylock/bh.h) \
+ $(wildcard include/config/uninline/spin/unlock.h) \
+ $(wildcard include/config/inline/spin/unlock/bh.h) \
+ $(wildcard include/config/inline/spin/unlock/irq.h) \
+ $(wildcard include/config/inline/spin/unlock/irqrestore.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwlock_api_smp.h \
+ $(wildcard include/config/inline/read/lock.h) \
+ $(wildcard include/config/inline/write/lock.h) \
+ $(wildcard include/config/inline/read/lock/bh.h) \
+ $(wildcard include/config/inline/write/lock/bh.h) \
+ $(wildcard include/config/inline/read/lock/irq.h) \
+ $(wildcard include/config/inline/write/lock/irq.h) \
+ $(wildcard include/config/inline/read/lock/irqsave.h) \
+ $(wildcard include/config/inline/write/lock/irqsave.h) \
+ $(wildcard include/config/inline/read/trylock.h) \
+ $(wildcard include/config/inline/write/trylock.h) \
+ $(wildcard include/config/inline/read/unlock.h) \
+ $(wildcard include/config/inline/write/unlock.h) \
+ $(wildcard include/config/inline/read/unlock/bh.h) \
+ $(wildcard include/config/inline/write/unlock/bh.h) \
+ $(wildcard include/config/inline/read/unlock/irq.h) \
+ $(wildcard include/config/inline/write/unlock/irq.h) \
+ $(wildcard include/config/inline/read/unlock/irqrestore.h) \
+ $(wildcard include/config/inline/write/unlock/irqrestore.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/atomic.h \
+ $(wildcard include/config/arch/has/atomic/or.h) \
+ $(wildcard include/config/generic/atomic64.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/atomic.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/cmpxchg.h \
+ $(wildcard include/config/cpu/sa1100.h) \
+ $(wildcard include/config/cpu/sa110.h) \
+ $(wildcard include/config/cpu/v6.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/cmpxchg-local.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/atomic-long.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/wait.h \
+ arch/arm/include/generated/asm/current.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/current.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/wait.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/cache.h \
+ $(wildcard include/config/arch/has/cache/line/size.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/cache.h \
+ $(wildcard include/config/arm/l1/cache/shift.h) \
+ $(wildcard include/config/aeabi.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/threads.h \
+ $(wildcard include/config/nr/cpus.h) \
+ $(wildcard include/config/base/small.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/numa.h \
+ $(wildcard include/config/nodes/shift.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/seqlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/nodemask.h \
+ $(wildcard include/config/movable/node.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bitmap.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pageblock-flags.h \
+ $(wildcard include/config/hugetlb/page.h) \
+ $(wildcard include/config/hugetlb/page/size/variable.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/page-flags-layout.h \
+ $(wildcard include/config/sparsemem/vmemmap.h) \
+ include/generated/bounds.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/page.h \
+ $(wildcard include/config/cpu/copy/v4wt.h) \
+ $(wildcard include/config/cpu/copy/v4wb.h) \
+ $(wildcard include/config/cpu/copy/feroceon.h) \
+ $(wildcard include/config/cpu/copy/fa.h) \
+ $(wildcard include/config/cpu/xscale.h) \
+ $(wildcard include/config/cpu/copy/v6.h) \
+ $(wildcard include/config/kuser/helpers.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/glue.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/pgtable-2level-types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/memory.h \
+ $(wildcard include/config/need/mach/memory/h.h) \
+ $(wildcard include/config/page/offset.h) \
+ $(wildcard include/config/dram/size.h) \
+ $(wildcard include/config/dram/base.h) \
+ $(wildcard include/config/have/tcm.h) \
+ $(wildcard include/config/arm/patch/phys/virt.h) \
+ $(wildcard include/config/phys/offset.h) \
+ $(wildcard include/config/virt/to/bus.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/sizes.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/mach-mesong9tv/include/mach/memory.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/memory_model.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/getorder.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/sysctl.h \
+ $(wildcard include/config/sysctl.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rcupdate.h \
+ $(wildcard include/config/rcu/torture/test.h) \
+ $(wildcard include/config/tree/rcu.h) \
+ $(wildcard include/config/tree/preempt/rcu.h) \
+ $(wildcard include/config/rcu/trace.h) \
+ $(wildcard include/config/preempt/rcu.h) \
+ $(wildcard include/config/rcu/user/qs.h) \
+ $(wildcard include/config/tiny/rcu.h) \
+ $(wildcard include/config/tiny/preempt/rcu.h) \
+ $(wildcard include/config/debug/objects/rcu/head.h) \
+ $(wildcard include/config/hotplug/cpu.h) \
+ $(wildcard include/config/rcu/nocb/cpu.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/cpumask.h \
+ $(wildcard include/config/cpumask/offstack.h) \
+ $(wildcard include/config/debug/per/cpu/maps.h) \
+ $(wildcard include/config/disable/obsolete/cpumask/functions.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/completion.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/debugobjects.h \
+ $(wildcard include/config/debug/objects/free.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rcutree.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rbtree.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/sysctl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/memory_hotplug.h \
+ $(wildcard include/config/memory/hotremove.h) \
+ $(wildcard include/config/have/arch/nodedata/extension.h) \
+ $(wildcard include/config/have/bootmem/info/node.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/notifier.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/mutex.h \
+ $(wildcard include/config/debug/mutexes.h) \
+ $(wildcard include/config/mutex/spin/on/owner.h) \
+ $(wildcard include/config/have/arch/mutex/cpu/relax.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwsem.h \
+ $(wildcard include/config/rwsem/generic/spinlock.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwsem-spinlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/srcu.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/workqueue.h \
+ $(wildcard include/config/debug/objects/work.h) \
+ $(wildcard include/config/freezer.h) \
+ $(wildcard include/config/sysfs.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/timer.h \
+ $(wildcard include/config/timer/stats.h) \
+ $(wildcard include/config/debug/objects/timers.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/ktime.h \
+ $(wildcard include/config/ktime/scalar.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/time.h \
+ $(wildcard include/config/arch/uses/gettimeoffset.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/math64.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/time.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/jiffies.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/timex.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/timex.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/param.h \
+ arch/arm/include/generated/asm/param.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/param.h \
+ $(wildcard include/config/hz.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/param.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/timex.h \
+ $(wildcard include/config/arch/multiplatform.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/mach-mesong9tv/include/mach/timex.h \
+ $(wildcard include/config/meson/clock/tick/rate.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/topology.h \
+ $(wildcard include/config/sched/smt.h) \
+ $(wildcard include/config/sched/mc.h) \
+ $(wildcard include/config/sched/book.h) \
+ $(wildcard include/config/use/percpu/numa/node/id.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/smp.h \
+ $(wildcard include/config/use/generic/smp/helpers.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/smp.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/percpu.h \
+ $(wildcard include/config/need/per/cpu/embed/first/chunk.h) \
+ $(wildcard include/config/need/per/cpu/page/first/chunk.h) \
+ $(wildcard include/config/have/setup/per/cpu/area.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pfn.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/percpu.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/percpu.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/percpu-defs.h \
+ $(wildcard include/config/debug/force/weak/per/cpu.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/topology.h \
+ $(wildcard include/config/arm/cpu/topology.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/topology.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/mmdebug.h \
+ $(wildcard include/config/debug/vm.h) \
+ $(wildcard include/config/debug/virtual.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/slub_def.h \
+ $(wildcard include/config/slub/stats.h) \
+ $(wildcard include/config/memcg/kmem.h) \
+ $(wildcard include/config/slub/debug.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kobject.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/sysfs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kobject_ns.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kref.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kmemleak.h \
+ $(wildcard include/config/debug/kmemleak.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/inc/btusb.h \
+ include/generated/uapi/linux/version.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/usb.h \
+ $(wildcard include/config/usb/mon.h) \
+ $(wildcard include/config/pm.h) \
+ $(wildcard include/config/acpi.h) \
+ $(wildcard include/config/pm/runtime.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/mod_devicetable.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/uuid.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/uuid.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/usb/ch9.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/usb/ch9.h \
+ $(wildcard include/config/size.h) \
+ $(wildcard include/config/att/one.h) \
+ $(wildcard include/config/att/selfpower.h) \
+ $(wildcard include/config/att/wakeup.h) \
+ $(wildcard include/config/att/battery.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/delay.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/delay.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/interrupt.h \
+ $(wildcard include/config/generic/hardirqs.h) \
+ $(wildcard include/config/irq/forced/threading.h) \
+ $(wildcard include/config/generic/irq/probe.h) \
+ $(wildcard include/config/proc/fs.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/irqreturn.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/irqnr.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/irqnr.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/hardirq.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/ftrace_irq.h \
+ $(wildcard include/config/ftrace/nmi/enter.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/vtime.h \
+ $(wildcard include/config/virt/cpu/accounting.h) \
+ $(wildcard include/config/virt/cpu/accounting/native.h) \
+ $(wildcard include/config/virt/cpu/accounting/gen.h) \
+ $(wildcard include/config/irq/time/accounting.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/hardirq.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/irq.h \
+ $(wildcard include/config/sparse/irq.h) \
+ $(wildcard include/config/multi/irq/handler.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/mach-mesong9tv/include/mach/irqs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/irq_cpustat.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/hrtimer.h \
+ $(wildcard include/config/high/res/timers.h) \
+ $(wildcard include/config/timerfd.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/timerqueue.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/device.h \
+ $(wildcard include/config/debug/devres.h) \
+ $(wildcard include/config/pinctrl.h) \
+ $(wildcard include/config/devtmpfs.h) \
+ $(wildcard include/config/sysfs/deprecated.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/ioport.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/klist.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pinctrl/devinfo.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pinctrl/consumer.h \
+ $(wildcard include/config/pinconf.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/err.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/seq_file.h \
+ $(wildcard include/config/user/ns.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pinctrl/pinctrl-state.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pinctrl/machine.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pm.h \
+ $(wildcard include/config/vt/console/sleep.h) \
+ $(wildcard include/config/pm/clk.h) \
+ $(wildcard include/config/pm/generic/domains.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/ratelimit.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/uidgid.h \
+ $(wildcard include/config/uidgid/strict/type/checks.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/highuid.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/device.h \
+ $(wildcard include/config/dmabounce.h) \
+ $(wildcard include/config/iommu/api.h) \
+ $(wildcard include/config/arm/dma/use/iommu.h) \
+ $(wildcard include/config/arch/omap.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pm_wakeup.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/fs.h \
+ $(wildcard include/config/fs/posix/acl.h) \
+ $(wildcard include/config/security.h) \
+ $(wildcard include/config/quota.h) \
+ $(wildcard include/config/fsnotify.h) \
+ $(wildcard include/config/ima.h) \
+ $(wildcard include/config/epoll.h) \
+ $(wildcard include/config/debug/writecount.h) \
+ $(wildcard include/config/file/locking.h) \
+ $(wildcard include/config/auditsyscall.h) \
+ $(wildcard include/config/block.h) \
+ $(wildcard include/config/fs/xip.h) \
+ $(wildcard include/config/migration.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kdev_t.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/kdev_t.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/dcache.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rculist.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rculist_bl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/list_bl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bit_spinlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/path.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/stat.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/stat.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/stat.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/radix-tree.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pid.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/capability.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/capability.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/semaphore.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/fiemap.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/shrinker.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/migrate_mode.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/percpu-rwsem.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/blk_types.h \
+ $(wildcard include/config/blk/cgroup.h) \
+ $(wildcard include/config/blk/dev/integrity.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/fs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/limits.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/ioctl.h \
+ arch/arm/include/generated/asm/ioctl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/ioctl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/ioctl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/quota.h \
+ $(wildcard include/config/quota/netlink/interface.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/percpu_counter.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/dqblk_xfs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/dqblk_v1.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/dqblk_v2.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/dqblk_qtree.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/projid.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/quota.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/nfs_fs_i.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/fcntl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/fcntl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/fcntl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/fcntl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/sched.h \
+ $(wildcard include/config/sched/debug.h) \
+ $(wildcard include/config/no/hz/common.h) \
+ $(wildcard include/config/lockup/detector.h) \
+ $(wildcard include/config/core/dump/default/elf/headers.h) \
+ $(wildcard include/config/sched/autogroup.h) \
+ $(wildcard include/config/bsd/process/acct.h) \
+ $(wildcard include/config/taskstats.h) \
+ $(wildcard include/config/audit.h) \
+ $(wildcard include/config/cgroups.h) \
+ $(wildcard include/config/inotify/user.h) \
+ $(wildcard include/config/fanotify.h) \
+ $(wildcard include/config/posix/mqueue.h) \
+ $(wildcard include/config/keys.h) \
+ $(wildcard include/config/perf/events.h) \
+ $(wildcard include/config/schedstats.h) \
+ $(wildcard include/config/task/delay/acct.h) \
+ $(wildcard include/config/fair/group/sched.h) \
+ $(wildcard include/config/rt/group/sched.h) \
+ $(wildcard include/config/cgroup/sched.h) \
+ $(wildcard include/config/blk/dev/io/trace.h) \
+ $(wildcard include/config/rcu/boost.h) \
+ $(wildcard include/config/compat/brk.h) \
+ $(wildcard include/config/cc/stackprotector.h) \
+ $(wildcard include/config/sysvipc.h) \
+ $(wildcard include/config/detect/hung/task.h) \
+ $(wildcard include/config/rt/mutexes.h) \
+ $(wildcard include/config/task/xacct.h) \
+ $(wildcard include/config/cpusets.h) \
+ $(wildcard include/config/futex.h) \
+ $(wildcard include/config/fault/injection.h) \
+ $(wildcard include/config/latencytop.h) \
+ $(wildcard include/config/function/graph/tracer.h) \
+ $(wildcard include/config/uprobes.h) \
+ $(wildcard include/config/bcache.h) \
+ $(wildcard include/config/have/unstable/sched/clock.h) \
+ $(wildcard include/config/no/hz/full.h) \
+ $(wildcard include/config/stack/growsup.h) \
+ $(wildcard include/config/mm/owner.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/sched.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/mm_types.h \
+ $(wildcard include/config/split/ptlock/cpus.h) \
+ $(wildcard include/config/have/cmpxchg/double.h) \
+ $(wildcard include/config/have/aligned/struct/page.h) \
+ $(wildcard include/config/want/page/debug/flags.h) \
+ $(wildcard include/config/aio.h) \
+ $(wildcard include/config/mmu/notifier.h) \
+ $(wildcard include/config/transparent/hugepage.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/auxvec.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/auxvec.h \
+ arch/arm/include/generated/asm/auxvec.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/auxvec.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/page-debug-flags.h \
+ $(wildcard include/config/page/poisoning.h) \
+ $(wildcard include/config/page/guard.h) \
+ $(wildcard include/config/page/debug/something/else.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/uprobes.h \
+ $(wildcard include/config/arch/supports/uprobes.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/mmu.h \
+ $(wildcard include/config/cpu/has/asid.h) \
+ arch/arm/include/generated/asm/cputime.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/cputime.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/cputime_jiffies.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/sem.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/sem.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/ipc.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/ipc.h \
+ arch/arm/include/generated/asm/ipcbuf.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/ipcbuf.h \
+ arch/arm/include/generated/asm/sembuf.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/sembuf.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/signal.h \
+ $(wildcard include/config/old/sigaction.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/signal.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/signal.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/signal.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/signal-defs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/sigcontext.h \
+ arch/arm/include/generated/asm/siginfo.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/siginfo.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/siginfo.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/proportions.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/seccomp.h \
+ $(wildcard include/config/seccomp.h) \
+ $(wildcard include/config/seccomp/filter.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/seccomp.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rtmutex.h \
+ $(wildcard include/config/debug/rt/mutexes.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/plist.h \
+ $(wildcard include/config/debug/pi/list.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/resource.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/resource.h \
+ arch/arm/include/generated/asm/resource.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/resource.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/resource.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/task_io_accounting.h \
+ $(wildcard include/config/task/io/accounting.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/latencytop.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/cred.h \
+ $(wildcard include/config/debug/credentials.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/key.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/selinux.h \
+ $(wildcard include/config/security/selinux.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/llist.h \
+ $(wildcard include/config/arch/have/nmi/safe/cmpxchg.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pm_runtime.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/tty.h \
+ $(wildcard include/config/tty.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/major.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/termios.h \
+ arch/arm/include/generated/asm/termios.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/termios.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/uaccess.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/unified.h \
+ $(wildcard include/config/arm/asm/unified.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/termios.h \
+ arch/arm/include/generated/asm/termbits.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/termbits.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/ioctls.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/ioctls.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/tty_driver.h \
+ $(wildcard include/config/console/poll.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/cdev.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/tty_ldisc.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/tty_flags.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/tty.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/inc/bt_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/inc/data_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/inc/gki_int.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/inc/gki.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/inc/target.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/inc/btusbext.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/inc/hcidefs.h \
+
+/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src/btusb_isoc.o: $(deps_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src/btusb_isoc.o)
+
+$(deps_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src/btusb_isoc.o):
diff --git a/src/btusb.c b/bcm569/src/btusb.c
index 5253dcb..9300a02 100755
--- a/src/btusb.c
+++ b/bcm569/src/btusb.c
@@ -4,7 +4,7 @@
*
*
*
- * Copyright (C) 2011-2014 Broadcom Corporation.
+ * Copyright (C) 2011-2013 Broadcom Corporation.
*
*
*
@@ -23,48 +23,49 @@
*
*
*/
-#include "btusb.h"
#include <linux/module.h>
#include <linux/slab.h>
+#include <linux/proc_fs.h>
+#include <linux/seq_file.h>
+#include "btusb.h"
#include "hcidefs.h"
-#include "btusb_proc.h"
#define BTUSB_VID_BRCM 0x0A5C
-/* forward reference */
+// forward reference
struct usb_driver btusb_driver;
-/* table of devices that work with this driver */
+// table of devices that work with this driver
static struct usb_device_id btusb_table [] =
{
#if defined(BTUSB_VID) && defined(BTUSB_PID)
/* If a specific Vid/Pid is specified at compilation time */
{ USB_DEVICE(BTUSB_VID, BTUSB_PID) },
#else
- /* all BT devices */
+ // all BT devices
{ .match_flags = USB_DEVICE_ID_MATCH_DEV_CLASS | USB_DEVICE_ID_MATCH_DEV_SUBCLASS |
USB_DEVICE_ID_MATCH_DEV_PROTOCOL,
.bDeviceClass = USB_CLASS_WIRELESS_CONTROLLER,
- /* 0x01 / 0x01 = Bluetooth programming interface */
+ // 0x01 / 0x01 = Bluetooth programming interface
.bDeviceSubClass = 0x01,
.bDeviceProtocol = 0x01
},
- /* all BRCM BT interfaces */
+ // all BRCM BT interfaces
{ .match_flags = USB_DEVICE_ID_MATCH_VENDOR | USB_DEVICE_ID_MATCH_INT_CLASS | USB_DEVICE_ID_MATCH_INT_SUBCLASS |
USB_DEVICE_ID_MATCH_INT_PROTOCOL,
.idVendor = BTUSB_VID_BRCM,
.bInterfaceClass = USB_CLASS_WIRELESS_CONTROLLER,
- /* 0x01 / 0x01 = Bluetooth programming interface */
+ // 0x01 / 0x01 = Bluetooth programming interface
.bInterfaceSubClass = 0x01,
.bInterfaceProtocol = 0x01
},
- /* all BRCM vendor specific with Bluetooth programming interface */
+ // all BRCM vendor specific with Bluetooth programming interface
{ .match_flags = USB_DEVICE_ID_MATCH_VENDOR | USB_DEVICE_ID_MATCH_DEV_CLASS |
USB_DEVICE_ID_MATCH_DEV_SUBCLASS | USB_DEVICE_ID_MATCH_DEV_PROTOCOL,
.idVendor = BTUSB_VID_BRCM,
.bDeviceClass = USB_CLASS_VENDOR_SPEC,
- /* 0x01 / 0x01 = Bluetooth programming interface */
+ // 0x01 / 0x01 = Bluetooth programming interface
.bDeviceSubClass = 0x01,
.bDeviceProtocol = 0x01
},
@@ -74,6 +75,23 @@ static struct usb_device_id btusb_table [] =
MODULE_DEVICE_TABLE(usb, btusb_table);
+static const struct file_operations btusb_debug_fops =
+{
+ .open = btusb_debug_open,
+ .read = seq_read,
+ .write = btusb_debug_write,
+ .llseek = seq_lseek,
+ .release = single_release,
+};
+
+static const struct file_operations btusb_scosniff_fops =
+{
+ .open = btusb_scosniff_open,
+ .read = seq_read,
+ .llseek = seq_lseek,
+ .release = btusb_scosniff_release,
+};
+
static struct file_operations btusb_fops =
{
.owner = THIS_MODULE,
@@ -101,13 +119,13 @@ static struct usb_class_driver btusb_class =
};
-/* static functions */
-static int btusb_create(struct btusb *p_dev, struct usb_interface *p_interface, const struct usb_device_id *p_id);
+// static functions
+static int btusb_create(tBTUSB_CB *p_dev, struct usb_interface *p_interface, const struct usb_device_id *p_id);
-/* module parameter to enable suspend/resume with remote wakeup */
+// module parameter to enable suspend/resume with remote wakeup
bool autopm = 0;
-/* module parameter to enable debug flags */
+// module parameter to enable debug flags
int dbgflags = BTUSB_DBGFLAGS;
/*******************************************************************************
@@ -124,7 +142,7 @@ int dbgflags = BTUSB_DBGFLAGS;
** Returns 0 upon success, error core else.
**
*******************************************************************************/
-int btusb_submit(struct btusb *p_dev, struct usb_anchor *p_anchor, struct btusb_trans *p_trans, int mem_flags)
+int btusb_submit(tBTUSB_CB *p_dev, struct usb_anchor *p_anchor, tBTUSB_TRANSACTION *p_trans, int mem_flags)
{
int status;
struct urb *p_urb = p_trans->p_urb;
@@ -140,8 +158,7 @@ int btusb_submit(struct btusb *p_dev, struct usb_anchor *p_anchor, struct btusb_
status = usb_submit_urb(p_urb, mem_flags);
if (unlikely(status))
{
- /* this can happen when device is disconnecting */
- BTUSB_DBG("usb_submit_urb failed(%d)\n", status);
+ BTUSB_ERR("usb_submit_urb failed(%d)\n", status);
usb_unanchor_urb(p_urb);
p_dev->stats.urb_submit_err++;
}
@@ -167,39 +184,40 @@ int btusb_submit(struct btusb *p_dev, struct usb_anchor *p_anchor, struct btusb_
*******************************************************************************/
static void btusb_acl_read_complete(struct urb *p_urb)
{
- struct btusb_trans *p_trans = p_urb->context;
- struct btusb *p_dev = p_trans->p_dev;
+ tBTUSB_TRANSACTION *p_trans = p_urb->context;
+ tBTUSB_CB *p_dev = p_trans->context;
int count = p_urb->actual_length;
BTUSB_DBG("urb %p status %d count %d flags x%x\n", p_urb,
p_urb->status, count, p_urb->transfer_flags);
- /* number of ACL URB completed */
- p_dev->stats.acl_rx_complete++;
+ // number of ACL URB completed
+ p_dev->stats.acl_rx_completed++;
- /* check if device is disconnecting, has been unplugged or is closing */
- if (unlikely(p_urb->status))
+ // check if device is disconnecting, has been unplugged or is closing
+ if (unlikely((p_urb->status == -ESHUTDOWN) ||
+ (p_urb->status == -ENOENT) ||
+ (p_urb->status == -EILSEQ)))
{
BTUSB_DBG("not queuing URB\n");
- p_dev->stats.acl_rx_complete_err++;
goto exit;
}
- /* if there was no data, do not forward to upper layers */
- if (unlikely(!count))
+ // if there was an error or no data, do not forward to upper layers
+ if (unlikely(p_urb->status || !count))
{
p_dev->stats.acl_rx_resubmit++;
goto resubmit;
}
- /* increment the number of bytes transferred */
+ // increment the number of bytes transferred
p_dev->stats.acl_rx_bytes += count;
- /* forward up the data */
+ // forward up the data
btusb_dump_data(p_urb->transfer_buffer, count, "btusb_acl_read_complete");
- btusb_rx_enqueue(p_dev, p_trans, HCIT_TYPE_ACL_DATA);
+ btusb_enqueue(p_dev, p_trans, HCIT_TYPE_ACL_DATA);
- /* Do not resubmit since it was forwarded to the user */
+ // Do not resubmit since it was forwarded to the user
goto exit;
resubmit:
@@ -225,38 +243,38 @@ exit:
*******************************************************************************/
static void btusb_diag_read_complete(struct urb *p_urb)
{
- struct btusb_trans *p_trans = p_urb->context;
- struct btusb *p_dev = p_trans->p_dev;
+ tBTUSB_TRANSACTION *p_trans = p_urb->context;
+ tBTUSB_CB *p_dev = p_trans->context;
int count = p_urb->actual_length;
BTUSB_DBG("urb %p status %d count %d flags %x\n", p_urb,
p_urb->status, count, p_urb->transfer_flags);
- p_dev->stats.diag_rx_complete++;
+ p_dev->stats.diag_rx_completed++;
- /* check if device is disconnecting, has been unplugged or is closing */
- if (unlikely(p_urb->status))
+ // check if device is disconnecting, has been unplugged or is closing
+ if (unlikely((p_urb->status == -ESHUTDOWN) ||
+ (p_urb->status == -ENOENT) ||
+ (p_urb->status == -EILSEQ)))
{
- p_dev->stats.diag_rx_complete_err++;
BTUSB_DBG("not queuing URB\n");
goto exit;
}
- /* if there was no data or no more submitted diags, do not forward to upper layers */
- if (unlikely(!count || usb_anchor_empty(&p_dev->diag_rx_submitted)))
+ // if there was an error or no data or no more submitted diags, do not forward to upper layers
+ if (unlikely(p_urb->status || !count || usb_anchor_empty(&p_dev->diag_rx_submitted)))
{
p_dev->stats.diag_rx_resubmit++;
goto resubmit;
}
- /* increment the number of bytes transferred */
+ // increment the number of bytes transferred
p_dev->stats.diag_rx_bytes += count;
- /* forward up the data */
+ // forward up the data
btusb_dump_data(p_urb->transfer_buffer, count, "btusb_diag_read_complete");
- btusb_rx_enqueue(p_dev, p_trans, HCIT_TYPE_LM_DIAG);
+ btusb_enqueue(p_dev, p_trans, HCIT_TYPE_LM_DIAG);
- /* Do not resubmit since it was forwarded to the user */
goto exit;
resubmit:
@@ -283,8 +301,8 @@ exit:
*******************************************************************************/
static void btusb_event_complete(struct urb *p_urb)
{
- struct btusb_trans *p_trans = p_urb->context;
- struct btusb *p_dev = p_trans->p_dev;
+ tBTUSB_TRANSACTION *p_trans = p_urb->context;
+ tBTUSB_CB *p_dev = p_trans->context;
int count = p_urb->actual_length;
#if defined (BTUSB_LITE)
BT_HDR *p_buf;
@@ -293,18 +311,19 @@ static void btusb_event_complete(struct urb *p_urb)
BTUSB_DBG("urb %p status %d count %d flags %x\n", p_urb,
p_urb->status, count, p_urb->transfer_flags);
- p_dev->stats.event_complete++;
+ p_dev->stats.event_completed++;
- /* check if device is disconnecting, has been unplugged or is closing */
- if (unlikely(p_urb->status))
+ // check if device is disconnecting, has been unplugged or is closing
+ if (unlikely((p_urb->status == -ESHUTDOWN) ||
+ (p_urb->status == -ENOENT) ||
+ (p_urb->status == -EILSEQ)))
{
BTUSB_DBG("not queuing URB\n");
- p_dev->stats.event_complete_err++;
goto exit;
}
- /* if there was no data, do not forward to upper layers */
- if (unlikely(!count))
+ // if there was an error or no data, do not forward to upper layers
+ if (unlikely(p_urb->status || !count))
{
p_dev->stats.event_resubmit++;
goto resubmit;
@@ -318,7 +337,7 @@ static void btusb_event_complete(struct urb *p_urb)
p_buf->offset = 0;
p_buf->event = HCIT_TYPE_EVENT;
p_buf->len = p_trans->p_urb->actual_length;
- btusb_rx_dequeued(p_dev, p_buf);
+ btusb_dequeued(p_dev, p_buf);
}
else
#endif
@@ -328,7 +347,7 @@ static void btusb_event_complete(struct urb *p_urb)
/* forward up the event */
btusb_dump_data(p_urb->transfer_buffer, count, "btusb_event_complete");
- btusb_rx_enqueue(p_dev, p_trans, HCIT_TYPE_EVENT);
+ btusb_enqueue(p_dev, p_trans, HCIT_TYPE_EVENT);
}
/* Do not resubmit since it was forwarded to the user */
@@ -379,16 +398,15 @@ exit:
*******************************************************************************/
static int btusb_probe(struct usb_interface *p_interface, const struct usb_device_id *p_id)
{
- struct btusb *p_dev;
+ tBTUSB_CB *p_dev;
struct usb_ctrlrequest *p_dr;
struct usb_host_interface *p_host_intf;
struct usb_endpoint_descriptor *p_ep_desc;
struct urb *p_urb;
int idx, jdx;
- struct btusb_trans *p_trans;
+ tBTUSB_TRANSACTION *p_trans;
int retval = -ENOMEM;
-
- GKI_init();
+ char procname[64];
BTUSB_INFO("p_interface=%p, p_id=%p\n", p_interface, p_id);
BTUSB_INFO("p_interface->cur_altsetting->desc.bInterfaceNumber=%d\n", p_interface->cur_altsetting->desc.bInterfaceNumber);
@@ -396,15 +414,15 @@ static int btusb_probe(struct usb_interface *p_interface, const struct usb_devic
p_id->match_flags, p_id->idVendor, p_id->idProduct, p_id->bDeviceClass, p_id->bDeviceSubClass,
p_id->bDeviceProtocol);
- /* Bluetooth core Interface number must be 0 (hardcoded in the spec) */
+ // Bluetooth core Interface number must be 0 (hardcoded in the spec)
if (p_interface->cur_altsetting->desc.bInterfaceNumber != 0)
{
BTUSB_INFO("InterfaceNumber is not 0. This is not a Bluetooth Interface\n");
return -ENODEV;
}
- /* allocate memory for our device */
- p_dev = kzalloc(sizeof(struct btusb), GFP_KERNEL);
+ // allocate memory for our device
+ p_dev = kzalloc(sizeof(tBTUSB_CB), GFP_KERNEL);
if (p_dev == NULL)
{
dev_err(&p_interface->dev, "Out of memory\n");
@@ -417,8 +435,8 @@ static int btusb_probe(struct usb_interface *p_interface, const struct usb_devic
goto error;
}
- /* set up the endpoint information
- use only the first bulk-in and bulk-out endpoints */
+ // set up the endpoint information
+ // use only the first bulk-in and bulk-out endpoints
p_host_intf = p_interface->cur_altsetting;
BTUSB_DBG("%u endpoints\n", p_host_intf->desc.bNumEndpoints);
@@ -431,7 +449,7 @@ static int btusb_probe(struct usb_interface *p_interface, const struct usb_devic
BTUSB_EP_DIR_IN(p_ep_desc) &&
(BTUSB_EP_TYPE(p_ep_desc) == USB_ENDPOINT_XFER_BULK))
{
- /* we found a bulk in endpoint */
+ // we found a bulk in endpoint
p_dev->p_acl_in = &p_host_intf->endpoint[idx];
}
@@ -439,7 +457,7 @@ static int btusb_probe(struct usb_interface *p_interface, const struct usb_devic
BTUSB_EP_DIR_IN(p_ep_desc) &&
(BTUSB_EP_TYPE(p_ep_desc) == USB_ENDPOINT_XFER_INT))
{
- /* we found an interrupt in end point */
+ // we found an interrupt in end point
p_dev->p_event_in = &p_host_intf->endpoint[idx];
}
@@ -447,12 +465,12 @@ static int btusb_probe(struct usb_interface *p_interface, const struct usb_devic
BTUSB_EP_DIR_OUT(p_ep_desc) &&
(BTUSB_EP_TYPE(p_ep_desc) == USB_ENDPOINT_XFER_BULK))
{
- /* we found a bulk out end point */
+ // we found a bulk out end point
p_dev->p_acl_out = &p_host_intf->endpoint[idx];
}
}
- /* now start looking at the voice interface (check if it a BT interface) */
+ // now start looking at the voice interface (check if it a BT interface)
p_dev->p_voice_intf = usb_ifnum_to_if(p_dev->p_udev, 1);
if (p_dev->p_voice_intf)
{
@@ -462,7 +480,7 @@ static int btusb_probe(struct usb_interface *p_interface, const struct usb_devic
(p_host_intf->desc.bInterfaceSubClass == 1) &&
(p_host_intf->desc.bInterfaceProtocol == 1))
{
- /* can claim here, but prefer to check there are ISO endpoints */
+ // can claim here, but prefer to check there are ISO endpoints
}
else
{
@@ -477,17 +495,17 @@ static int btusb_probe(struct usb_interface *p_interface, const struct usb_devic
p_ep_desc = &p_host_intf->endpoint[jdx].desc;
if (BTUSB_EP_TYPE(p_ep_desc) == USB_ENDPOINT_XFER_ISOC)
{
- /* found an ISO endpoint, claim interface and stop here */
+ // found an ISO endpoint, claim interface and stop here
if (usb_driver_claim_interface(&btusb_driver, p_dev->p_voice_intf, p_dev) != 0)
{
BTUSB_ERR("failed claiming iso interface\n");
- /* reset it to prevent releasing it */
+ // reset it to prevent releasing it
p_dev->p_voice_intf = NULL;
goto error_claim;
}
BTUSB_DBG("claimed iso interface\n");
- /* set it into a disabled state */
+ // set it into a disabled state
if (usb_set_interface(p_dev->p_udev, 1, 0))
{
BTUSB_ERR("failed to set iso intf to 0\n");
@@ -501,7 +519,7 @@ no_voice:
p_dev->p_voice_intf = NULL;
found_voice:
- /* grab other interfaces if present */
+ // grab other interfaces if present
p_dev->p_diag_intf = usb_ifnum_to_if(p_dev->p_udev, 2);
if (p_dev->p_diag_intf)
{
@@ -534,21 +552,21 @@ found_voice:
BTUSB_EP_DIR_IN(p_ep_desc) &&
(BTUSB_EP_TYPE(p_ep_desc) == USB_ENDPOINT_XFER_BULK))
{
- /* we found a bulk in end point */
+ // we found a bulk in end point
p_dev->p_diag_in = &p_host_intf->endpoint[idx];
}
if ((!p_dev->p_diag_out) &&
BTUSB_EP_DIR_OUT(p_ep_desc) &&
(BTUSB_EP_TYPE(p_ep_desc) == USB_ENDPOINT_XFER_BULK))
{
- /* we found a bulk out end point */
+ // we found a bulk out end point
p_dev->p_diag_out = &p_host_intf->endpoint[idx];
}
}
}
no_diag:
- /* try to get the DFU interface */
+ // try to get the DFU interface
p_dev->p_dfu_intf = usb_ifnum_to_if(p_dev->p_udev, 3);
if (p_dev->p_dfu_intf)
{
@@ -577,12 +595,11 @@ no_dfu:
{
p_trans->gki_hdr.status = BUF_STATUS_FREE;
#if (GKI_ENABLE_BUF_CORRUPTION_CHECK == TRUE)
- /* write the magic number to allow checking corruption */
+ // write the magic number to allow checking corruption
p_trans->gki_hdr.q_id = GKI_NUM_TOTAL_BUF_POOLS;
p_trans->magic = MAGIC_NO;
#endif
- p_trans->p_dev = p_dev;
- p_trans->complete = btusb_cmd_complete;
+ p_trans->context = p_dev;
p_trans->dma_buffer = BTUSB_BUFFER_ALLOC(p_dev->p_udev,
BTUSB_HCI_MAX_CMD_SIZE, GFP_KERNEL, &p_trans->dma);
p_urb = p_trans->p_urb = usb_alloc_urb(0, GFP_KERNEL);
@@ -605,23 +622,22 @@ no_dfu:
(void *)p_dr,
p_trans->dma_buffer,
BTUSB_HCI_MAX_CMD_SIZE,
- btusb_urb_out_complete,
+ btusb_cmd_complete,
p_trans);
p_urb->transfer_dma = p_trans->dma;
p_urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;
}
- /* initialize the USB data paths */
+ // initialize the USB data paths
BTUSB_ARRAY_FOR_EACH_TRANS(p_dev->event_array)
{
p_trans->gki_hdr.status = BUF_STATUS_UNLINKED;
#if (GKI_ENABLE_BUF_CORRUPTION_CHECK == TRUE)
- /* write the magic number to allow checking corruption */
+ // write the magic number to allow checking corruption
p_trans->gki_hdr.q_id = GKI_NUM_TOTAL_BUF_POOLS;
p_trans->magic = MAGIC_NO;
#endif
- p_trans->p_dev = p_dev;
- p_trans->complete = NULL;
+ p_trans->context = p_dev;
p_trans->dma_buffer = BTUSB_BUFFER_ALLOC(p_dev->p_udev,
BTUSB_HCI_MAX_EVT_SIZE, GFP_KERNEL, &p_trans->dma);
p_urb = p_trans->p_urb = usb_alloc_urb(0, GFP_KERNEL);
@@ -647,12 +663,11 @@ no_dfu:
{
p_trans->gki_hdr.status = BUF_STATUS_UNLINKED;
#if (GKI_ENABLE_BUF_CORRUPTION_CHECK == TRUE)
- /* write the magic number to allow checking corruption */
+ // write the magic number to allow checking corruption
p_trans->gki_hdr.q_id = GKI_NUM_TOTAL_BUF_POOLS;
p_trans->magic = MAGIC_NO;
#endif
- p_trans->p_dev = p_dev;
- p_trans->complete = NULL;
+ p_trans->context = p_dev;
p_trans->dma_buffer = BTUSB_BUFFER_ALLOC(p_dev->p_udev,
BTUSB_HCI_MAX_ACL_SIZE, GFP_KERNEL, &p_trans->dma);
p_urb = p_trans->p_urb = usb_alloc_urb(0, GFP_KERNEL);
@@ -677,12 +692,11 @@ no_dfu:
{
p_trans->gki_hdr.status = BUF_STATUS_FREE;
#if (GKI_ENABLE_BUF_CORRUPTION_CHECK == TRUE)
- /* write the magic number to allow checking corruption */
+ // write the magic number to allow checking corruption
p_trans->gki_hdr.q_id = GKI_NUM_TOTAL_BUF_POOLS;
p_trans->magic = MAGIC_NO;
#endif
- p_trans->p_dev = p_dev;
- p_trans->complete = NULL;
+ p_trans->context = p_dev;
p_trans->dma_buffer = BTUSB_BUFFER_ALLOC(p_dev->p_udev,
BTUSB_HCI_MAX_ACL_SIZE, GFP_KERNEL, &p_trans->dma);
p_urb = p_trans->p_urb = usb_alloc_urb(0, GFP_KERNEL);
@@ -697,11 +711,11 @@ no_dfu:
usb_sndbulkpipe(p_dev->p_udev, p_dev->p_acl_out->desc.bEndpointAddress),
p_trans->dma_buffer,
BTUSB_HCI_MAX_ACL_SIZE,
- btusb_urb_out_complete,
+ btusb_write_complete,
p_trans);
p_urb->transfer_dma = p_trans->dma;
p_urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;
- /* if it is a composite device, BULK out transfers must be ZERO packet terminated */
+ // if it is a composite device, BULK out transfers must be ZERO packet terminated
if (p_dev->quirks & BTUSB_QUIRK_ZLP_TX_REQ)
{
BTUSB_DBG("acl_tx_array[%d]: add ZERO_PACKET\n", idx);
@@ -715,12 +729,11 @@ no_dfu:
{
p_trans->gki_hdr.status = BUF_STATUS_UNLINKED;
#if (GKI_ENABLE_BUF_CORRUPTION_CHECK == TRUE)
- /* write the magic number to allow checking corruption */
+ // write the magic number to allow checking corruption
p_trans->gki_hdr.q_id = GKI_NUM_TOTAL_BUF_POOLS;
p_trans->magic = MAGIC_NO;
#endif
- p_trans->p_dev = p_dev;
- p_trans->complete = NULL;
+ p_trans->context = p_dev;
p_trans->dma_buffer = BTUSB_BUFFER_ALLOC(p_dev->p_udev,
BTUSB_HCI_MAX_ACL_SIZE, GFP_KERNEL, &p_trans->dma);
p_urb = p_trans->p_urb = usb_alloc_urb(0, GFP_KERNEL);
@@ -748,12 +761,11 @@ no_dfu:
{
p_trans->gki_hdr.status = BUF_STATUS_FREE;
#if (GKI_ENABLE_BUF_CORRUPTION_CHECK == TRUE)
- /* write the magic number to allow checking corruption */
+ // write the magic number to allow checking corruption
p_trans->gki_hdr.q_id = GKI_NUM_TOTAL_BUF_POOLS;
p_trans->magic = MAGIC_NO;
#endif
- p_trans->p_dev = p_dev;
- p_trans->complete = NULL;
+ p_trans->context = p_dev;
p_trans->dma_buffer = BTUSB_BUFFER_ALLOC(p_dev->p_udev,
BTUSB_HCI_MAX_ACL_SIZE, GFP_KERNEL, &p_trans->dma);
p_urb = p_trans->p_urb = usb_alloc_urb(0, GFP_KERNEL);
@@ -768,7 +780,7 @@ no_dfu:
usb_sndbulkpipe(p_dev->p_udev, p_dev->p_diag_out->desc.bEndpointAddress),
p_trans->dma_buffer,
BTUSB_HCI_MAX_ACL_SIZE,
- btusb_urb_out_complete,
+ btusb_write_complete,
p_trans);
p_urb->transfer_dma = p_trans->dma;
p_urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;
@@ -779,12 +791,11 @@ no_dfu:
{
p_trans->gki_hdr.status = BUF_STATUS_FREE;
#if (GKI_ENABLE_BUF_CORRUPTION_CHECK == TRUE)
- /* write the magic number to allow checking corruption */
+ // write the magic number to allow checking corruption
p_trans->gki_hdr.q_id = GKI_NUM_TOTAL_BUF_POOLS;
p_trans->magic = MAGIC_NO;
#endif
- p_trans->p_dev = p_dev;
- p_trans->complete = NULL;
+ p_trans->context = p_dev;
p_trans->dma_buffer = BTUSB_BUFFER_ALLOC(p_dev->p_udev,
BTUSB_VOICE_BUFFER_MAXSIZE, GFP_KERNEL, &p_trans->dma);
p_urb = p_trans->p_urb = usb_alloc_urb(BTUSB_VOICE_FRAMES_PER_URB, GFP_KERNEL);
@@ -804,46 +815,22 @@ no_dfu:
p_urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP | URB_ISO_ASAP;
}
- BTUSB_ARRAY_FOR_EACH_TRANS(p_dev->voice_tx_array)
+ for (idx = 0; idx < BTUSB_NUM_OF_VOICE_TX_BUFFERS; idx++)
{
- p_trans->gki_hdr.status = BUF_STATUS_FREE;
-#if (GKI_ENABLE_BUF_CORRUPTION_CHECK == TRUE)
- /* write the magic number to allow checking corruption */
- p_trans->gki_hdr.q_id = GKI_NUM_TOTAL_BUF_POOLS;
- p_trans->magic = MAGIC_NO;
-#endif
- p_trans->p_dev = p_dev;
- p_trans->complete = btusb_voicetx_complete;
- p_trans->dma_buffer = BTUSB_BUFFER_ALLOC(p_dev->p_udev,
- BTUSB_VOICE_BUFFER_MAXSIZE, GFP_KERNEL, &p_trans->dma);
- p_urb = p_trans->p_urb = usb_alloc_urb(BTUSB_VOICE_FRAMES_PER_URB, GFP_KERNEL);
- if (!p_trans->dma_buffer || !p_urb)
- {
- BTUSB_ERR("transaction allocation failed\n");
- goto error_claim;
- }
- BTUSB_DBG("voice_tx_array[%d]: b=%p\n", idx, p_trans->dma_buffer);
-
- p_urb->dev = p_dev->p_udev;
- p_urb->transfer_buffer = p_trans->dma_buffer;
- p_urb->transfer_buffer_length = BTUSB_VOICE_BUFFER_MAXSIZE;
- p_urb->complete = btusb_urb_out_complete;
- p_urb->context = p_trans;
- p_urb->transfer_dma = p_trans->dma;
- p_urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP | URB_ISO_ASAP;
+ usb_init_urb(&p_dev->p_voicetxIrpList[idx].urb);
}
- /* we can register the device now, as it is ready */
+ // we can register the device now, as it is ready
usb_set_intfdata(p_interface, p_dev);
retval = usb_register_dev(p_interface, &btusb_class);
if (retval)
{
- /* something prevented us from registering this driver */
- BTUSB_ERR("usb_register_dev failed: %d\n", retval);
+ // something prevented us from registering this driver
+ BTUSB_ERR("Not able to get a minor for this device\n");
goto error_claim;
}
- /* start sending IN tokens */
+ // start sending IN tokens
BTUSB_ARRAY_FOR_EACH_TRANS(p_dev->event_array)
{
if (btusb_submit(p_dev, &p_dev->event_submitted, p_trans, GFP_KERNEL))
@@ -879,17 +866,43 @@ no_dfu:
}
/* Create the proc filesystem entry. To make it easy to retrieve, the
- * entry created is called /proc/driver/btusb/btusbN where btusbN matches the
+ * entry created is called /proc/driver/btusbN where btusbN matches the
* file entry in /dev.
* The name of the device in /dev comes from the device created when
* usb_register_dev was called (in the current fn). The name was built
* from the btusb_class structure. usb_register_dev calls device_create
* which creates the VFS entry. This can be found in online linux code.
*/
- btusb_proc_add(p_dev, kobject_name(&p_interface->usb_dev->kobj));
+ scnprintf(procname, sizeof(procname), "driver/%s", p_interface->usb_dev->kobj.name);
+ p_dev->p_debug_pde = proc_create_data(procname, S_IRUGO | S_IWUGO, NULL, &btusb_debug_fops, p_dev);
+ if (p_dev->p_debug_pde == NULL)
+ {
+ BTUSB_ERR("Couldn't create proc entry\n");
+ }
+ else
+ {
+ BTUSB_DBG("created /proc/%s\n", procname);
+ }
+
+ scnprintf(procname, sizeof(procname), "driver/%s-scosniff", p_interface->usb_dev->kobj.name);
+ p_dev->p_scosniff_pde = proc_create_data(procname, S_IRUGO, NULL, &btusb_scosniff_fops, p_dev);
+ if (p_dev->p_scosniff_pde == NULL)
+ {
+ BTUSB_ERR("Couldn't create proc SCO sniff entry\n");
+ }
+ else
+ {
+ BTUSB_DBG("created /proc/%s\n", procname);
+ INIT_LIST_HEAD(&p_dev->scosniff_list);
+ init_completion(&p_dev->scosniff_completion);
+ }
+
+#ifdef BTUSB_LITE
+ btusb_lite_create(p_dev, p_interface);
+#endif
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 34)
- if (autopm)
+ if(autopm)
{
BTUSB_INFO("Enabling for remote wakeup\n");
p_interface->needs_remote_wakeup = 1;
@@ -905,12 +918,7 @@ no_dfu:
BTUSB_INFO("USB suspend/resume not supported for this kernel version\n");
#endif
-#ifdef BTUSB_LITE
- /* must be called last because it uses the p_dev entries */
- btusb_lite_create(p_dev, p_interface);
-#endif
-
- /* let the user know what node this device is now attached to */
+ // let the user know what node this device is now attached to
BTUSB_DBG("device now attached to minor %d\n", p_interface->minor);
return 0;
@@ -923,7 +931,6 @@ error_bt_submit:
usb_kill_anchored_urbs(&p_dev->event_submitted);
usb_kill_anchored_urbs(&p_dev->cmd_submitted);
usb_kill_anchored_urbs(&p_dev->voice_rx_submitted);
- usb_kill_anchored_urbs(&p_dev->voice_tx_submitted);
usb_deregister_dev(p_interface, &btusb_class);
@@ -968,42 +975,45 @@ error:
** Returns void.
**
*******************************************************************************/
-void btusb_cancel_voice(struct btusb *p_dev)
+void btusb_cancel_voice(tBTUSB_CB *p_dev)
{
int idx;
- struct btusb_voice_pkt *p_pkt;
+ tBTUSB_VOICE_CHANNEL *p_chan;
BTUSB_DBG("enter\n");
- /* cancel rx */
+ // cancel rx
BTUSB_DBG("Removing SCO RX anchored URBs\n");
usb_kill_anchored_urbs(&p_dev->voice_rx_submitted);
- /* since all URB have been killed, safely reset the state variables */
- p_dev->voice_rx.remaining = 0;
- p_dev->voice_rx.hdr_size = 0;
- p_dev->voice_rx.pp_pkt = NULL;
+ // free any SCO HCI message being consolidated
+ for (idx = 0; idx < ARRAY_SIZE(p_dev->voice_channels); idx++)
+ {
+ p_chan = &p_dev->voice_channels[idx];
+ if (p_chan->p_msg != NULL)
+ {
+ GKI_freebuf(p_chan->p_msg);
+ p_chan->p_msg = NULL;
+ }
+ }
+ // clear active RX processing
+ p_dev->pending_bytes = 0;
+ p_dev->pp_pending_msg = NULL;
+ p_dev->pending_hdr_size = 0;
+
- /* free any SCO HCI message being consolidated on any channel */
- for (idx = 0; idx < ARRAY_SIZE(p_dev->voice_rx.channels); idx++)
+ // cancel tx
+ for (idx = 0; idx < BTUSB_NUM_OF_VOICE_TX_BUFFERS; idx++)
{
- p_pkt = p_dev->voice_rx.channels[idx].p_pkt;
- /* mark the packet bad (length 0) and put it in the reception queue
- because putting it back in the free list would require protecting
- the access to the write counter between read and ioctl:
- btusb_cq_put(&p_dev->voice_rx_list, *p_dev->voice_channels[idx].p_pkt) */
- if (p_pkt)
+ if (p_dev->p_voicetxIrpList[idx].used)
{
- p_pkt->bt_hdr.len = 0;
- btusb_rx_enqueue_voice(p_dev, p_pkt);
+ BTUSB_DBG("canceling tx URB %d\n", idx);
+ usb_kill_urb(&p_dev->p_voicetxIrpList[idx].urb);
+ p_dev->p_voicetxIrpList[idx].used = 0;
+ BTUSB_DBG("tx URB %d canceled\n", idx);
}
- p_dev->voice_rx.channels[idx].p_pkt = NULL;
}
- /* cancel tx */
- BTUSB_DBG("Removing SCO RX anchored URBs\n");
- usb_kill_anchored_urbs(&p_dev->voice_tx_submitted);
- atomic_set(&p_dev->voice_tx_active, 0);
}
/*******************************************************************************
@@ -1017,31 +1027,31 @@ void btusb_cancel_voice(struct btusb *p_dev)
** Returns void.
**
*******************************************************************************/
-void btusb_cancel_urbs(struct btusb *p_dev)
+void btusb_cancel_urbs(tBTUSB_CB *p_dev)
{
BTUSB_DBG("enter\n");
- /* stop reading data */
+ // stop reading data
BTUSB_DBG("Removing ACL RX anchored URBs\n");
usb_kill_anchored_urbs(&p_dev->acl_rx_submitted);
- /* stop reading events */
+ // stop reading events
BTUSB_DBG("Removing EVENT anchored URBs\n");
usb_kill_anchored_urbs(&p_dev->event_submitted);
- /* stop reading diags */
+ // stop reading diags
BTUSB_DBG("Removing DIAG anchored URBs\n");
usb_kill_anchored_urbs(&p_dev->diag_rx_submitted);
- /* cancel ACL writes */
+ // cancel ACL writes
BTUSB_DBG("Removing ACL TX anchored URBs\n");
usb_kill_anchored_urbs(&p_dev->acl_tx_submitted);
- /* cancel commands */
+ // cancel commands
BTUSB_DBG("Removing CMD anchored URBs\n");
usb_kill_anchored_urbs(&p_dev->cmd_submitted);
- /* cancel diags */
+ // cancel diags
BTUSB_DBG("Removing DIAG TX anchored URBs\n");
usb_kill_anchored_urbs(&p_dev->diag_tx_submitted);
@@ -1060,10 +1070,12 @@ void btusb_cancel_urbs(struct btusb *p_dev)
*******************************************************************************/
static void btusb_disconnect(struct usb_interface *p_interface)
{
- struct btusb *p_dev = usb_get_intfdata(p_interface);
+ tBTUSB_CB *p_dev = usb_get_intfdata(p_interface);
+ int idx;
+ char procname[64];
BTUSB_INFO("p_dev=%p\n", p_dev);
- if (!p_dev)
+ if (p_dev == NULL)
{
BTUSB_ERR("p_dev == NULL\n");
return;
@@ -1075,30 +1087,36 @@ static void btusb_disconnect(struct usb_interface *p_interface)
return;
}
- /* clear the interface data information */
+ // clear the interface data information
usb_set_intfdata(p_interface, NULL);
+ scnprintf(procname, sizeof(procname), "driver/%s", p_interface->usb_dev->kobj.name);
+ remove_proc_entry(procname, NULL);
+
+ scnprintf(procname, sizeof(procname), "driver/%s-scosniff", p_interface->usb_dev->kobj.name);
+ remove_proc_entry(procname, NULL);
+
#ifdef BTUSB_LITE
btusb_lite_stop_all(p_dev);
btusb_lite_delete(p_dev, p_interface);
#endif
- btusb_proc_remove(p_dev, p_interface->usb_dev->kobj.name);
-
BTUSB_DBG("shutting down HCI intf\n");
/* prevent more I/O from starting */
+ spin_lock_bh(&p_dev->tasklet_lock);
p_dev->p_main_intf = NULL;
+ spin_unlock_bh(&p_dev->tasklet_lock);
- /* cancel pending requests */
+ // cancel pending requests
btusb_cancel_voice(p_dev);
btusb_cancel_urbs(p_dev);
- /* give back our minor */
+ // give back our minor
BTUSB_DBG("unregistering #%d\n", p_interface->minor);
usb_deregister_dev(p_interface, &btusb_class);
- /* release interfaces */
+ // release interfaces
if (p_dev->p_diag_intf)
{
usb_driver_release_interface(&btusb_driver, p_dev->p_diag_intf);
@@ -1118,7 +1136,12 @@ static void btusb_disconnect(struct usb_interface *p_interface)
BTUSB_DBG("released iso interface\n");
}
- if (autopm)
+ for (idx = 0; idx < BTUSB_NUM_OF_VOICE_TX_BUFFERS; idx++)
+ {
+ p_dev->p_voicetxIrpList[idx].used = 0;
+ }
+
+ if(autopm)
{
BTUSB_INFO("Disabling for remote wakeup\n");
p_dev->p_main_intf->needs_remote_wakeup = 0;
@@ -1132,7 +1155,7 @@ static void btusb_disconnect(struct usb_interface *p_interface)
#endif
}
- /* decrement the reference counter */
+ // decrement the reference counter
BTUSB_DBG("kref_put -> &p_dev->kref 0x%p \n", &p_dev->kref);
kref_put(&p_dev->kref, btusb_delete);
}
@@ -1150,7 +1173,7 @@ static void btusb_disconnect(struct usb_interface *p_interface)
*******************************************************************************/
static int btusb_suspend(struct usb_interface *p_interface, pm_message_t message)
{
- struct btusb *p_dev = usb_get_intfdata(p_interface);
+ tBTUSB_CB *p_dev = usb_get_intfdata(p_interface);
if (unlikely(!p_dev))
return 0;
@@ -1160,19 +1183,19 @@ static int btusb_suspend(struct usb_interface *p_interface, pm_message_t message
BTUSB_INFO("Suspending USB\n");
BTUSB_DBG("main interface (%p)\n",p_dev->p_main_intf);
- /* stop reading data */
+ // stop reading data
BTUSB_DBG("Removing ACL RX anchored URBs\n");
usb_kill_anchored_urbs(&p_dev->acl_rx_submitted);
- /* stop reading events */
+ // stop reading events
BTUSB_DBG("Removing EVENT anchored URBs\n");
usb_kill_anchored_urbs(&p_dev->event_submitted);
- /* cancel ACL writes */
+ // cancel ACL writes
BTUSB_DBG("Removing ACL TX anchored URBs\n");
usb_kill_anchored_urbs(&p_dev->acl_tx_submitted);
- /* cancel commands */
+ // cancel commands
BTUSB_DBG("Removing CMD anchored URBs\n");
usb_kill_anchored_urbs(&p_dev->cmd_submitted);
@@ -1189,11 +1212,11 @@ static int btusb_suspend(struct usb_interface *p_interface, pm_message_t message
{
BTUSB_DBG("diag interface (%p)\n",p_dev->p_diag_intf);
- /* stop reading diags */
+ // stop reading diags
BTUSB_DBG("Removing DIAG RX anchored URBs\n");
usb_kill_anchored_urbs(&p_dev->diag_rx_submitted);
- /* cancel diags */
+ // cancel diags
BTUSB_DBG("Removing DIAG TX anchored URBs\n");
usb_kill_anchored_urbs(&p_dev->diag_tx_submitted);
}
@@ -1214,10 +1237,10 @@ static int btusb_suspend(struct usb_interface *p_interface, pm_message_t message
*******************************************************************************/
static int btusb_resume(struct usb_interface *p_interface)
{
- struct btusb *p_dev = usb_get_intfdata(p_interface);
+ tBTUSB_CB *p_dev = usb_get_intfdata(p_interface);
int idx;
int retval = -ENOMEM;
- struct btusb_trans *p_trans;
+ tBTUSB_TRANSACTION *p_trans;
BTUSB_INFO("p_dev=%p\n", p_dev);
if (unlikely(p_dev == NULL))
@@ -1334,14 +1357,15 @@ struct usb_driver btusb_driver =
** Returns 0 upon success, error core else.
**
*******************************************************************************/
-static int btusb_create(struct btusb *p_dev, struct usb_interface *p_interface, const struct usb_device_id *p_id)
+static int btusb_create(tBTUSB_CB *p_dev, struct usb_interface *p_interface, const struct usb_device_id *p_id)
{
unsigned idx;
struct usb_host_config *p_config;
struct usb_host_interface *p_host_intf;
- struct btusb_voice_pkt *p_pkt;
- /* initialize the elements of the device structure */
+ // initialize the elements of the device structure
+ mutex_init(&p_dev->open_mutex);
+ spin_lock_init(&p_dev->tasklet_lock);
kref_init(&p_dev->kref);
GKI_init_q(&p_dev->tx_queue);
GKI_init_q(&p_dev->rx_queue);
@@ -1353,37 +1377,30 @@ static int btusb_create(struct btusb *p_dev, struct usb_interface *p_interface,
init_usb_anchor(&p_dev->cmd_submitted);
init_usb_anchor(&p_dev->diag_tx_submitted);
init_usb_anchor(&p_dev->voice_rx_submitted);
- init_usb_anchor(&p_dev->voice_tx_submitted);
- atomic_set(&p_dev->voice_tx_active, 0);
- INIT_LIST_HEAD(&p_dev->scosniff_list);
- init_completion(&p_dev->scosniff_completion);
-
- /* save the USB information */
+ // save the USB information
p_dev->p_udev = usb_get_dev(interface_to_usbdev(p_interface));
p_dev->p_id = p_id;
p_dev->p_main_intf = p_interface;
- /* register tx task so we can start sending data to transport */
+ // register tx task so we can start sending data to transport
tasklet_init(&p_dev->tx_task, btusb_tx_task, (unsigned long)p_dev);
BTUSB_DBG("tasklet_init complete\n");
- INIT_BTUSB_CQ(p_dev->voice_rx_list);
- for (idx = 0; idx < ARRAY_SIZE(p_dev->voice_rx_pkts); idx++)
+ BTUSB_DBG("sizeof(tBTUSB_ISO_ELEMENT)*BTUSB_NUM_OF_VOICE_TX_BUFFERS=%zu\n",
+ sizeof(tBTUSB_ISO_ELEMENT)*BTUSB_NUM_OF_VOICE_TX_BUFFERS);
+ p_dev->p_voicetxIrpList = kzalloc(sizeof(tBTUSB_ISO_ELEMENT)*BTUSB_NUM_OF_VOICE_TX_BUFFERS, GFP_KERNEL);
+ if (p_dev->p_voicetxIrpList == NULL)
{
- p_pkt = &p_dev->voice_rx_pkts[idx];
-#if (GKI_ENABLE_BUF_CORRUPTION_CHECK == TRUE)
- /* write the magic number to allow checking corruption */
- p_pkt->gki_hdr.q_id = GKI_NUM_TOTAL_BUF_POOLS + 1;
- p_pkt->magic = MAGIC_NO;
-#endif
- p_pkt->gki_hdr.status = BUF_STATUS_UNLINKED;
- p_pkt->bt_hdr.event = HCIT_TYPE_SCO_DATA;
+ dev_err(&p_interface->dev, "Out of memory for voice TX\n");
+ return -ENOMEM;
+ }
- if (!btusb_cq_put(&p_dev->voice_rx_list, p_pkt))
- {
- BTUSB_ERR("btusb_cq_put failed\n");
- }
+ for (idx = 0; idx < BTUSB_NUM_OF_VOICE_TX_BUFFERS; idx++)
+ {
+ p_dev->p_voicetxIrpList[idx].packet = kmalloc(BTUSB_MAXIMUM_TX_VOICE_SIZE, GFP_KERNEL);
+ if (p_dev->p_voicetxIrpList[idx].packet == NULL)
+ return -ENOMEM;
}
p_dev->kterm.c_line = N_HCI;
@@ -1395,7 +1412,7 @@ static int btusb_create(struct btusb *p_dev, struct usb_interface *p_interface,
p_dev->kterm.c_cc[VEOF] = 4;
p_dev->kterm.c_cc[VMIN] = 1;
- /* check if there is a WiFi interface in the same device */
+ // check if there is a WiFi interface in the same device
p_config = p_dev->p_udev->actconfig;
for (idx = 1; idx < p_config->desc.bNumInterfaces; idx++)
{
@@ -1408,13 +1425,20 @@ static int btusb_create(struct btusb *p_dev, struct usb_interface *p_interface,
}
}
- /* set quirks */
+ // set quirks
if (p_dev->issharedusb)
{
- /* all shared USB devices need a ZLP to be sent in TX */
+ // all shared USB devices need a ZLP to be sent in TX
p_dev->quirks |= BTUSB_QUIRK_ZLP_TX_REQ;
- }
+ if ((le16_to_cpu(p_dev->p_udev->descriptor.idVendor) == 0x0A5C) &&
+ (le16_to_cpu(p_dev->p_udev->descriptor.idProduct) == 0x0BDC))
+ {
+ // the 43242 has a specific bug that needs to append 1 byte because it
+ // can not send ZLP
+ p_dev->quirks |= BTUSB_QUIRK_ZLP_RX_WA;
+ }
+ }
return 0;
}
@@ -1431,8 +1455,8 @@ static int btusb_create(struct btusb *p_dev, struct usb_interface *p_interface,
*******************************************************************************/
void btusb_delete(struct kref *kref)
{
- struct btusb *p_dev = container_of(kref, struct btusb, kref);
- struct btusb_trans *p_trans;
+ tBTUSB_CB *p_dev = container_of(kref, tBTUSB_CB, kref);
+ tBTUSB_TRANSACTION *p_trans;
BT_HDR *p_buf = NULL;
int idx;
@@ -1442,7 +1466,7 @@ void btusb_delete(struct kref *kref)
btusb_lite_stop_all(p_dev);
#endif
- /* stop tx_task and then remove any data packets from tx_q */
+ // stop tx_task and then remove any data packets from tx_q
tasklet_kill(&p_dev->tx_task);
BTUSB_DBG("tasklet_kill complete\n");
@@ -1455,7 +1479,7 @@ void btusb_delete(struct kref *kref)
while ((p_buf = (BT_HDR *) GKI_dequeue(&p_dev->rx_queue)) != NULL)
{
- btusb_rx_dequeued(p_dev, p_buf);
+ btusb_dequeued(p_dev, p_buf);
}
if (p_dev->p_write_msg)
@@ -1465,10 +1489,10 @@ void btusb_delete(struct kref *kref)
BTUSB_DBG("dequeued all remaining buffers from RX Q\n");
- /* ensure that the process is not hanging on select()/poll() */
+ // ensure that the process is not hanging on select()/poll()
wake_up_interruptible(&p_dev->rx_wait_q);
- /* free allocated USB DMA space */
+ // free allocated USB DMA space
BTUSB_ARRAY_FOR_EACH_TRANS(p_dev->cmd_array)
{
BTUSB_BUFFER_FREE(p_dev->p_udev, BTUSB_HCI_MAX_CMD_SIZE,
@@ -1518,18 +1542,21 @@ void btusb_delete(struct kref *kref)
p_trans->dma);
usb_free_urb(p_trans->p_urb);
}
- BTUSB_ARRAY_FOR_EACH_TRANS(p_dev->voice_tx_array)
+ usb_put_dev(p_dev->p_udev);
+
+ for (idx = 0; idx < BTUSB_NUM_OF_VOICE_TX_BUFFERS; idx++)
{
- BTUSB_BUFFER_FREE(p_dev->p_udev, BTUSB_VOICE_BUFFER_MAXSIZE,
- p_trans->dma_buffer,
- p_trans->dma);
- usb_free_urb(p_trans->p_urb);
+ if (p_dev->p_voicetxIrpList[idx].packet)
+ {
+ kfree(p_dev->p_voicetxIrpList[idx].packet);
+ }
}
- usb_put_dev(p_dev->p_udev);
+ if (p_dev->p_voicetxIrpList)
+ {
+ kfree(p_dev->p_voicetxIrpList);
+ }
kfree(p_dev);
-
- GKI_shutdown();
}
@@ -1550,9 +1577,10 @@ static int __init btusb_init(void)
BTUSB_DBG("built %s,%s\n", __DATE__, __TIME__);
- btusb_proc_init();
+ // initialize the GKI
+ GKI_init();
- /* register this driver with the USB subsystem */
+ // register this driver with the USB subsystem
result = usb_register(&btusb_driver);
if (result)
{
@@ -1577,9 +1605,10 @@ static void __exit btusb_exit(void)
{
BTUSB_DBG("enter\n");
- btusb_proc_exit();
+ // shutdown the GKI
+ GKI_shutdown();
- /* deregister this driver from the USB subsystem */
+ // deregister this driver from the USB subsystem
usb_deregister(&btusb_driver);
}
diff --git a/bcm569/src/btusb.o b/bcm569/src/btusb.o
new file mode 100644
index 0000000..1f5807b
--- a/dev/null
+++ b/bcm569/src/btusb.o
@@ -0,0 +1,609 @@
+ELF
+0
+
+ph
+XLb
+8(E
+
+
+
+
+ |
+h
+H
+B
+
+
+
+4<H
+(> T
+
+
+
+ @@
+ 
+ 0
+ lp
+0
+
+
+0b~ⅎ$,p00d
+p
+0
+
+0兎E00F
+l P0
+H (0
+
+ 4
+
+0b~p
+
+
+0 
+0
+
+ 0
+
+4P88
+ E΄n΄ `
+H H
+8 >,,> 
+> V
+ \ 00
+\
+6
+ 00
+
+ P8
+ `
+
+
+
+
+
+
+x 
+X 
+8  0
+
+  0 0
+
+0
+00 .
+|
+
+\ [ !
+
+
+
+X 0(
+
+
+T
+ 0
+
+
+l
+ 0
+
+
+ d<0@0<0a
+
+
+,
+ 0
+= 8 0
+
+
+4
+ 0$
+
+
+P 
+
+
+
+
+
+
+0H
+000
+0|00[
+8 @"8
+8 d4i?
+
+
+
+
+  s
+h
+
+
+ 
+
+|
+ P
+^
+<0
+T
+
+n` 
+
+
+Ѝ
+<0
+T
+
+
+<0
+T
+
+
+
+
+
+
+|
+H
+
+
+
+
+l
+P
+4
+ 
+
+
+$ x`
+ 
+
+
+
+|P 
+X
+D
+
+
+
+
+
+
+
+
+
+
+D
+0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+4
+F
+X
+j
+|
+
+
+#
+I
+
+
+
+A
+
+D
+
+
+
+$'n
+ Z
+l
+
+Q%
+4 &
+
+
+
+:
+:
+:
+3
+BB
+
+9
+]
+
+
+;
+&
+
+G
+/
+9g
+
+
+
+
+l
+
+"
+t
+{
+
+U
+
+$
+ˆ
+
+
+
+n
+;
+
+
+
+
+
+
+3
+
+
+@
+B
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ KQ
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ЀKP
+
+
+
+
+
+N
+
+
+
+
+
+
+
+KPK}
+$KPK}
+
+
+
+
+
+
+
+
+
+
+H
+
+ : ; 
+
+
+
+
+
+
+
+
+
+B
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<
+
+\
+
+x
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+.u.
+.0~..~..~..~f.~./-/-/v. .vf J-v./ .-/-/vJ/ .,/v. .K-v./ .v. .gv./ .-v./ .-/-/vJ/ .,/.~..h1)3*/1Kv -/Lv. /Jy.LE4)02)0*3F/011/M2*x.. .v,2e2yJf0HLO
+.Ni
+
+00,00/IK/0x.nxJ
+.f׻-/lJz.zJh/IK/0
+[.KJ-/-/_JJL1.yJ .w.h.yJh, .JL1
+J024t.//4
+[.Kf(
+
+A "
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+9
+=
+C
+P
+s
+z
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/bcm569/src/btusb_dev.c b/bcm569/src/btusb_dev.c
new file mode 100755
index 0000000..3638b1b
--- a/dev/null
+++ b/bcm569/src/btusb_dev.c
@@ -0,0 +1,2630 @@
+/*
+ *
+ * btusb_dev.c
+ *
+ *
+ *
+ * Copyright (C) 2011-2013 Broadcom Corporation.
+ *
+ *
+ *
+ * This software is licensed under the terms of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation (the "GPL"), and may
+ * be copied, distributed, and modified under those terms.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GPL for more details.
+ *
+ *
+ * A copy of the GPL is available at http://www.broadcom.com/licenses/GPLv2.php
+ * or by writing to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA
+ *
+ *
+ */
+
+#include <linux/module.h>
+#include <linux/poll.h>
+#include <linux/slab.h>
+#include <linux/serial.h>
+
+#include <linux/proc_fs.h>
+#include <linux/seq_file.h>
+
+#include <linux/jiffies.h>
+
+#include "btusb.h"
+
+#include "hcidefs.h"
+
+#include "gki_int.h"
+
+// delay between the voice samples: 3 ms
+#define BTUSB_VOICE_DELAY 3
+
+// local functions declaration
+static int btusb_add_voice_channel(tBTUSB_CB *p_dev, unsigned short sco_handle, unsigned char burst);
+static int btusb_remove_voice_channel(tBTUSB_CB *p_dev, unsigned short sco_handle);
+static int btusb_update_voice_channels(tBTUSB_CB *p_dev);
+static void btusb_update_voice_rx(tBTUSB_CB *p_dev);
+static void btusb_submit_voice_tx(tBTUSB_CB *p_dev, UINT8 *p_data, int len);
+static int btusb_submit_cmd(tBTUSB_CB *p_dev, char *packet, unsigned long length);
+static int btusb_submit_acl(tBTUSB_CB *p_dev, char *packet, unsigned long length);
+static int btusb_submit_diag(tBTUSB_CB *p_dev, char *packet, unsigned long length);
+static int btusb_submit_write_voice(tBTUSB_CB *p_dev, void *p_packet, unsigned long length);
+
+/*******************************************************************************
+ **
+ ** Function btusb_alloc_trans
+ **
+ ** Description Allocate a transaction in the array of transactions.
+ **
+ ** Parameters p_array: array of USB transactions
+ ** size: size of the array of transactions
+ **
+ ** Returns Pointer to the next free transaction, NULL if not found
+ **
+ *******************************************************************************/
+static tBTUSB_TRANSACTION *btusb_alloc_trans(tBTUSB_TRANSACTION *p_array, size_t size)
+{
+ int idx;
+ tBTUSB_TRANSACTION *p_trans;
+
+ for (idx = 0; idx < size; idx++)
+ {
+ p_trans = &p_array[idx];
+ if (p_trans->gki_hdr.status == BUF_STATUS_FREE)
+ {
+ p_trans->gki_hdr.status = BUF_STATUS_UNLINKED;
+ return p_trans;
+ }
+ }
+ return NULL;
+}
+
+/*******************************************************************************
+ **
+ ** Function btusb_dump_data
+ **
+ ** Description Print the data into the kernel messages
+ **
+ ** Parameters p: pointer to the data to print
+ ** len: length of the data to print
+ ** p_title: title to print before the data
+ **
+ ** Returns void
+ **
+ *******************************************************************************/
+void btusb_dump_data(const UINT8 *p, int len, const char *p_title)
+{
+ int idx;
+
+ if (likely((dbgflags & BTUSB_DBG_MSG) == 0))
+ {
+ return;
+ }
+
+ if (p_title)
+ {
+ printk("---------------------- %s ----------------------\n", p_title);
+ }
+
+ printk("%p: ", p);
+
+ for(idx = 0; idx < len; idx++)
+ {
+ printk("%02x ", p[idx]);
+ }
+ printk("\n--------------------------------------------------------------------\n");
+}
+
+/*******************************************************************************
+ **
+ ** Function btusb_voice_stats
+ **
+ ** Description
+ **
+ ** Parameters
+ **
+ ** Returns void
+ **
+ *******************************************************************************/
+void btusb_voice_stats(unsigned long *p_max, unsigned long *p_min,
+ struct timeval *p_result, struct timeval *p_last_time)
+{
+ struct timeval current_time;
+
+ do_gettimeofday(&current_time);
+ // perform the carry for the later subtraction by updating y
+ if (current_time.tv_usec < p_last_time->tv_usec) {
+ int nsec = (p_last_time->tv_usec - current_time.tv_usec) / 1000000 + 1;
+ p_last_time->tv_usec -= 1000000 * nsec;
+ p_last_time->tv_sec += nsec;
+ }
+ if (current_time.tv_usec - p_last_time->tv_usec > 1000000) {
+ int nsec = (current_time.tv_usec - p_last_time->tv_usec) / 1000000;
+ p_last_time->tv_usec += 1000000 * nsec;
+ p_last_time->tv_sec -= nsec;
+ }
+ // compute the time remaining to wait
+ p_result->tv_sec = current_time.tv_sec - p_last_time->tv_sec;
+ p_result->tv_usec = current_time.tv_usec - p_last_time->tv_usec;
+
+ // update the max except the first time where the calculation is wrong
+ // because of the initial value assuming p_last is zero initialized
+ if (p_max != NULL)
+ {
+ if (p_result->tv_usec > *p_max && (p_last_time->tv_sec) && (p_last_time->tv_usec))
+ {
+ *p_max = p_result->tv_usec;
+ }
+ }
+
+ // update the min except the first time where the calculation is wrong
+ // because of the initial value assuming *p_last and p_min are zero initialized
+ if (p_min != NULL)
+ {
+ if ((p_result->tv_usec < *p_min || (*p_min == 0))
+ && (p_last_time->tv_sec) && (p_last_time->tv_usec))
+ {
+ *p_min = p_result->tv_usec;
+ }
+ }
+
+ memcpy(p_last_time, &current_time, sizeof(struct timeval));
+ BTUSB_DBG("btusb_voice_stats len: %lu\n", p_result->tv_usec);
+}
+
+/*******************************************************************************
+ **
+ ** Function btusb_tx_task
+ **
+ ** Description host to controller tasklet
+ **
+ ** Parameters arg:
+ **
+ ** Returns void
+ **
+ *******************************************************************************/
+void btusb_tx_task(unsigned long arg)
+{
+ tBTUSB_CB *p_dev = (tBTUSB_CB *) arg;
+ BT_HDR *p_buf;
+ UINT8 *p_data;
+ UINT8 msg_type;
+
+ // dequeue data packet and submit to transport
+ if (unlikely((p_buf = (BT_HDR *) GKI_dequeue(&p_dev->tx_queue)) == NULL))
+ {
+ BTUSB_DBG("dequeued data = NULL - just return\n");
+ goto reschedule_task;
+ }
+
+ // bypass the header and retrieve the type
+ p_data = (UINT8 *) (p_buf + 1) + p_buf->offset;
+
+ // extract message type
+ STREAM_TO_UINT8(msg_type, p_data);
+ switch (msg_type)
+ {
+ case HCIT_TYPE_SCO_DATA:
+ btusb_submit_voice_tx(p_dev, p_data, p_buf->len - 4);
+ break;
+ case HCIT_TYPE_COMMAND:
+#ifdef BTUSB_LITE
+ /* Filter User's Write operation to catch some commands(VSCs) */
+ if (btusb_lite_hci_cmd_filter(p_dev, p_buf))
+#endif
+ {
+ btusb_submit_cmd(p_dev, p_data, p_buf->len - 1);
+ }
+ break;
+ case HCIT_TYPE_ACL_DATA:
+ btusb_submit_acl(p_dev, p_data, p_buf->len - 1);
+ break;
+ case HCIT_TYPE_LM_DIAG:
+ btusb_submit_diag(p_dev, p_data, p_buf->len - 1);
+ break;
+ }
+ GKI_freebuf(p_buf);
+
+reschedule_task:
+ if (p_dev->tx_queue.count)
+ tasklet_schedule(&p_dev->tx_task);
+ return;
+}
+
+/*******************************************************************************
+ **
+ ** Function btusb_enqueue
+ **
+ ** Description Add a received USB message into the user queue
+ **
+ ** Parameters p_dev: device instance control block
+ ** p_trans: transaction to forward
+ ** hcitype: type of HCI data in the USB transaction
+ **
+ ** Returns void
+ **
+ *******************************************************************************/
+void btusb_enqueue(tBTUSB_CB *p_dev, tBTUSB_TRANSACTION *p_trans, UINT8 hcitype)
+{
+ BT_HDR *p_buf = &p_trans->bt_hdr;
+ struct urb *p_urb = p_trans->p_urb;
+ UINT8 *p = (UINT8 *)p_urb->transfer_buffer;
+ UINT16 len;
+
+ BTUSB_DBG("len = %d\n", p_urb->actual_length);
+
+ switch (hcitype)
+ {
+ case HCIT_TYPE_ACL_DATA:
+ // retrieve the length in the packet header
+ p += 2;
+ STREAM_TO_UINT16(len, p);
+ len += 4;
+ break;
+
+ case HCIT_TYPE_EVENT:
+ // retrieve the length in the packet header
+ p += 1;
+ STREAM_TO_UINT8(len, p);
+ len += 2;
+ break;
+
+ case HCIT_TYPE_LM_DIAG:
+ len = HCIT_LM_DIAG_LENGTH;
+ break;
+
+ default:
+ BTUSB_ERR("Unsupported HCI type: %d\n", hcitype);
+ len = p_urb->actual_length;
+ break;
+ }
+
+ // quirk for the ZLP HW issue
+ if (unlikely(((len % 16) == 0) && (p_dev->quirks & BTUSB_QUIRK_ZLP_RX_WA) &&
+ (p_urb->actual_length == (len + 1))))
+ {
+ BTUSB_DBG("missing ZLP workaround: %d != %d\n", p_urb->actual_length, len);
+ p_urb->actual_length = len;
+ }
+ // check if the length matches that of the ACL packet
+ if (unlikely(len != p_urb->actual_length))
+ {
+ BTUSB_ERR("URB data length does not match packet %d != %d\n", p_urb->actual_length, len);
+ }
+
+ // fill up the header of the message
+ p_buf->event = hcitype;
+ p_buf->len = p_urb->actual_length;
+ p_buf->offset = 0;
+ p_buf->layer_specific &= ~BTUSB_LS_H4_TYPE_SENT;
+
+ // InQ for user-space to read
+ GKI_enqueue(&p_dev->rx_queue, p_buf);
+
+ // if the process is polling, indicate RX event
+ wake_up_interruptible(&p_dev->rx_wait_q);
+}
+
+/*******************************************************************************
+ **
+ ** Function btusb_dequeued
+ **
+ ** Description Figure out what to do with a dequeued message
+ **
+ ** Parameters p_dev: driver control block
+ ** p_msg: dequeued message
+ **
+ ** Returns void
+ **
+ *******************************************************************************/
+void btusb_dequeued(tBTUSB_CB *p_dev, BT_HDR *p_msg)
+{
+ tBTUSB_TRANSACTION *p_trans = container_of(p_msg, tBTUSB_TRANSACTION, bt_hdr);
+
+ switch (p_msg->event)
+ {
+ case HCIT_TYPE_ACL_DATA:
+ if (unlikely(btusb_submit(p_dev, &p_dev->acl_rx_submitted, p_trans, GFP_KERNEL)))
+ p_dev->stats.acl_rx_submit_err++;
+ else
+ p_dev->stats.acl_rx_submit_ok++;
+ break;
+
+ case HCIT_TYPE_EVENT:
+#if defined(BTUSB_LITE)
+ // when BTUSB_LITE is defined, EVT may be resubmitted from IRQ context
+ if (unlikely(btusb_submit(p_dev, &p_dev->event_submitted, p_trans, GFP_ATOMIC)))
+#else
+ if (unlikely(btusb_submit(p_dev, &p_dev->event_submitted, p_trans, GFP_KERNEL)))
+#endif
+ p_dev->stats.event_submit_err++;
+ else
+ p_dev->stats.event_submit_ok++;
+ break;
+
+ case HCIT_TYPE_LM_DIAG:
+ if (unlikely(btusb_submit(p_dev, &p_dev->diag_rx_submitted, p_trans, GFP_KERNEL)))
+ p_dev->stats.diag_rx_submit_err++;
+ else
+ p_dev->stats.diag_rx_submit_ok++;
+ break;
+
+ default:
+ GKI_freebuf(p_msg);
+ break;
+ }
+}
+
+/*******************************************************************************
+ **
+ ** Function btusb_open
+ **
+ ** Description User mode open callback
+ **
+ *******************************************************************************/
+int btusb_open(struct inode *inode, struct file *file)
+{
+ tBTUSB_CB *p_dev;
+ struct usb_interface *interface;
+ int subminor;
+ int retval = 0;
+ BT_HDR *p_buf;
+
+ BTUSB_INFO("enter\n");
+
+ // retrieve the minor for this inode
+ subminor = iminor(inode);
+
+ // retrieve the USB interface attached to this minor
+ interface = usb_find_interface(&btusb_driver, subminor);
+ if (!interface)
+ {
+ BTUSB_ERR("can't find interface for minor %d\n", subminor);
+ retval = -ENODEV;
+ goto exit;
+ }
+ BTUSB_INFO("minor %u\n", subminor);
+
+ // retrieve the device driver structure pointer
+ p_dev = usb_get_intfdata(interface);
+ BTUSB_INFO("p_dev=%p\n", p_dev);
+ if (!p_dev)
+ {
+ BTUSB_ERR("can't find device\n");
+ retval = -ENODEV;
+ goto exit;
+ }
+
+ mutex_lock(&p_dev->open_mutex);
+ if (p_dev->opened)
+ {
+ mutex_unlock(&p_dev->open_mutex);
+ BTUSB_ERR("multiple open not allowed %d\n", p_dev->opened);
+ retval = -EBUSY;
+ goto exit;
+ }
+ // save our object in the file's private structure
+ file->private_data = p_dev;
+ p_dev->opened = true;
+ mutex_unlock(&p_dev->open_mutex);
+
+ // increment our usage count for the device
+ BTUSB_INFO("kref_get -> &p_dev->kref 0x%p\n", &p_dev->kref);
+ kref_get(&p_dev->kref);
+
+ // free all pending messages in Rx queue
+ BTUSB_DBG("Free Rx Queue count:%d\n", p_dev->rx_queue.count);
+ while ((p_buf = (BT_HDR *)GKI_dequeue(&p_dev->rx_queue)) != NULL)
+ {
+ btusb_dequeued(p_dev, p_buf);
+ }
+
+exit:
+ return retval;
+}
+
+/*******************************************************************************
+ **
+ ** Function btusb_release
+ **
+ ** Description User mode close callback
+ **
+ *******************************************************************************/
+int btusb_release(struct inode *inode, struct file *file)
+{
+ tBTUSB_CB *p_dev;
+ BT_HDR *p_buf = NULL;
+ int idx;
+
+ BTUSB_INFO("enter\n");
+
+ p_dev = (tBTUSB_CB *) file->private_data;
+ BTUSB_INFO("p_dev=%p\n", p_dev);
+ if (p_dev == NULL)
+ {
+ BTUSB_ERR("can't find device\n");
+ return -ENODEV;
+ }
+
+#ifdef BTUSB_LITE
+ btusb_lite_stop_all(p_dev);
+#endif
+
+ // indicate driver is closed
+ mutex_lock(&p_dev->open_mutex);
+ p_dev->opened = false;
+ mutex_unlock(&p_dev->open_mutex);
+
+ // free all the pending elements
+ while ((p_buf = (BT_HDR *) GKI_dequeue(&p_dev->tx_queue)) != NULL)
+ {
+ GKI_freebuf(p_buf);
+ }
+
+ while ((p_buf = (BT_HDR *) GKI_dequeue(&p_dev->rx_queue)) != NULL)
+ {
+ btusb_dequeued(p_dev, p_buf);
+ }
+
+ // ensure there is no process hanging on poll / select
+ wake_up_interruptible(&p_dev->rx_wait_q);
+
+ for (idx = 0; idx < ARRAY_SIZE(p_dev->voice_channels); idx++)
+ {
+ if (p_dev->voice_channels[idx].used)
+ {
+ if (btusb_remove_voice_channel(p_dev, p_dev->voice_channels[idx].info.sco_handle))
+ {
+ BTUSB_ERR("btusb_remove_voice_channel failed\n");
+ }
+ }
+ }
+
+ for (idx = 0; idx < BTUSB_NUM_OF_VOICE_TX_BUFFERS; idx++)
+ {
+ p_dev->p_voicetxIrpList[idx].used = 0;
+ }
+
+ // decrement the usage count on our device
+ BTUSB_INFO("kref_put -> &p_dev->kref 0x%p\n", &p_dev->kref);
+ kref_put(&p_dev->kref, btusb_delete);
+
+ return 0;
+}
+
+/*******************************************************************************
+ **
+ ** Function btusb_get_rx_packet
+ **
+ ** Description Get (extract) next buffer to sent to User Space
+ **
+ *******************************************************************************/
+static BT_HDR *btusb_get_rx_packet(struct btusb_cb *p_dev)
+{
+ // if there is a pending Rx buffer
+ if (p_dev->p_rx_msg)
+ {
+ return p_dev->p_rx_msg;
+ }
+#ifdef BTUSB_LITE
+ /* If HCI is over IPC */
+ if (btusb_lite_is_hci_over_ipc(p_dev))
+ {
+ return NULL;
+ }
+#endif
+
+ // dequeue the next buffer and store its reference
+ p_dev->p_rx_msg = GKI_dequeue(&p_dev->rx_queue);
+
+ return p_dev->p_rx_msg;
+}
+
+/*******************************************************************************
+ **
+ ** Function btusb_free_rx_packet
+ **
+ ** Description Free buffer sent to User Space
+ **
+ *******************************************************************************/
+static void btusb_free_rx_packet(struct btusb_cb *p_dev, BT_HDR *p_msg)
+{
+ if (unlikely(p_msg != p_dev->p_rx_msg))
+ {
+ BTUSB_ERR("Dequeued buffer (%p) does not matched working buffer (%p)\n",
+ p_msg, p_dev->p_rx_msg);
+ }
+
+ p_dev->p_rx_msg = NULL;
+
+ if (unlikely(p_msg->layer_specific & BTUSB_LS_GKI_BUFFER))
+ {
+ GKI_freebuf(p_msg);
+ }
+ else
+ {
+ // buffer received from USB -> resubmit
+ btusb_dequeued(p_dev, p_msg);
+ }
+}
+
+/*******************************************************************************
+ **
+ ** Function btusb_get_rx_packet_buffer
+ **
+ ** Description Get pointer address of data to send to User Space
+ **
+ *******************************************************************************/
+static UINT8 *btusb_get_rx_packet_buffer(struct btusb_cb *p_dev, BT_HDR *p_msg)
+{
+ tBTUSB_TRANSACTION *p_trans;
+
+ switch(p_msg->event)
+ {
+ case HCIT_TYPE_ACL_DATA:
+ case HCIT_TYPE_EVENT:
+ case HCIT_TYPE_LM_DIAG:
+ if (unlikely(p_msg->layer_specific & BTUSB_LS_GKI_BUFFER))
+ {
+ return ((char *)(p_msg + 1) + p_msg->offset);
+ }
+ else
+ {
+ p_trans = container_of(p_msg, tBTUSB_TRANSACTION, bt_hdr);
+ return (p_trans->dma_buffer + p_msg->offset);
+ }
+ default: // SCO etc...
+ return ((char *)(p_msg + 1) + p_msg->offset);
+ }
+}
+
+/*******************************************************************************
+ **
+ ** Function btusb_read
+ **
+ ** Description User mode read
+ **
+ ** Returns Number of bytes read, error number if negative
+ **
+ *******************************************************************************/
+ssize_t btusb_read(struct file *file, char __user *buffer, size_t count, loff_t *ppos)
+{
+ tBTUSB_CB *p_dev = (tBTUSB_CB *)file->private_data;
+ UINT16 len;
+ size_t remainder = count;
+ BT_HDR *p_buf = NULL;
+ char *p_data;
+ char type;
+ int retval;
+
+ BTUSB_DBG("p_dev=%p count=%zu\n", p_dev, count);
+ if (unlikely(p_dev == NULL))
+ {
+ BTUSB_ERR("can't find device\n");
+ return -ENODEV;
+ }
+
+ if (unlikely(!p_dev->p_main_intf))
+ {
+ BTUSB_ERR("device unplugged\n");
+ return -ENODEV;
+ }
+
+ if (unlikely(!p_dev->opened))
+ {
+ BTUSB_ERR("driver is not open\n");
+ return -EINVAL;
+ }
+
+ // if read is non blocking and there is no data
+ if (unlikely((file->f_flags & O_NONBLOCK) && (btusb_get_rx_packet(p_dev) == NULL)))
+ {
+ BTUSB_INFO("Non blocking read without any data\n");
+ return -EAGAIN;
+ }
+
+ // wait for an event
+ retval = wait_event_interruptible(p_dev->rx_wait_q,
+ ((p_buf = btusb_get_rx_packet(p_dev)) != NULL));
+ if (unlikely(retval))
+ {
+ BTUSB_DBG("read wait interrupted\n");
+ return retval;
+ }
+ BTUSB_DBG("buffer=%p len=%u ls=%u\n", p_buf, p_buf->len, p_buf->layer_specific);
+
+ switch(p_buf->event)
+ {
+ case HCIT_TYPE_ACL_DATA:
+ case HCIT_TYPE_EVENT:
+ case HCIT_TYPE_LM_DIAG:
+ // if this is the first time buffer is picked, add HCI header in user space
+ if (likely(!(p_buf->layer_specific & BTUSB_LS_H4_TYPE_SENT)))
+ {
+ if (likely(remainder >= 1))
+ {
+ type = p_buf->event;
+ // add the H4 packet header
+ if (unlikely(copy_to_user(buffer, &type, 1)))
+ {
+ BTUSB_ERR("copy to user error\n");
+ return -EINVAL;
+ }
+ buffer += 1;
+ remainder -= 1;
+ }
+ else
+ {
+ BTUSB_ERR("Not enough space to copy H4 ACL header\n");
+ goto read_end;
+ }
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ // retrieve address of the next data to send (depends on event)
+ p_data = btusb_get_rx_packet_buffer(p_dev, p_buf);
+
+ // take the min of remainder and p_buf length
+ if (likely(p_buf->len < remainder))
+ {
+ len = p_buf->len;
+ }
+ else
+ {
+ len = remainder;
+ }
+
+ // copy the message data to the available user space
+ if (unlikely(copy_to_user(buffer, p_data, len)))
+ {
+ BTUSB_ERR("copy to user error\n");
+ return -EINVAL;
+ }
+ remainder -= len;
+ p_buf->len -= len;
+ p_buf->offset += len;
+ p_buf->layer_specific |= BTUSB_LS_H4_TYPE_SENT;
+
+ // free the first buffer if it is empty
+ if (likely(p_buf->len == 0))
+ {
+ // free (fake event) or resubmit (real USB buffer) the buffer sent to app
+ btusb_free_rx_packet(p_dev, p_buf);
+ }
+
+read_end:
+ return (count - remainder);
+}
+
+/*******************************************************************************
+ **
+ ** Function btusb_write
+ **
+ ** Description User mode write
+ **
+ ** Returns Number of bytes written, error number if negative
+ **
+ *******************************************************************************/
+ssize_t btusb_write(struct file *file, const char __user *user_buffer, size_t count, loff_t *ppos)
+{
+ tBTUSB_CB *p_dev;
+ BT_HDR *p_msg;
+ UINT8 *p_data;
+ size_t remainder = count;
+ int err;
+ UINT16 appended, len;
+
+ p_dev = (tBTUSB_CB *)file->private_data;
+
+ BTUSB_DBG("p_dev=%p count=%zu\n", p_dev, count);
+
+ if (unlikely(p_dev == NULL))
+ {
+ BTUSB_ERR("can't find device\n");
+ return -ENODEV;
+ }
+
+ if (unlikely(!p_dev->p_main_intf))
+ {
+ BTUSB_ERR("device unplugged\n");
+ return -ENODEV;
+ }
+
+ if (unlikely(!p_dev->opened))
+ {
+ return -EINVAL;
+ }
+
+ if (unlikely(count == 0))
+ {
+ return 0;
+ }
+
+ // check that the incoming data is good
+ if (unlikely(!access_ok(VERIFY_READ, (void *)user_buffer, count)))
+ {
+ BTUSB_ERR("buffer access verification failed\n");
+ return -EFAULT;
+ }
+
+ while (remainder)
+ {
+ BTUSB_DBG("remain=%zu p_write_msg=%p\n", remainder, p_dev->p_write_msg);
+ // check if there is already an active transmission buffer
+ p_msg = p_dev->p_write_msg;
+ if (likely(!p_msg))
+ {
+ // get a buffer from the pool
+ p_msg = (BT_HDR *)GKI_getbuf(sizeof(BT_HDR) + BTUSB_H4_MAX_SIZE);
+ if (unlikely(!p_msg))
+ {
+ BTUSB_ERR("unable to get GKI buffer - write failed\n");
+ return -EINVAL;
+ }
+ if (unlikely(dbgflags & BTUSB_GKI_CHK_MSG) &&
+ unlikely(GKI_buffer_status(p_msg) != BUF_STATUS_UNLINKED))
+ {
+ BTUSB_ERR("buffer != BUF_STATUS_UNLINKED 0x%p\n", p_msg);
+ return -EINVAL;
+ }
+ p_dev->p_write_msg = p_msg;
+
+ p_msg->event = 0;
+ p_msg->len = 0;
+ p_msg->offset = 0;
+ p_msg->layer_specific = 0;
+ }
+ p_data = (UINT8 *)(p_msg + 1) + p_msg->offset;
+
+ // append the entire data to the buffer (not exceeding buffer length)
+ if (likely(remainder < (BTUSB_H4_MAX_SIZE - p_msg->len)))
+ appended = remainder;
+ else
+ appended = BTUSB_H4_MAX_SIZE - p_msg->len;
+ if (unlikely(copy_from_user(p_data + p_msg->len, (void *)user_buffer, appended)))
+ {
+ BTUSB_ERR("copy from user error\n");
+ return -EINVAL;
+ }
+ BTUSB_DBG("msg_len=%u appended=%u\n", p_msg->len, appended);
+
+ // update the size of the buffer
+ p_msg->len += appended;
+
+ // compute the real HCI packet length (by default 0xFFFF to mark incomplete)
+ len = 0xFFFF;
+ switch(p_data[0])
+ {
+ case HCIT_TYPE_SCO_DATA:
+ case HCIT_TYPE_COMMAND:
+ if (likely(p_msg->len >= 4))
+ {
+ // bypass HCI type + opcode/connection handle
+ p_data += 3;
+ STREAM_TO_UINT8(len, p_data);
+ len += 4;
+ BTUSB_DBG("SCO/CMD len=%u cur=%u\n", len, p_msg->len);
+ }
+ break;
+ case HCIT_TYPE_ACL_DATA:
+ if (likely(p_msg->len >= 5))
+ {
+ // bypass HCI type + connection handle
+ p_data += 3;
+ STREAM_TO_UINT16(len, p_data);
+ len += 5;
+ // sanity check : ACL buffer should not be larger than supported
+ if (unlikely(len > BTUSB_H4_MAX_SIZE))
+ {
+ BTUSB_ERR("ACL packet too long (%u)\n", len);
+ GKI_freebuf(p_dev->p_write_msg);
+ p_dev->p_write_msg = NULL;
+ return -EINVAL;
+ }
+ BTUSB_DBG("ACL len=%u cur=%u\n", len, p_msg->len);
+ }
+ break;
+ case HCIT_TYPE_LM_DIAG:
+ // this packet does not have a length, so just send everything
+ len = p_msg->len;
+ BTUSB_DBG("DIAG len=%u cur=%u\n", len, p_msg->len);
+ break;
+ default:
+ BTUSB_ERR("unsupported packet type\n");
+ return count;
+ break;
+ }
+ // check if the buffer length exceeds the packet length
+ if (likely(p_msg->len >= len))
+ {
+ // remove the extra data (belonging to next HCI packet)
+ if (unlikely(p_msg->len > len))
+ {
+ // remove exceeding data
+ appended -= p_msg->len - len;
+ // set len to computed HCI packet length
+ p_msg->len = len;
+ }
+ if (autopm)
+ {
+ err = usb_autopm_get_interface(p_dev->p_main_intf);
+ if (unlikely(err < 0))
+ {
+ BTUSB_ERR("autopm failed\n");
+ autopm = 0;
+ }
+ }
+
+ // add the incoming data and notify the btusb_tx_task to process
+ GKI_enqueue(&p_dev->tx_queue, p_msg);
+
+ // wake up tasklet
+ tasklet_schedule(&p_dev->tx_task);
+
+ // new write message
+ p_dev->p_write_msg = NULL;
+ }
+ remainder -= appended;
+ user_buffer += appended;
+ }
+
+ return count;
+}
+
+/*******************************************************************************
+ **
+ ** Function btusb_poll
+ **
+ ** Description Poll callback (to implement select)
+ **
+ ** Parameters file : file structure of the opened instance
+ ** p_pt : poll table to which the local queue must be added
+ **
+ ** Returns Mask of the type of polling supported, error number if negative
+ **
+ *******************************************************************************/
+unsigned int btusb_poll(struct file *file, struct poll_table_struct *p_pt)
+{
+ tBTUSB_CB *p_dev;
+ unsigned int mask;
+
+ BTUSB_DBG("enter\n");
+
+ // retrieve the device from the file pointer
+ p_dev = (tBTUSB_CB *) file->private_data;
+ BTUSB_DBG("p_dev=%p\n", p_dev);
+ if (unlikely(p_dev == NULL))
+ {
+ BTUSB_ERR("can't find device\n");
+ return -ENODEV;
+ }
+
+ // check if the device was disconnected
+ if (unlikely(!p_dev->p_main_intf))
+ {
+ BTUSB_ERR("device unplugged\n");
+ return -ENODEV;
+ }
+
+ if (unlikely(!p_dev->opened))
+ {
+ return -EINVAL;
+ }
+
+ // indicate to the system on which queue it should poll (non blocking call)
+ poll_wait(file, &p_dev->rx_wait_q, p_pt);
+
+ // enable WRITE (select/poll is not write blocking)
+ mask = POLLOUT | POLLWRNORM;
+
+ // enable READ only if data is queued from HCI
+ if (btusb_get_rx_packet(p_dev))
+ {
+ mask |= POLLIN | POLLRDNORM;
+ }
+
+ return mask;
+}
+
+/*******************************************************************************
+ **
+ ** Function btusb_print_voice_stat
+ **
+ ** Description SCO print voice stats
+ **
+ ** Parameters p_stat buffer holding the statistic to display.
+ **
+ ** Returns void.
+ **
+ *******************************************************************************/
+void btusb_print_voice_stat(tBTUSB_STATS * p_stat)
+{
+ printk("______________btusb_print_voice_stat______________\n");
+
+ printk("Number of voice reqs submitted USB stack %lu\n", p_stat->voicerx_submitted);
+ printk("Number of voice rx submitted in error %lu\n", p_stat->voicerx_submitted_error);
+ printk("Number of voice req completions from the USB software stack %lu\n", p_stat->voicerx_completed);
+ printk("Number of Voice req completions in error %lu\n", p_stat->voicerx_completed_error);
+ printk("Voice frames discarded due to bad status %lu\n", p_stat->voicerx_bad_packets);
+ printk("Voice frames discarded due to no headers in data %lu\n", p_stat->voicerx_disc_nohdr);
+
+ printk("Raw bytes received %lu\n",p_stat->voicerx_raw_bytes);
+ printk("Skipped bytes because no header matched %lu\n",p_stat->voicerx_skipped_bytes);
+ printk("Number of Voice Tx reqs submitted %lu\n",p_stat->voicetx_submitted);
+ printk("Number of voice tx submitted in error %lu\n",p_stat->voicetx_submitted_error);
+ printk("Number of Voice Tx reqs completed %lu\n",p_stat->voicetx_completed);
+ printk("Number of Voice Tx reqs completed in error %lu\n",p_stat->voicetx_completed_error);
+ printk("Number of Voice Tx not submitted due to no room on the tx queue %lu\n",
+ p_stat->voicetx_disc_nobuf);
+ printk("Number of Voice tx not submitted due to too long data %lu\n",
+ p_stat->voicetx_disc_toolong);
+
+ printk("voice pending counter %lu, max %lu\n", p_stat->voice_tx_cnt, p_stat->voice_max_tx_cnt);
+ p_stat->voice_tx_cnt=0;p_stat->voice_max_tx_cnt=0;
+
+ printk("Delta time between voice tx_done routine in us max: %lu, min: %lu\n", p_stat->voice_max_tx_done_delta_time, p_stat->voice_min_tx_done_delta_time);
+ memset(&(p_stat->voice_tx_done_delta_time) , 0, sizeof(struct timeval));
+ memset(&(p_stat->voice_last_tx_done_ts) , 0, sizeof(struct timeval));
+ p_stat->voice_max_tx_done_delta_time = 0;
+ p_stat->voice_min_tx_done_delta_time = 0;
+
+ printk("Delta time between voice tx feeding routine in us max: %lu, min: %lu\n", p_stat->voice_max_rx_feeding_interval, p_stat->voice_min_rx_feeding_interval);
+ memset(&(p_stat->voice_rx_feeding_interval) , 0, sizeof(struct timeval));
+ memset(&(p_stat->voice_last_rx_feeding_ts) , 0, sizeof(struct timeval));
+ p_stat->voice_max_rx_feeding_interval = 0;
+ p_stat->voice_min_rx_feeding_interval = 0;
+
+ printk("Delta time between voice rx_rdy routine max in us: %lu, min : %lu\n", p_stat->voice_max_rx_rdy_delta_time, p_stat->voice_min_rx_rdy_delta_time);
+ memset(&(p_stat->voice_rx_rdy_delta_time) , 0, sizeof(struct timeval));
+ memset(&(p_stat->voice_last_rx_rdy_ts) , 0, sizeof(struct timeval));
+ p_stat->voice_max_rx_rdy_delta_time = 0;
+ p_stat->voice_min_rx_rdy_delta_time = 0;
+
+ printk("_______________________________________________________\n");
+}
+
+#define BTUSB_RETURN_STR(__c) case __c: return #__c
+static const char *btusb_ioctl_string(unsigned int cmd)
+{
+ switch(cmd)
+ {
+ BTUSB_RETURN_STR(IOCTL_BTWUSB_GET_STATS);
+ BTUSB_RETURN_STR(IOCTL_BTWUSB_CLEAR_STATS);
+ BTUSB_RETURN_STR(IOCTL_BTWUSB_ADD_VOICE_CHANNEL);
+ BTUSB_RETURN_STR(IOCTL_BTWUSB_REMOVE_VOICE_CHANNEL);
+ BTUSB_RETURN_STR(TCGETS);
+ BTUSB_RETURN_STR(TCSETS);
+ BTUSB_RETURN_STR(TCSETSW);
+ BTUSB_RETURN_STR(TCSETSF);
+ BTUSB_RETURN_STR(TCGETA);
+ BTUSB_RETURN_STR(TCSETA);
+ BTUSB_RETURN_STR(TCSETAW);
+ BTUSB_RETURN_STR(TCSETAF);
+ BTUSB_RETURN_STR(TCSBRK);
+ BTUSB_RETURN_STR(TCXONC);
+ BTUSB_RETURN_STR(TCFLSH);
+ BTUSB_RETURN_STR(TIOCGSOFTCAR);
+ BTUSB_RETURN_STR(TIOCSSOFTCAR);
+ BTUSB_RETURN_STR(TIOCGLCKTRMIOS);
+ BTUSB_RETURN_STR(TIOCSLCKTRMIOS);
+#ifdef TIOCGETP
+ BTUSB_RETURN_STR(TIOCGETP);
+ BTUSB_RETURN_STR(TIOCSETP);
+ BTUSB_RETURN_STR(TIOCSETN);
+#endif
+#ifdef TIOCGETC
+ BTUSB_RETURN_STR(TIOCGETC);
+ BTUSB_RETURN_STR(TIOCSETC);
+#endif
+#ifdef TIOCGLTC
+ BTUSB_RETURN_STR(TIOCGLTC);
+ BTUSB_RETURN_STR(TIOCSLTC);
+#endif
+#ifdef TCGETX
+ BTUSB_RETURN_STR(TCGETX);
+ BTUSB_RETURN_STR(TCSETX);
+ BTUSB_RETURN_STR(TCSETXW);
+ BTUSB_RETURN_STR(TCSETXF);
+#endif
+ BTUSB_RETURN_STR(TIOCMGET);
+ BTUSB_RETURN_STR(TIOCMSET);
+ BTUSB_RETURN_STR(TIOCGSERIAL);
+ BTUSB_RETURN_STR(TIOCMIWAIT);
+ BTUSB_RETURN_STR(TIOCMBIC);
+ BTUSB_RETURN_STR(TIOCMBIS);
+ default:
+ return "unknwown";
+ }
+}
+
+/*******************************************************************************
+ **
+ ** Function btusb_ioctl
+ **
+ ** Description User mode ioctl
+ **
+ ** Parameters
+ **
+ ** Returns 0 upon success or an error code.
+ **
+ *******************************************************************************/
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)
+long btusb_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
+#else
+int btusb_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg)
+#endif
+{
+ const char *s_cmd;
+ tBTUSB_CB *p_dev;
+ tBTUSB_SCO_INFO sco_info;
+ int retval = 0;
+
+ s_cmd = btusb_ioctl_string(cmd);
+
+ BTUSB_INFO("cmd=%s\n", s_cmd);
+
+ p_dev = (tBTUSB_CB *) file->private_data;
+ BTUSB_INFO("p_dev=%p\n", p_dev);
+ if (p_dev == NULL)
+ {
+ BTUSB_ERR("can't find device\n");
+ return -ENODEV;
+ }
+
+ // check if the device was disconnected
+ if (unlikely(!p_dev->p_main_intf))
+ {
+ BTUSB_ERR("device unplugged\n");
+ return -ENODEV;
+ }
+
+ switch (cmd)
+ {
+ case IOCTL_BTWUSB_GET_STATS:
+ if (copy_to_user((void *) arg, &p_dev->stats, sizeof(tBTUSB_STATS)))
+ {
+ retval = -EFAULT;
+ goto err_out;
+ }
+ break;
+
+ case IOCTL_BTWUSB_CLEAR_STATS:
+ memset(&p_dev->stats, 0, sizeof(tBTUSB_STATS));
+ break;
+
+ case IOCTL_BTWUSB_ADD_VOICE_CHANNEL:
+ if (copy_from_user(&sco_info, (void *) arg, sizeof(sco_info)))
+ {
+ BTUSB_ERR("BTUSB_IOCTL_ADD_VOICE_CHANNEL failed getting 1st par\n");
+ retval = -EFAULT;
+ goto err_out;
+ }
+ return btusb_add_voice_channel(p_dev, sco_info.sco_handle, sco_info.burst);
+
+ case IOCTL_BTWUSB_REMOVE_VOICE_CHANNEL:
+ if (copy_from_user(&sco_info, (void *) arg, sizeof(sco_info)))
+ {
+ BTUSB_ERR("BTUSB_IOCTL_ADD_VOICE_CHANNEL failed getting 1st par\n");
+ retval = -EFAULT;
+ goto err_out;
+ }
+ return btusb_remove_voice_channel(p_dev, sco_info.sco_handle);
+
+ case TCGETS:
+ /* dummy support of TTY IOCTLs */
+ if (!arg)
+ {
+ retval = -EFAULT;
+ goto err_out;
+ }
+#ifndef TCGETS2
+ if (kernel_termios_to_user_termios((struct termios __user *)arg, &p_dev->kterm))
+#else
+ if (kernel_termios_to_user_termios_1((struct termios __user *)arg, &p_dev->kterm))
+#endif
+ {
+ BTUSB_ERR("failure copying termios\n");
+ retval = -EFAULT;
+ goto err_out;
+ }
+ break;
+
+ case TCSETSW:
+ case TCSETS:
+ if (!arg)
+ {
+ retval = -EFAULT;
+ goto err_out;
+ }
+#ifndef TCGETS2
+ if (user_termios_to_kernel_termios(&p_dev->kterm, (struct termios __user *)arg))
+#else
+ if (user_termios_to_kernel_termios_1(&p_dev->kterm, (struct termios __user *)arg))
+#endif
+ {
+ retval = -EFAULT;
+ goto err_out;
+ }
+ break;
+
+ case TCSETSF:
+ case TCGETA:
+ case TCSETA:
+ case TCSETAW:
+ case TCSETAF:
+ case TCSBRK:
+ case TCXONC:
+ case TCFLSH:
+ case TIOCGSOFTCAR:
+ case TIOCSSOFTCAR:
+ case TIOCGLCKTRMIOS:
+ case TIOCSLCKTRMIOS:
+#ifdef TIOCGETP
+ case TIOCGETP:
+ case TIOCSETP:
+ case TIOCSETN:
+#endif
+#ifdef TIOCGETC
+ case TIOCGETC:
+ case TIOCSETC:
+#endif
+#ifdef TIOCGLTC
+ case TIOCGLTC:
+ case TIOCSLTC:
+#endif
+#ifdef TCGETX
+ case TCGETX:
+ case TCSETX:
+ case TCSETXW:
+ case TCSETXF:
+#endif
+ case TIOCMSET:
+ case TIOCMBIC:
+ case TIOCMBIS:
+ /* dummy support of TTY IOCTLs */
+ BTUSB_DBG("TTY ioctl not implemented\n");
+ break;
+
+ case TIOCGSERIAL:
+ {
+ struct serial_struct tmp;
+ if (!arg)
+ {
+ retval = -EFAULT;
+ goto err_out;
+ }
+ memset(&tmp, 0, sizeof(tmp));
+ tmp.type = 0;
+ tmp.line = 0;
+ tmp.port = 0;
+ tmp.irq = 0;
+ tmp.flags = ASYNC_SKIP_TEST | ASYNC_AUTO_IRQ;
+ tmp.xmit_fifo_size = 4096;
+ tmp.baud_base = 115200;
+ tmp.close_delay = 5*HZ;
+ tmp.closing_wait = 30*HZ;
+ tmp.custom_divisor = 0;
+ tmp.hub6 = 0;
+ tmp.io_type = 0;
+ if (copy_to_user((void __user *)arg, &tmp, sizeof(tmp)))
+ {
+ retval = -EFAULT;
+ goto err_out;
+ }
+ retval = 0;
+ break;
+ }
+
+ case TIOCMGET:
+ {
+ int tiocm = TIOCM_RTS | TIOCM_CTS;
+ if (!arg)
+ {
+ retval = -EFAULT;
+ goto err_out;
+ }
+
+ if (copy_to_user((void __user *)arg, &tiocm, sizeof(tiocm)))
+ {
+ retval = -EFAULT;
+ goto err_out;
+ }
+ retval = 0;
+ break;
+ }
+
+ case TIOCMIWAIT:
+ {
+ DECLARE_WAITQUEUE(wait, current);
+
+ BTUSB_DBG("arg = %lu\n", arg);
+ while (1)
+ {
+ BTUSB_DBG("adding task to wait list\n");
+ add_wait_queue(&p_dev->rx_wait_q, &wait);
+ set_current_state(TASK_INTERRUPTIBLE);
+ schedule();
+ BTUSB_DBG("removing task from wait list\n");
+ remove_wait_queue(&p_dev->rx_wait_q, &wait);
+ /* see if a signal woke us up */
+ if (signal_pending(current))
+ {
+ BTUSB_ERR("signal was pending\n");
+ retval = -ERESTARTSYS;
+ goto err_out;
+ }
+ // do not check the expected signals
+ retval = 0;
+ break;
+ }
+ break;
+ }
+ default:
+ BTUSB_ERR("unknown cmd %u\n", cmd);
+ retval = -ENOIOCTLCMD;
+ break;
+ }
+
+err_out:
+ BTUSB_DBG("returning %d\n", retval);
+ return retval;
+}
+
+/*******************************************************************************
+ **
+ ** Function btusb_write_complete
+ **
+ ** Description Data write (bulk pipe) completion routine
+ **
+ ** Parameters urb pointer
+ **
+ ** Returns void
+ **
+ *******************************************************************************/
+void btusb_write_complete(struct urb *p_urb)
+{
+ tBTUSB_TRANSACTION *p_trans = p_urb->context;
+ tBTUSB_CB *p_dev = p_trans->context;
+
+ BTUSB_DBG("status %d length %u flags %x\n", p_urb->status,
+ p_urb->transfer_buffer_length, p_urb->transfer_flags);
+
+ p_trans->gki_hdr.status = BUF_STATUS_FREE;
+
+ if (unlikely(p_urb->status))
+ {
+ p_dev->stats.writes_completed_error++;
+ printk(KERN_ERR "BTUSB btusb_write_complete failure %d\n", p_urb->status);
+ }
+ else
+ {
+ p_dev->stats.writes_completed++;
+ }
+
+ if(autopm)
+ {
+ usb_autopm_put_interface(p_dev->p_main_intf);
+ }
+
+ return;
+}
+
+/*******************************************************************************
+ **
+ ** Function btusb_strip_off_acl_handle
+ **
+ ** Description Strip off the ACL handle if this is firmware download packet
+ **
+ ** Parameters
+ **
+ ** Returns void
+ **
+ *******************************************************************************/
+void btusb_strip_off_acl_handle(char* *packet, unsigned long *length)
+{
+ UINT8* p = (UINT8 *) (*packet);
+
+ BTUSB_DBG("first bytes are %02X %02X\n", *p, *(p+1));
+
+ // check special handle for firmware download packet
+ if ((*p == 0xEF) && (*(p+1) == 0xBE))
+ {
+ *packet = (char *) (p + 4);
+ *length -= 4;
+ }
+}
+
+/*******************************************************************************
+ **
+ ** Function btusb_submit_acl
+ **
+ ** Description ACL write submission to the controller
+ **
+ ** Parameters
+ **
+ ** Returns 0 upon success, negative value if error
+ **
+ *******************************************************************************/
+int btusb_submit_acl(tBTUSB_CB *p_dev, char *packet, unsigned long length)
+{
+ int retval;
+ tBTUSB_TRANSACTION *p_trans;
+
+ BTUSB_DBG("%p[%lu]\n", packet, length);
+
+ // strip off the ACL handle if this is a firmware download packet
+ btusb_strip_off_acl_handle (&packet, &length);
+ BTUSB_DBG("after adjusting %p[%lu]\n", packet, length);
+
+ btusb_dump_data(packet, length, "OUTGOING DATA");
+
+
+
+ p_trans = btusb_alloc_trans(p_dev->acl_tx_array, ARRAY_SIZE(p_dev->acl_tx_array));
+ if (unlikely(p_trans == NULL))
+ {
+ return -ENOMEM;
+ }
+
+ if (unlikely(length > BTUSB_HCI_MAX_ACL_SIZE))
+ {
+ retval = -E2BIG;
+ goto error;
+ }
+
+#if 0
+ // if this is called directly from write call
+ if (copy_from_user(p_trans->dma_buffer, user_buffer, length))
+ {
+ retval = -EFAULT;
+ goto error;
+ }
+#else
+ memcpy(p_trans->dma_buffer, packet, length);
+#endif
+ p_trans->p_urb->transfer_buffer_length = length;
+
+ retval = btusb_submit(p_dev, &p_dev->acl_tx_submitted, p_trans, GFP_ATOMIC);
+ if (unlikely(retval))
+ {
+ goto error;
+ }
+ return retval;
+
+error:
+ BTUSB_ERR("failed : %d\n", retval);
+ p_trans->gki_hdr.status = BUF_STATUS_FREE;
+ return retval;
+#if 0
+ return btusb_submit_bulk(p_dev, packet, length, p_dev->p_acl_out, &p_dev->acl_tx_submitted);
+#endif
+}
+
+/*******************************************************************************
+ **
+ ** Function btusb_submit_diag
+ **
+ ** Description Diag write submission to the controller
+ **
+ ** Parameters
+ **
+ ** Returns 0 upon success, negative value if error
+ **
+ *******************************************************************************/
+int btusb_submit_diag(tBTUSB_CB *p_dev, char *packet, unsigned long length)
+{
+ int retval;
+ tBTUSB_TRANSACTION *p_trans;
+
+ BTUSB_DBG("%p[%lu]\n", packet, length);
+
+ btusb_dump_data(packet, length, "OUTGOING DIAG");
+ if (unlikely(!p_dev->p_diag_out))
+ {
+ return -ENODEV;
+ }
+
+ p_trans = btusb_alloc_trans(p_dev->diag_tx_array, ARRAY_SIZE(p_dev->diag_tx_array));
+ if (unlikely(p_trans == NULL))
+ {
+ return -ENOMEM;
+ }
+
+ if (unlikely(length > BTUSB_HCI_MAX_ACL_SIZE))
+ {
+ retval = -E2BIG;
+ goto error;
+ }
+
+#if 0
+ // if this is called directly from write call
+ if (copy_from_user(p_trans->dma_buffer, user_buffer, length))
+ {
+ retval = -EFAULT;
+ goto error;
+ }
+#else
+ memcpy(p_trans->dma_buffer, packet, length);
+#endif
+ p_trans->p_urb->transfer_buffer_length = length;
+
+ retval = btusb_submit(p_dev, &p_dev->diag_tx_submitted, p_trans, GFP_ATOMIC);
+ if (unlikely(retval))
+ {
+ goto error;
+ }
+ return retval;
+
+error:
+ BTUSB_ERR("failed : %d\n", retval);
+ p_trans->gki_hdr.status = BUF_STATUS_FREE;
+ return retval;
+}
+
+
+/*******************************************************************************
+ **
+ ** Function btusb_cmd_complete
+ **
+ ** Description Command (control pipe) completion routine
+ **
+ ** Parameters
+ **
+ ** Returns void.
+ **
+ *******************************************************************************/
+void btusb_cmd_complete(struct urb *p_urb)
+{
+ tBTUSB_TRANSACTION *p_trans = p_urb->context;
+ tBTUSB_CB *p_dev = p_trans->context;
+
+ BTUSB_DBG("status %d %u length flags %x\n", p_urb->status,
+ p_urb->transfer_buffer_length, p_urb->transfer_flags);
+
+ p_trans->gki_hdr.status = BUF_STATUS_FREE;
+
+ if (unlikely(p_urb->status))
+ {
+ BTUSB_ERR("failure %d\n", p_urb->status);
+ p_dev->stats.commands_completed_error++;
+ }
+ else
+ {
+ p_dev->stats.commands_completed++;
+ }
+
+ if(autopm)
+ usb_autopm_put_interface(p_dev->p_main_intf);
+
+}
+
+/*******************************************************************************
+ **
+ ** Function btusb_submit_cmd
+ **
+ ** Description
+ **
+ ** Parameters
+ **
+ ** Returns 0 upon success, negative value if error
+ **
+ *******************************************************************************/
+int btusb_submit_cmd(tBTUSB_CB *p_dev, char *packet, unsigned long length)
+{
+ int retval;
+ tBTUSB_TRANSACTION *p_trans;
+ struct usb_ctrlrequest *p_dr = NULL;
+
+ BTUSB_DBG("%p[%lu]\n", packet, length);
+
+ btusb_dump_data(packet, length, "OUTGOING CMD");
+
+ p_trans = btusb_alloc_trans(p_dev->cmd_array, ARRAY_SIZE(p_dev->cmd_array));
+ if (unlikely(p_trans == NULL))
+ {
+ return -ENOMEM;
+ }
+
+ if (unlikely(length > BTUSB_HCI_MAX_CMD_SIZE))
+ {
+ retval = -E2BIG;
+ goto error;
+ }
+
+#if 0
+ // if this is called directly from write call
+ if (copy_from_user(p_trans->dma_buffer, packet, length))
+ {
+ retval = -EFAULT;
+ goto error;
+ }
+#else
+ memcpy(p_trans->dma_buffer, packet, length);
+#endif
+ p_dr = (void *)p_trans->p_urb->setup_packet;
+ p_dr->wLength = __cpu_to_le16(length);
+ p_trans->p_urb->transfer_buffer_length = length;
+
+ retval = btusb_submit(p_dev, &p_dev->cmd_submitted, p_trans, GFP_ATOMIC);
+ if (unlikely(retval))
+ {
+ p_dev->stats.commands_submitted_error++;
+ goto error;
+ }
+ return retval;
+
+error:
+ p_trans->gki_hdr.status = BUF_STATUS_FREE;
+ return retval;
+}
+
+/*******************************************************************************
+ **
+ ** Function btusb_voicetx_complete
+ **
+ ** Description Voice write (iso pipe) completion routine.
+ **
+ ** Parameters
+ **
+ ** Returns void
+ **
+ *******************************************************************************/
+static void btusb_voicetx_complete(struct urb *p_urb)
+{
+ tBTUSB_ISO_ELEMENT *pIsoXfer = p_urb->context;
+ tBTUSB_CB *p_dev = (void *) pIsoXfer->dev;
+
+ btusb_voice_stats(&(p_dev->stats.voice_max_tx_done_delta_time), &(p_dev->stats.voice_min_tx_done_delta_time),
+ &(p_dev->stats.voice_tx_done_delta_time), &(p_dev->stats.voice_last_tx_done_ts));
+
+ // keep track on the number of Tx buffer pending
+ p_dev->stats.voice_tx_cnt--;
+
+ if (unlikely(!p_dev->p_main_intf))
+ goto exit;
+
+ pIsoXfer->used = 0;
+
+ if (unlikely(p_urb->status))
+ {
+ BTUSB_ERR("btusb_voicetx_complete failure %d\n", p_urb->status);
+ p_dev->stats.voicetx_completed_error++;
+ }
+ else
+ {
+ p_dev->stats.voicetx_completed++;
+ }
+
+exit:
+ return;
+}
+
+/*******************************************************************************
+ **
+ ** Function btusb_fill_iso_pkts
+ **
+ ** Description Useful voice utility.
+ **
+ ** Parameters
+ **
+ ** Returns void
+ **
+ *******************************************************************************/
+static void btusb_fill_iso_pkts(struct urb *p_urb, int len, int pkt_size)
+{
+ int off = 0, i;
+
+ for (i = 0; len >= pkt_size; i++, off += pkt_size, len -= pkt_size)
+ {
+ p_urb->iso_frame_desc[i].offset = off;
+ p_urb->iso_frame_desc[i].length = pkt_size;
+ }
+
+ // remainder?
+ if (len)
+ {
+ p_urb->iso_frame_desc[i].offset = off;
+ p_urb->iso_frame_desc[i].length = len;
+ i++;
+ }
+
+ p_urb->number_of_packets = i;
+ return;
+}
+
+/*******************************************************************************
+ **
+ ** Function btusb_fill_iso_rx_pkts
+ **
+ ** Description Useful voice utility.
+ **
+ ** Parameters
+ **
+ ** Returns void
+ **
+ *******************************************************************************/
+static void btusb_fill_iso_rx_pkts(struct urb *p_urb, int len, int pkt_size)
+{
+ int off = 0, i;
+
+ for (i = 0; len >= pkt_size; i++, off += ALIGN(pkt_size, 4), len -= ALIGN(pkt_size, 4))
+ {
+ p_urb->iso_frame_desc[i].offset = off;
+ p_urb->iso_frame_desc[i].length = pkt_size;
+ BTUSB_DBG("off=%d pkt_size=%d\n", off, pkt_size);
+ }
+ p_urb->number_of_packets = i;
+ return;
+}
+
+/*******************************************************************************
+ **
+ ** Function btusb_submit_voice_rx
+ **
+ ** Description Resubmit an already filled URB request
+ **
+ ** Parameters
+ **
+ ** Returns
+ **
+ *******************************************************************************/
+void btusb_submit_voice_rx(tBTUSB_CB *p_dev, tBTUSB_TRANSACTION *p_trans, int mem_flags)
+{
+ if (unlikely(btusb_submit(p_dev, &p_dev->voice_rx_submitted, p_trans, mem_flags)))
+ {
+ p_dev->stats.voicerx_submitted_error++;
+ }
+ else
+ {
+ p_dev->stats.voicerx_submitted++;
+ }
+
+}
+
+/*******************************************************************************
+ **
+ ** Function btusb_update_voice_rx
+ **
+ ** Description Finish filling the voice URB and submit them. At this point
+ ** the URBs should NOT be submitted.
+ **
+ ** Parameters
+ **
+ ** Returns
+ **
+ *******************************************************************************/
+static void btusb_update_voice_rx(tBTUSB_CB *p_dev)
+{
+ unsigned int idx;
+ tBTUSB_TRANSACTION *p_trans;
+ struct urb *p_urb;
+ int packet_size;
+
+ BTUSB_DBG("enter\n");
+
+ if (!p_dev->p_main_intf || !p_dev->p_voice_intf || !p_dev->p_voice_in)
+ {
+ BTUSB_ERR("failing (p_dev removed or no voice intf)\n");
+ return;
+ }
+
+ packet_size = le16_to_cpu(p_dev->p_voice_in->desc.wMaxPacketSize);
+ if (!packet_size)
+ {
+ BTUSB_ERR("failing, 0 packet size)\n");
+ return;
+ }
+ BTUSB_DBG("packet_size=%d\n", packet_size);
+
+ BTUSB_ARRAY_FOR_EACH_TRANS(p_dev->voice_rx_array)
+ {
+ p_urb = p_trans->p_urb;
+ p_urb->pipe = usb_rcvisocpipe(p_dev->p_udev, p_dev->p_voice_in->desc.bEndpointAddress);
+ BTUSB_DBG("ep=%d\n", p_dev->p_voice_in->desc.bEndpointAddress);
+ p_urb->interval = p_dev->p_voice_in->desc.bInterval;
+ BTUSB_DBG("interval=%d\n", p_urb->interval);
+ p_urb->transfer_buffer_length = ALIGN(packet_size, 4) * BTUSB_VOICE_FRAMES_PER_URB;
+ BTUSB_DBG("transfer_buffer_length=%d\n", p_urb->transfer_buffer_length);
+ if (p_urb->transfer_buffer_length > BTUSB_VOICE_BUFFER_MAXSIZE)
+ {
+ BTUSB_ERR("Required buffer size larger than allocated size\n");
+ p_urb->transfer_buffer_length = BTUSB_VOICE_BUFFER_MAXSIZE;
+ }
+ btusb_fill_iso_rx_pkts(p_urb, p_urb->transfer_buffer_length, packet_size);
+
+ btusb_submit_voice_rx(p_dev, p_trans, GFP_KERNEL);
+ }
+}
+
+
+/*******************************************************************************
+ **
+ ** Function btusb_submit_voice_tx
+ **
+ ** Description Voice write submission
+ **
+ ** Parameters
+ **
+ ** Returns void
+ **
+ *******************************************************************************/
+static void btusb_submit_voice_tx(tBTUSB_CB *p_dev, UINT8 *p_data, int len)
+{
+ int to_send = 0;
+
+ btusb_voice_stats(&(p_dev->stats.voice_max_rx_feeding_interval), &(p_dev->stats.voice_min_rx_feeding_interval),
+ &(p_dev->stats.voice_rx_feeding_interval), &(p_dev->stats.voice_last_rx_feeding_ts));
+
+ while (len > 0)
+ {
+ if (len >= BTUSB_VOICE_BURST_SIZE)
+ {
+ to_send = BTUSB_VOICE_BURST_SIZE;
+ }
+ else
+ {
+ BTUSB_DBG("Sending partial sco data len: %d\n", len);
+ }
+ p_data[2] = to_send;
+ len -= to_send;
+ btusb_submit_write_voice(p_dev, p_data, to_send + 3);
+
+ if (len)
+ {
+ // copy the header for the next chunk
+ memcpy(p_data + BTUSB_VOICE_BURST_SIZE, p_data , 3);
+ p_data += BTUSB_VOICE_BURST_SIZE;
+ }
+ }
+
+ // we should always have at least 30 ms of audio ready to send
+ // if not fill up with silence
+ if (p_dev->stats.voice_tx_cnt<10)
+ {
+ BTUSB_DBG("less than 10 buffer in the Tx Q %lu insert silence \n", p_dev->stats.voice_tx_cnt);
+ while(p_dev->stats.voice_tx_cnt < 30)
+ {
+ memset(p_data + 3, 0, BTUSB_VOICE_BURST_SIZE );
+ btusb_submit_write_voice(p_dev, p_data, BTUSB_VOICE_BURST_SIZE + 3);
+ }
+ }
+}
+
+/*******************************************************************************
+ **
+ ** Function btusb_submit_write_voice
+ **
+ ** Description Voice write submission, length should be
+ ** smaller than or equal to VOICE_SAMPLE_SIZE
+ **
+ ** Parameters
+ **
+ ** Returns A zero value upon success.
+ **
+ *******************************************************************************/
+int btusb_submit_write_voice(tBTUSB_CB *p_dev, void *p_packet, unsigned long length)
+{
+ tBTUSB_ISO_ELEMENT *pIsoXfer;
+ struct urb *p_urb;
+ int status, pipe;
+ int packet_size, cur_frame_number;
+
+ if (!p_dev->p_main_intf || !p_dev->p_voice_intf || !p_dev->p_voice_out)
+ {
+ BTUSB_DBG(" failing (p_dev removed or no voice intf)\n");
+ return -1;
+ }
+
+ packet_size = le16_to_cpu(p_dev->p_voice_out->desc.wMaxPacketSize);
+ if ((length > BTUSB_MAXIMUM_TX_VOICE_SIZE) || !packet_size)
+ {
+ BTUSB_ERR("failing (%lu bytes - too many for %d packet size)\n", length, packet_size);
+ p_dev->stats.voicetx_disc_toolong++;
+ return -11;
+ }
+
+ // advance to the next voice tx IRP
+ if (++p_dev->voicetxIrpIndex == BTUSB_NUM_OF_VOICE_TX_BUFFERS)
+ p_dev->voicetxIrpIndex = 0;
+
+ // keep track on the number of tx buffer for stats debug and optimization
+ p_dev->stats.voice_tx_cnt++;
+ if (p_dev->stats.voice_tx_cnt>p_dev->stats.voice_max_tx_cnt)
+ {
+ p_dev->stats.voice_max_tx_cnt = p_dev->stats.voice_tx_cnt;
+ }
+
+ pIsoXfer = &p_dev->p_voicetxIrpList[p_dev->voicetxIrpIndex];
+
+ // buffer available?
+ if (pIsoXfer->used)
+ {
+ BTUSB_ERR("failed, no buf!\n");
+ p_dev->stats.voicetx_disc_nobuf++;
+ return -111;
+ }
+
+ p_urb = &pIsoXfer->urb;
+ pIsoXfer->index = p_dev->voicetxIrpIndex;
+ pIsoXfer->dev = p_dev;
+ memcpy(pIsoXfer->packet, p_packet, length);
+ pipe = usb_sndisocpipe(p_dev->p_udev, p_dev->p_voice_out->desc.bEndpointAddress);
+ p_urb->complete = btusb_voicetx_complete;
+ p_urb->context = pIsoXfer;
+ p_urb->dev = p_dev->p_udev;
+ p_urb->pipe = pipe;
+ p_urb->interval = p_dev->p_voice_out->desc.bInterval;
+ p_urb->transfer_buffer = pIsoXfer->packet;
+ p_urb->transfer_buffer_length = length;
+ btusb_fill_iso_pkts(p_urb, length, packet_size);
+ // p_urb->transfer_flags = 0;
+ p_urb->transfer_flags = URB_ISO_ASAP;
+ cur_frame_number = usb_get_current_frame_number(p_dev->p_udev);
+
+ BTUSB_INFO("len %lu idx %lu frm %u\n", length, pIsoXfer->index, cur_frame_number);
+ pIsoXfer->used = 1;
+ status = usb_submit_urb(p_urb, GFP_ATOMIC);
+ if (status)
+ {
+ BTUSB_ERR("usb_submit_urb failed %d\n", status);
+ p_dev->stats.voicetx_submitted_error++;
+ pIsoXfer->used = 0;
+ }
+ else
+ {
+ p_dev->stats.voicetx_submitted++;
+ BTUSB_DBG("success\n");
+ }
+
+ return(status);
+}
+
+/*******************************************************************************
+ **
+ ** Function btusb_set_voice
+ **
+ ** Description Change voice interface setting processor
+ ** NOTE: Must be called at low execution level
+ **
+ ** Parameters p_dev: pointer to the device control block
+ ** setting_number: new voice interface setting number
+ ** submit_urb: true if the URBs must be submitted
+ **
+ ** Returns 0 upon success, error code otherwise
+ **
+ *******************************************************************************/
+static int btusb_set_voice(tBTUSB_CB *p_dev, unsigned char setting_number,
+ bool submit_urb)
+{
+ int idx;
+ struct usb_host_interface *p_host_intf;
+ struct usb_endpoint_descriptor *p_ep_desc;
+
+ BTUSB_DBG("setting_number=%d submit_urb=%u\n", setting_number, submit_urb);
+
+ // cancel all voice requests before switching buffers
+ p_dev->p_voice_in = NULL;
+ p_dev->p_voice_out = NULL;
+ btusb_cancel_voice(p_dev);
+
+ // configure the voice interface to the proper setting
+ if (usb_set_interface(p_dev->p_udev, 1, setting_number))
+ {
+ BTUSB_ERR("failed to set iso intf to %u\n", setting_number);
+ return -EFAULT;
+ }
+
+ // find the endpoints
+ p_host_intf = p_dev->p_voice_intf->cur_altsetting;
+
+ for (idx = 0; idx < p_host_intf->desc.bNumEndpoints; idx++)
+ {
+ p_ep_desc = &p_host_intf->endpoint[idx].desc;
+ if (usb_endpoint_type(p_ep_desc) == USB_ENDPOINT_XFER_ISOC)
+ {
+ if (usb_endpoint_dir_in(p_ep_desc))
+ {
+ p_dev->p_voice_in = &p_host_intf->endpoint[idx];
+ }
+ else
+ {
+ p_dev->p_voice_out = &p_host_intf->endpoint[idx];
+ }
+ }
+ }
+
+ if (!p_dev->p_voice_in || !p_dev->p_voice_out)
+ {
+ BTUSB_ERR("no iso pipes found!\n");
+ return -EFAULT;
+ }
+
+ if (submit_urb)
+ {
+ btusb_update_voice_rx(p_dev);
+ }
+
+ return 0;
+}
+
+/*******************************************************************************
+ **
+ ** Function btusb_add_voice_channel
+ **
+ ** Description Add a voice channel in the list of current channels
+ **
+ ** Parameters p_dev: pointer to the device control structure
+ ** sco_handle: handle of the synchronous connection carrying voice
+ ** burst: size of the voice bursts
+ **
+ ** Returns Return 0 upon success, error code otherwise
+ **
+ *******************************************************************************/
+static int btusb_add_voice_channel(tBTUSB_CB *p_dev, unsigned short sco_handle, unsigned char burst)
+{
+ int idx;
+ tBTUSB_VOICE_CHANNEL *p_chan;
+
+ if (!p_dev->p_voice_intf)
+ {
+ BTUSB_ERR("No voice interface detected\n");
+ return -EOPNOTSUPP;
+ }
+
+ // kludge to support the backward compatibility with older BTKRNLs
+ // not supplying the packet size...
+ if (burst == 0)
+ {
+ BTUSB_INFO("fixing legacy req to 48\n");
+ burst = BTUSB_VOICE_BURST_SIZE;
+ }
+
+ // look for an available voice channel entry
+ for (idx = 0; idx < ARRAY_SIZE(p_dev->voice_channels); idx++)
+ {
+ p_chan = &p_dev->voice_channels[idx];
+ if (!p_chan->used)
+ {
+ p_chan->info.sco_handle = sco_handle;
+ p_chan->info.burst = burst;
+ p_chan->used = 1;
+ goto found;
+ }
+ }
+ BTUSB_ERR("Could not find empty slot in internal tables\n");
+ return -EMLINK;
+
+found:
+ if (btusb_update_voice_channels(p_dev))
+ {
+ BTUSB_ERR("Failed adding voice channel\n");
+ // failure, remove the channel just added
+ btusb_remove_voice_channel(p_dev, sco_handle);
+ return -ENOMEM;
+ }
+ return 0;
+}
+
+/*******************************************************************************
+ **
+ ** Function btusb_remove_voice_channel
+ **
+ ** Description Remove a voice channel from the list of current channels
+ **
+ ** Parameters p_dev: pointer to the device control structure
+ ** sco_handle: handle of the synchronous connection carrying voice
+ **
+ ** Returns Return 0 upon success, error code otherwise
+ **
+ *******************************************************************************/
+static int btusb_remove_voice_channel(tBTUSB_CB *p_dev, unsigned short sco_handle)
+{
+ int idx;
+ tBTUSB_VOICE_CHANNEL *p_chan;
+
+ if (!p_dev->p_voice_intf)
+ {
+ BTUSB_ERR("No voice interface detected\n");
+ return -EOPNOTSUPP;
+ }
+
+ // find the channel to be removed
+ for (idx = 0; idx < ARRAY_SIZE(p_dev->voice_channels); idx++)
+ {
+ p_chan = &p_dev->voice_channels[idx];
+ if (p_chan->used && (p_chan->info.sco_handle == sco_handle))
+ {
+ p_chan->used = 0;
+ goto found;
+ }
+ }
+ BTUSB_ERR("Could not find SCO handle in internal tables\n");
+ return -ENOENT;
+
+found:
+ return btusb_update_voice_channels(p_dev);
+}
+
+/*******************************************************************************
+ **
+ ** Function btusb_update_voice_channels
+ **
+ ** Description Voice channels just updated, reconfigure
+ **
+ ** Parameters p_dev: pointer to the device control structure
+ **
+ ** Returns Return 0 upon success, error code otherwise
+ **
+ *******************************************************************************/
+static int btusb_update_voice_channels(tBTUSB_CB *p_dev)
+{
+ int idx, jdx;
+ unsigned char min_burst, max_burst, num_voice_chan, voice_setting;
+ unsigned short desired_packet_size, packet_size;
+ tBTUSB_VOICE_CHANNEL *p_chan;
+ struct usb_host_interface *p_host_intf;
+ struct usb_endpoint_descriptor *p_ep_desc;
+
+ BTUSB_DBG("\n");
+
+ // get the number of voice channels and the size information
+ num_voice_chan = 0;
+ min_burst = 0xFF;
+ max_burst = 0;
+ for (idx = 0; idx < ARRAY_SIZE(p_dev->voice_channels); idx++)
+ {
+ p_chan = &p_dev->voice_channels[idx];
+ if (p_chan->used)
+ {
+ num_voice_chan++;
+ min_burst = min(min_burst, p_chan->info.burst);
+ max_burst = max(max_burst, p_chan->info.burst);
+ }
+ }
+
+ BTUSB_DBG("num_voice_chan=%d\n", num_voice_chan);
+ // now calculate a desired_packet_size
+ switch (num_voice_chan)
+ {
+ case 0:
+ desired_packet_size = 0;
+ break;
+
+ case 1:
+ // single channel: we just need a third of the length (rounded up so we add 2 before dividing)
+ desired_packet_size = ((max_burst + BTUSB_VOICE_HEADER_SIZE) + 2) / 3;
+ break;
+
+ case 2:
+ // two channels: we need the smaller one to fit in completely
+ // and the larger one to fit in into two...
+ packet_size = (max_burst + BTUSB_VOICE_HEADER_SIZE + 1) / 2;
+
+ desired_packet_size = min_burst + BTUSB_VOICE_HEADER_SIZE;
+ if (packet_size > desired_packet_size)
+ desired_packet_size = packet_size;
+ break;
+
+ case 3:
+ // three channels - we need all of them to fit into a single packet
+ desired_packet_size = max_burst + BTUSB_VOICE_HEADER_SIZE;
+ break;
+
+ default:
+ // this can not happen
+ BTUSB_ERR("invalid # (%d) of channels, failing...\n", num_voice_chan);
+ return 0;
+ }
+
+ BTUSB_DBG("desired packet size is %u\n", desired_packet_size);
+
+ // now convert the desired_packet_size into the interface setting number
+ packet_size = BTUSB_USHRT_MAX;
+ voice_setting = 0;
+ for (idx = 0; idx < p_dev->p_voice_intf->num_altsetting; idx++)
+ {
+ p_host_intf = &p_dev->p_voice_intf->altsetting[idx];
+ for (jdx = 0; jdx < p_host_intf->desc.bNumEndpoints; jdx++)
+ {
+ p_ep_desc = &p_host_intf->endpoint[jdx].desc;
+ if ((usb_endpoint_type(p_ep_desc) == USB_ENDPOINT_XFER_ISOC) &&
+ usb_endpoint_dir_in(p_ep_desc))
+ {
+ // if the MaxPacketSize is large enough and if it is smaller
+ // than the current setting
+ if ((desired_packet_size <= le16_to_cpu(p_ep_desc->wMaxPacketSize)) &&
+ (le16_to_cpu(p_ep_desc->wMaxPacketSize) < packet_size))
+ {
+ packet_size = le16_to_cpu(p_ep_desc->wMaxPacketSize);
+ voice_setting = p_host_intf->desc.bAlternateSetting;
+ }
+ }
+ }
+ }
+ if (packet_size == BTUSB_USHRT_MAX)
+ {
+ BTUSB_ERR("no appropriate ISO interface setting found, failing...\n");
+ return -ERANGE;
+ }
+
+ BTUSB_DBG("desired_packet_size=%d voice_setting=%d\n", desired_packet_size, voice_setting);
+ // store the desired packet size
+ p_dev->desired_packet_size = desired_packet_size;
+
+ // set the voice setting and only submit the URBs if there is a channel
+ return btusb_set_voice(p_dev, voice_setting, num_voice_chan != 0);
+}
+
+/*******************************************************************************
+ **
+ ** Function btusb_debug_show
+ **
+ ** Description Function called when reading the /proc file created by our driver
+ **
+ *******************************************************************************/
+#define BTUSB_STATS(__n) \
+ seq_printf(s, " - " #__n " = %lu\n", p_dev->stats.__n)
+
+static int btusb_debug_show(struct seq_file *s, void *unused)
+{
+ tBTUSB_CB *p_dev = s->private;
+ struct usb_device *udev = p_dev->p_udev;
+ struct usb_host_interface *p_host_intf;
+ struct usb_endpoint_descriptor *p_ep_desc;
+ tBTUSB_VOICE_CHANNEL *p_chan;
+ int idx, jdx;
+
+ seq_printf(s, "USB device :\n");
+ seq_printf(s, " - Match info:\n");
+ if (p_dev->p_id->match_flags & USB_DEVICE_ID_MATCH_VENDOR)
+ seq_printf(s, " * USB_DEVICE_ID_MATCH_VENDOR (0x%02X)\n", p_dev->p_id->idVendor);
+ if (p_dev->p_id->match_flags & USB_DEVICE_ID_MATCH_PRODUCT)
+ seq_printf(s, " * USB_DEVICE_ID_MATCH_PRODUCT 0x%02X)\n", p_dev->p_id->idProduct);
+ if (p_dev->p_id->match_flags & USB_DEVICE_ID_MATCH_DEV_LO)
+ seq_printf(s, " * USB_DEVICE_ID_MATCH_DEV_LO (%u)\n", p_dev->p_id->bcdDevice_lo);
+ if (p_dev->p_id->match_flags & USB_DEVICE_ID_MATCH_DEV_HI)
+ seq_printf(s, " * USB_DEVICE_ID_MATCH_DEV_HI (%u)\n", p_dev->p_id->bcdDevice_hi);
+ if (p_dev->p_id->match_flags & USB_DEVICE_ID_MATCH_DEV_CLASS)
+ seq_printf(s, " * USB_DEVICE_ID_MATCH_DEV_CLASS (0x%02X)\n", p_dev->p_id->bDeviceClass);
+ if (p_dev->p_id->match_flags & USB_DEVICE_ID_MATCH_DEV_SUBCLASS)
+ seq_printf(s, " * USB_DEVICE_ID_MATCH_DEV_SUBCLASS (0x%02X)\n", p_dev->p_id->bDeviceSubClass);
+ if (p_dev->p_id->match_flags & USB_DEVICE_ID_MATCH_DEV_PROTOCOL)
+ seq_printf(s, " * USB_DEVICE_ID_MATCH_DEV_PROTOCOL (0x%02X)\n", p_dev->p_id->bDeviceProtocol);
+ if (p_dev->p_id->match_flags & USB_DEVICE_ID_MATCH_INT_CLASS)
+ seq_printf(s, " * USB_DEVICE_ID_MATCH_INT_CLASS (0x%02X)\n", p_dev->p_id->bInterfaceClass);
+ if (p_dev->p_id->match_flags & USB_DEVICE_ID_MATCH_INT_SUBCLASS)
+ seq_printf(s, " * USB_DEVICE_ID_MATCH_INT_SUBCLASS (0x%02X)\n", p_dev->p_id->bInterfaceSubClass);
+ if (p_dev->p_id->match_flags & USB_DEVICE_ID_MATCH_INT_PROTOCOL)
+ seq_printf(s, " * USB_DEVICE_ID_MATCH_INT_PROTOCOL (0x%02X)\n", p_dev->p_id->bInterfaceProtocol);
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 6, 0)
+ if (p_dev->p_id->match_flags & USB_DEVICE_ID_MATCH_INT_NUMBER)
+ seq_printf(s, " * USB_DEVICE_ID_MATCH_INT_NUMBER (%u)\n", p_dev->p_id->bInterfaceNumber);
+#endif
+
+ seq_printf(s, " - Address = %d\n", udev->devnum);
+ seq_printf(s, " - VendorId = %04x\n", le16_to_cpu(udev->descriptor.idVendor));
+ seq_printf(s, " - ProductId = %04x\n", le16_to_cpu(udev->descriptor.idProduct));
+ seq_printf(s, " - Manufacturer String = %s\n", udev->manufacturer);
+ seq_printf(s, " - Product String = %s\n", udev->product);
+ seq_printf(s, " - USB bus number = %d\n", udev->bus->busnum);
+ seq_printf(s, " - USB devpath = %s\n", udev->devpath);
+ seq_printf(s, " - USB devnum = %d\n", udev->devnum);
+ seq_printf(s, " - USB ttport = %d\n", udev->ttport);
+ seq_printf(s, " - Interfaces :\n");
+ seq_printf(s, " * MAIN : ");
+ if (p_dev->p_main_intf)
+ {
+ seq_printf(s, "intf = %d (nb alt settings = %d, ",
+ p_dev->p_main_intf->cur_altsetting->desc.bInterfaceNumber,
+ p_dev->p_main_intf->num_altsetting);
+ seq_printf(s, "cur alt setting = %d)\n", p_dev->p_main_intf->cur_altsetting->desc.bAlternateSetting);
+ seq_printf(s, " * HCI EVENT : ");
+ if (p_dev->p_event_in)
+ {
+ seq_printf(s, "ep = 0x%02x\n", p_dev->p_event_in->desc.bEndpointAddress);
+ }
+ else
+ {
+ seq_printf(s, "ERROR (endpoint not found)\n");
+ }
+ seq_printf(s, " * ACL RX : ");
+ if (p_dev->p_acl_in)
+ {
+ seq_printf(s, "ep = 0x%02x\n", p_dev->p_event_in->desc.bEndpointAddress);
+ }
+ else
+ {
+ seq_printf(s, "ERROR (endpoint not found)\n");
+ }
+ seq_printf(s, " * ACL TX : ");
+ if (p_dev->p_acl_out)
+ {
+ seq_printf(s, "ep = 0x%02x\n", p_dev->p_acl_out->desc.bEndpointAddress);
+ }
+ else
+ {
+ seq_printf(s, "ERROR (endpoint not found)\n");
+ }
+ }
+ else
+ {
+
+ }
+ seq_printf(s, " * VOICE :");
+ if (p_dev->p_voice_intf)
+ {
+ seq_printf(s, " intf = %d (nb alt setting = %d, ", p_dev->p_voice_intf->cur_altsetting->desc.bInterfaceNumber, p_dev->p_voice_intf->num_altsetting);
+ seq_printf(s, "cur alt setting = %d)\n", p_dev->p_voice_intf->cur_altsetting->desc.bAlternateSetting);
+ for (idx = 0; idx < p_dev->p_voice_intf->num_altsetting; idx++)
+ {
+ p_host_intf = &p_dev->p_voice_intf->altsetting[idx];
+ seq_printf(s, " * alt setting %d (idx %d) : %d enpoints\n",
+ p_host_intf->desc.bAlternateSetting, idx, p_host_intf->desc.bNumEndpoints);
+ for (jdx = 0; jdx < p_host_intf->desc.bNumEndpoints; jdx++)
+ {
+ p_ep_desc = &p_host_intf->endpoint[jdx].desc;
+ seq_printf(s, " * ep = 0x%02x : ", p_ep_desc->bEndpointAddress);
+ if (usb_endpoint_type(p_ep_desc) == USB_ENDPOINT_XFER_ISOC)
+ {
+ seq_printf(s, "Isoch ");
+ if (usb_endpoint_dir_out(p_ep_desc))
+ {
+ seq_printf(s, "(OUT) ");
+ }
+ else
+ {
+ seq_printf(s, "(IN) ");
+ }
+ seq_printf(s, "wMaxPacketSize = %d\n", le16_to_cpu(p_ep_desc->wMaxPacketSize));
+ }
+ else
+ {
+ seq_printf(s, "not isochronous endpoint\n");
+ }
+ }
+ }
+ }
+ else
+ {
+ seq_printf(s, "Not present\n");
+ }
+ seq_printf(s, " * DIAG RX : ");
+ if (p_dev->p_diag_in)
+ {
+ seq_printf(s, "intf = %d ep = 0x%02x\n", p_dev->p_diag_intf->cur_altsetting->desc.bInterfaceNumber, p_dev->p_diag_in->desc.bEndpointAddress);
+ }
+ else
+ {
+ seq_printf(s, "Not present\n");
+ }
+ seq_printf(s, " * DIAG TX : ");
+ if (p_dev->p_diag_out)
+ {
+ seq_printf(s, "intf = %d ep = 0x%02x\n", p_dev->p_diag_intf->cur_altsetting->desc.bInterfaceNumber, p_dev->p_diag_out->desc.bEndpointAddress);
+ }
+ else
+ {
+ seq_printf(s, "Not present\n");
+ }
+ seq_printf(s, " * DFU : ");
+ if (p_dev->p_dfu_intf)
+ {
+ seq_printf(s, "intf = %d\n", p_dev->p_dfu_intf->cur_altsetting->desc.bInterfaceNumber);
+ }
+ else
+ {
+ seq_printf(s, "Not present\n");
+ }
+
+ seq_printf(s, "Memory usage :\n");
+ seq_printf(s, " - p_dev = %p\n", p_dev);
+ seq_printf(s, " - size = %zd\n", sizeof(*p_dev));
+ seq_printf(s, " * CMD = off:%zd/size=%zd\n", offsetof(tBTUSB_CB, cmd_array), sizeof(p_dev->cmd_array));
+ seq_printf(s, " * EVENT = off:%zd/size=%zd\n", offsetof(tBTUSB_CB, event_array), sizeof(p_dev->event_array));
+ seq_printf(s, " * ACL RX = off:%zd/size=%zd\n", offsetof(tBTUSB_CB, acl_rx_array), sizeof(p_dev->acl_rx_array));
+ seq_printf(s, " * ACL TX = off:%zd/size=%zd\n", offsetof(tBTUSB_CB, acl_tx_array), sizeof(p_dev->acl_tx_array));
+ seq_printf(s, " * DIAG RX = off:%zd/size=%zd\n", offsetof(tBTUSB_CB, diag_rx_array), sizeof(p_dev->diag_rx_array));
+ seq_printf(s, " * DIAG TX = off:%zd/size=%zd\n", offsetof(tBTUSB_CB, diag_tx_array), sizeof(p_dev->diag_tx_array));
+ seq_printf(s, " * VOICE = off:%zd/size=%zd\n", offsetof(tBTUSB_CB, voice_channels), offsetof(tBTUSB_CB, rx_queue)-offsetof(tBTUSB_CB, voice_channels));
+
+ seq_printf(s, "Status :\n");
+ seq_printf(s, " - issharedusb = %u\n", p_dev->issharedusb);
+ seq_printf(s, " - quirks = %u\n", p_dev->quirks);
+ seq_printf(s, " - opened = %d\n", p_dev->opened);
+ seq_printf(s, "Voice :\n");
+ // calculate number of voice sample per timer expiration
+ // HZ could be 100, 250 or 1000
+ if ((1000 / HZ) <= BTUSB_VOICE_DELAY)
+ {
+ seq_printf(s, " - number of voice samples per timer expiration = 1\n");
+ }
+ else
+ {
+ seq_printf(s, " - number of voice samples per timer expiration = %d\n",
+ (1000 / (HZ * BTUSB_VOICE_DELAY)));
+ }
+ jdx = 0;
+ for (idx = 0; idx < ARRAY_SIZE(p_dev->voice_channels); idx++)
+ {
+ p_chan = &p_dev->voice_channels[idx];
+ if (p_chan->used)
+ {
+ seq_printf(s, " - channel %d : SCO handle = %d(0x%02x) burst = %d\n", idx,
+ p_chan->info.sco_handle, p_chan->info.sco_handle, p_chan->info.burst);
+ jdx = 1;
+ }
+ }
+ if (jdx)
+ {
+ seq_printf(s, " - desired_packet_size = %d\n", p_dev->desired_packet_size);
+ }
+ else
+ {
+ seq_printf(s, " - No active channels\n");
+ }
+ seq_printf(s, "Statistics :\n");
+ BTUSB_STATS(urb_submit_ok);
+ BTUSB_STATS(urb_submit_err);
+ BTUSB_STATS(acl_rx_submit_ok);
+ BTUSB_STATS(acl_rx_submit_err);
+ BTUSB_STATS(acl_rx_completed);
+ BTUSB_STATS(acl_rx_resubmit);
+ BTUSB_STATS(acl_rx_bytes);
+ BTUSB_STATS(event_submit_ok);
+ BTUSB_STATS(event_submit_err);
+ BTUSB_STATS(event_completed);
+ BTUSB_STATS(event_resubmit);
+ BTUSB_STATS(event_bytes);
+ BTUSB_STATS(diag_rx_submit_ok);
+ BTUSB_STATS(diag_rx_submit_err);
+ BTUSB_STATS(diag_rx_completed);
+ BTUSB_STATS(diag_rx_resubmit);
+ BTUSB_STATS(diag_rx_bytes);
+ BTUSB_STATS(diag_rx_bytes);
+ BTUSB_STATS(writes_submitted);
+ BTUSB_STATS(writes_submitted_error);
+ BTUSB_STATS(writes_completed);
+ BTUSB_STATS(writes_completed_error);
+ BTUSB_STATS(commands_submitted);
+ BTUSB_STATS(commands_submitted_error);
+ BTUSB_STATS(commands_completed);
+ BTUSB_STATS(commands_completed_error);
+ BTUSB_STATS(voicerx_submitted);
+ BTUSB_STATS(voicerx_submitted_error);
+ BTUSB_STATS(voicerx_completed);
+ BTUSB_STATS(voicerx_completed_error);
+ BTUSB_STATS(voicerx_bad_packets);
+ BTUSB_STATS(voicerx_disc_nohdr);
+ BTUSB_STATS(voicerx_split_hdr);
+ BTUSB_STATS(voicerx_raw_bytes);
+ BTUSB_STATS(voicerx_skipped_bytes);
+ BTUSB_STATS(voicetx_submitted);
+ BTUSB_STATS(voicetx_submitted_error);
+ BTUSB_STATS(voicetx_completed);
+ BTUSB_STATS(voicetx_completed_error);
+ BTUSB_STATS(voicetx_disc_nobuf);
+ BTUSB_STATS(voicetx_disc_toolong);
+ BTUSB_STATS(voice_tx_cnt);
+ BTUSB_STATS(voice_max_tx_cnt);
+
+ {
+ struct btusb_scosniff *p, *n;
+ seq_printf(s, "SCO sniffing:\n");
+ seq_printf(s, " - list: %p\n", &p_dev->scosniff_list);
+ seq_printf(s, " - list.next: %p\n", p_dev->scosniff_list.next);
+ seq_printf(s, " - list.prev: %p\n", p_dev->scosniff_list.prev);
+ seq_printf(s, " - whole list:\n");
+ list_for_each_entry_safe(p, n, &p_dev->scosniff_list, lh)
+ {
+ seq_printf(s, " > %p\n", p);
+ }
+ }
+
+ return 0;
+}
+
+/*******************************************************************************
+ **
+ ** Function btusb_debug_write
+ **
+ ** Description Write handler of the debug /proc interface
+ **
+ *******************************************************************************/
+ssize_t btusb_debug_write(struct file *file, const char *buf,
+ size_t count, loff_t *pos)
+{
+ struct seq_file *s = file->private_data;
+ tBTUSB_CB *p_dev = s->private;
+ unsigned char cmd;
+
+ // copy the first byte from the data written
+ if (copy_from_user(&cmd, buf, 1))
+ {
+ return -EFAULT;
+ }
+
+ // unconditional print on purpose
+ BTUSB_INFO("'%c'\n", cmd);
+
+ switch (cmd)
+ {
+ case '0':
+ // reset the stats
+ memset(&p_dev->stats, 0, sizeof(p_dev->stats));
+ break;
+ case '1':
+ btusb_add_voice_channel(p_dev, 6, BTUSB_VOICE_BURST_SIZE);
+ break;
+
+ case '2':
+ btusb_remove_voice_channel(p_dev, 6);
+ break;
+
+ case '3':
+ if (p_dev->scosniff_active)
+ {
+ struct btusb_scosniff *bs;
+ bs = kmalloc(sizeof(*bs), GFP_ATOMIC);
+ if (bs)
+ {
+
+ BTUSB_INFO("SCOSNIFF: adding %p\n", bs);
+ bs->n = 0;
+ list_add_tail(&bs->lh, &p_dev->scosniff_list);
+ complete(&p_dev->scosniff_completion);
+ }
+ }
+ break;
+
+#ifdef BTUSB_LITE
+ case '4':
+ BTUSB_INFO("Mute PCM0\n");
+ pcm0_mute = 1;
+ break;
+
+ case '5':
+ BTUSB_INFO("Unmute PCM0\n");
+ pcm0_mute = 0;
+ break;
+#endif
+
+ default:
+ break;
+ }
+
+ return count;
+}
+
+/*******************************************************************************
+ **
+ ** Function btusb_debug_open
+ **
+ ** Description Open handler of the debug /proc interface
+ **
+ *******************************************************************************/
+int btusb_debug_open(struct inode *inode, struct file *file)
+{
+ return single_open(file, btusb_debug_show, BTUSB_PDE_DATA(inode));
+}
+
+static void * btusb_scosniff_start(struct seq_file *s, loff_t *pos)
+{
+ tBTUSB_CB *p_dev = s->private;
+ struct btusb_scosniff *bs;
+ int rv;
+
+ BTUSB_INFO("waiting %p\n", p_dev);
+ rv = wait_for_completion_interruptible(&p_dev->scosniff_completion);
+ if (rv < 0)
+ return NULL;
+
+ BTUSB_INFO("triggered\n");
+
+ if (!list_empty(&p_dev->scosniff_list))
+ {
+ bs = list_first_entry(&p_dev->scosniff_list, struct btusb_scosniff, lh);
+
+ // remove the element from the list
+ list_del(&bs->lh);
+ BTUSB_INFO("receiving %p\n", bs);
+
+ return bs;
+ }
+ return NULL;
+}
+
+static void btusb_scosniff_stop(struct seq_file *s, void *v)
+{
+ BTUSB_INFO("stop\n");
+}
+
+static void * btusb_scosniff_next(struct seq_file *s, void *v, loff_t *pos)
+{
+ struct btusb_scosniff *bs = v;
+ BTUSB_INFO("next\n");
+
+ kfree(bs);
+
+ (*pos)++;
+
+ /* if you do not want to buffer the data, just return NULL, otherwise, call start
+ * again in order to use as much of the allocated PAGE in seq_read
+ *
+ * optional:
+ * return btusb_scosniff_start(s, pos);
+ */
+ return NULL;
+}
+
+ static int btusb_scosniff_show(struct seq_file *s, void *v)
+{
+ struct btusb_scosniff *bs = v;
+ unsigned int i, j;
+ unsigned char *p_buf, *p_c;
+ unsigned char c;
+ struct usb_iso_packet_descriptor *p_uipd;
+ const char hexdigit[16] = {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};
+
+ seq_printf(s, "%u %u %d \n", bs->n, bs->l, bs->s);
+ p_buf = (unsigned char *)&bs->d[bs->n];
+ for (i = 0; i < bs->n; i++)
+ {
+ p_uipd = &bs->d[i];
+ seq_printf(s, " %d %u %u %u\n", p_uipd->status, p_uipd->actual_length, p_uipd->length, p_uipd->offset);
+ for (j = 0, p_c = &p_buf[p_uipd->offset]; j < p_uipd->actual_length; j++, p_c++)
+ {
+ c = *p_c;
+ seq_putc(s, hexdigit[c >> 4]);
+ seq_putc(s, hexdigit[c & 0xF]);
+ seq_putc(s, ' ');
+ }
+ seq_putc(s, '\n');
+ }
+
+ return 0;
+}
+
+static const struct seq_operations btusb_scosniff_seq_ops = {
+ .start = btusb_scosniff_start,
+ .next = btusb_scosniff_next,
+ .stop = btusb_scosniff_stop,
+ .show = btusb_scosniff_show,
+};
+
+int btusb_scosniff_open(struct inode *inode, struct file *file)
+{
+ int rv;
+ tBTUSB_CB *p_dev = BTUSB_PDE_DATA(inode);
+
+ rv = seq_open(file, &btusb_scosniff_seq_ops);
+ if (!rv)
+ {
+ p_dev->scosniff_active = true;
+ ((struct seq_file *)file->private_data)->private = p_dev;
+ }
+ return rv;
+}
+
+int btusb_scosniff_release(struct inode *inode, struct file *file)
+{
+ struct btusb_scosniff *p, *n;
+ tBTUSB_CB *p_dev = BTUSB_PDE_DATA(inode);
+
+ p_dev->scosniff_active = false;
+
+ list_for_each_entry_safe(p, n, &p_dev->scosniff_list, lh)
+ {
+ list_del(&p->lh);
+ kfree(p);
+ }
+
+ return seq_release(inode, file);
+}
diff --git a/bcm569/src/btusb_dev.o b/bcm569/src/btusb_dev.o
new file mode 100644
index 0000000..1663ca5
--- a/dev/null
+++ b/bcm569/src/btusb_dev.o
@@ -0,0 +1,785 @@
+ELF
+ 
+ 
+ 
+ 
+
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+(0
+ 
+ 
+
+ 
+ 
+0
+ 
+0
+P
+\9
+
+
+
+
+
+
+
+
+
+
+ 0
+(
+
+l
+,
+
+ 0
+,0
+(
+0
+@101r
+n@|101V
+ 
+
+0L
+
+ 0
+ h
+,
+<
+
+0
+
+0
+ 
+$
+((X 
+
+
+
+
+%
+
+0
+X0&  㼀 00^ ЍO?0X 0
+
+
+0@T@
+ `P
+@ (
+
+
+9
+x t
+0
+
+
+
+
+ 0<
+
+  0m?`00
+
+I
+m?`
+m?`
+0
+
+
+
+ 0
+
+ =?0  0
+dT
+H 0p9pI
+ᴐ+l
+
+
+ 
+
+8
+ 0|
+ 0 /
+ 08 
+ 0 
+
+
+
+
+
+
+
+
+<0xx
+0P
+
+<
+
+
+00 P !
+ 1
+ @0<
+000
+ ``
+@
+
+` h0
+v8
+8
+;
+
+
+<0xx
+T
+
+
+
+ p@
+$ 
+  0
+
+
+ |0
+ D<
+
+0
+ 0
+00
+
+
+ 0 
+ 
+t
+\@TP
+
+0
+
+
+
+pp
+\ P
+%=
+
+\
+
+ 
+D %=0
+P >
+$
+
+
+0
+F
+0
+
+B
+E
+
+
+0
+G
+
+7
+0
+V4
+
+
+
+ 
+0
+
+0
+0
+ 
+
+
+ =?00$  0
+0 @<
+
+ 4
+
+
+<
+Q
+ =?00  0
+ xT
+d<^_
+,
+L
+ 
+=
+
+t0  
+
+P
+E 
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+--------------------------------------------------------------------
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+E
+
+
+(
+
+
+
+
+
+,'
+L
+ ^
+
+
+0
+J
+s
+S
+)
+; +
+,
+
+,
+/
+
+
+
+:
+=
+HqE
+
+
+
+7
+'
+
+9m
+(
+
+
+
+
+ns
+
+{
+
+Q
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+:
+
+gx
+gx
+g
+/
+
+ PQ0
+ PR
+PQ@
+ PR
+8PQ`
+PR
+tPQ
+PR
+@PQ
+ PQ
+pPQ
+8 PQ
+
+
+
+
+
+
+
+
+
+x
+]
+
+]
+
+
+
+
+.f
+.f
+B
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+/
+
+
+
+
+/
+
+
+
+/
+x
+/
+5
+$
+x
+K
+x
+/
+5
+$
+]
+]
+K
+^
+^
+
+Bg
+,
+
+ : ; 
+
+
+
+
+
+
+
+
+B
+
+
+B 
+
+
+
+
+
+
+
+
+t
+
+p
+x
+p
+x
+p
+x
+p
+x
+/
+4/
+$/
+
+$/
+
+
+
+
+
+
+
+fLhg/fQ./gg
+.Pz..4
+.//00,0,01LhguPz..L-3+1
+J&</0+10,0,0R0,0,0N0,0,0N1+ ..5y.5
+g.X
+nJ.
+Jv.
+J,0
+.u.
+.tI,LK ft. JtJ ff2~//L/Ll~fw.Jw.JguI,LK
+fu.
+JuJ
+fh0,0d0/of.fv. .v. .؃ufI/
+Ju.
+J3f00/of.vJM JtI/
+JufI/J "*K-2,0
+[.KJ X.2*2LgOLg-
+nJ .M-K- Jg-//~..
+./-
+
+A "
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+$
+'
+S
+Z
+n
+w
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/btusb_isoc.c b/bcm569/src/btusb_isoc.c
index 5987c68..bc3acff 100755
--- a/src/btusb_isoc.c
+++ b/bcm569/src/btusb_isoc.c
@@ -4,7 +4,7 @@
*
*
*
- * Copyright (C) 2013-2014 Broadcom Corporation.
+ * Copyright (C) 2013 Broadcom Corporation.
*
*
*
@@ -21,18 +21,38 @@
* or by writing to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA
*
- * Module that handles the reception of the voice HCI packets on the isochronous
- * interface.
*
*/
-/* for kmalloc */
+// for kmalloc
#include <linux/slab.h>
#include "btusb.h"
#include "hcidefs.h"
/*******************************************************************************
**
+ ** Function btusb_isoc_reset_msg
+ **
+ ** Description Reset the currently receiving voice message
+ **
+ ** Parameters p_dev: device instance control block
+ **
+ ** Returns void
+ **
+ *******************************************************************************/
+static void btusb_isoc_reset_msg(tBTUSB_CB *p_dev)
+{
+ p_dev->pending_bytes = 0;
+ if (p_dev->pp_pending_msg && *p_dev->pp_pending_msg)
+ {
+ GKI_freebuf(*p_dev->pp_pending_msg);
+ }
+ p_dev->pp_pending_msg = NULL;
+ p_dev->pending_hdr_size = 0;
+}
+
+/*******************************************************************************
+ **
** Function btusb_isoc_check_hdr
**
** Description Check the packet header
@@ -42,50 +62,49 @@
** Returns void
**
*******************************************************************************/
-static bool btusb_isoc_check_hdr(struct btusb *p_dev)
+static bool btusb_isoc_check_hdr(tBTUSB_CB *p_dev)
{
- unsigned char *p_data = p_dev->voice_rx.hdr;
+ unsigned char *p_data = p_dev->pending_hdr;
int idx;
unsigned short sco_handle;
unsigned char size;
- struct btusb_voice_pkt *p_pkt;
BT_HDR *p_hdr;
- struct btusb_voice_channel *p_chan;
+ tBTUSB_VOICE_CHANNEL *p_chan;
STREAM_TO_UINT16(sco_handle, p_data);
sco_handle &= 0x0fff;
STREAM_TO_UINT8(size, p_data);
- for (idx = 0; idx < ARRAY_SIZE(p_dev->voice_rx.channels); idx++)
+ for (idx = 0; idx < ARRAY_SIZE(p_dev->voice_channels); idx++)
{
- p_chan = &p_dev->voice_rx.channels[idx];
+ p_chan = &p_dev->voice_channels[idx];
if ((p_chan->used) &&
- (sco_handle == p_chan->handle) &&
- (size <= (2 * p_chan->burst)))
+ (sco_handle == p_chan->info.sco_handle) &&
+ (size <= (2 * p_chan->info.burst)))
{
- /* check if there is already a message being consolidated */
- if (unlikely(p_chan->p_pkt == NULL))
+ // check if there is already a message being consolidated
+ if (unlikely(p_chan->p_msg == NULL))
{
- if (!btusb_cq_get(&p_dev->voice_rx_list, &p_pkt))
+ p_hdr = (BT_HDR *) GKI_getpoolbuf(HCI_SCO_POOL_ID);
+ if (unlikely(p_hdr == NULL))
{
- BTUSB_ERR("No buffer available for SCO defragmentation\n");
return false;
}
- p_hdr = &p_pkt->bt_hdr;
- p_hdr->len = BTUSB_VOICE_HEADER_SIZE;
+ p_hdr->event = BT_EVT_TO_BTU_HCI_SCO;
+ p_hdr->len = 1 + BTUSB_VOICE_HEADER_SIZE; // sizeof(data_type) + SCO header
p_hdr->offset = 0;
p_hdr->layer_specific = 0;
- p_data = (unsigned char *) (p_hdr + 1);
+ p_data = (void *) (p_hdr + 1);
- /* add sco handle and buffer size */
+ // add data type
+ UINT8_TO_STREAM(p_data, HCIT_TYPE_SCO_DATA);
UINT16_TO_STREAM(p_data, sco_handle);
- UINT8_TO_STREAM(p_data, BTUSB_SCO_RX_LEN);
- p_chan->p_pkt = p_pkt;
+ p_chan->p_msg = p_hdr;
}
- p_dev->voice_rx.remaining = size;
- p_dev->voice_rx.pp_pkt = &p_chan->p_pkt;
+ p_dev->pending_bytes = size;
+ p_dev->pp_pending_msg = &p_chan->p_msg;
return true;
}
@@ -95,27 +114,32 @@ static bool btusb_isoc_check_hdr(struct btusb *p_dev)
/*******************************************************************************
**
- ** Function btusb_isoc_check_pkt
+ ** Function btusb_isoc_check_msg
**
- ** Description Check if the reconstructed HCI voice packet is large enough
+ ** Description Check the currently receiving message
**
** Parameters p_dev: device instance control block
+ ** pp_hdr: pointer to the receiving message
**
** Returns void
**
*******************************************************************************/
-static void btusb_isoc_check_pkt(struct btusb *p_dev)
+static void btusb_isoc_check_msg(tBTUSB_CB *p_dev, BT_HDR **pp_hdr)
{
- struct btusb_voice_pkt *p_pkt = *p_dev->voice_rx.pp_pkt;
- BT_HDR *p_hdr = &p_pkt->bt_hdr;
+ BT_HDR *p_hdr = *pp_hdr;
+ unsigned char *p_data;
- /* if enough data was received */
- if (unlikely(p_hdr->len == sizeof(((struct btusb_voice_pkt *)0)->data)))
+ // if enough data was received
+ if (unlikely(p_hdr->len >= (1 + BTUSB_VOICE_HEADER_SIZE + SCO_RX_MAX_LEN)))
{
- btusb_rx_enqueue_voice(p_dev, p_pkt);
- /* clear both references to the HCI packet */
- *p_dev->voice_rx.pp_pkt = NULL;
- p_dev->voice_rx.pp_pkt = NULL;
+ p_data = (void *)(p_hdr + 1);
+ p_data[BTUSB_VOICE_HEADER_SIZE] = p_hdr->len - BTUSB_VOICE_HEADER_SIZE - 1;
+ GKI_enqueue(&p_dev->rx_queue, p_hdr);
+
+ // notify RX event(in case of select/poll
+ wake_up_interruptible(&p_dev->rx_wait_q);
+
+ *pp_hdr = NULL;
}
}
@@ -132,22 +156,19 @@ static void btusb_isoc_check_pkt(struct btusb *p_dev)
*******************************************************************************/
void btusb_voicerx_complete(struct urb *p_urb)
{
- struct btusb_trans *p_trans = p_urb->context;
- struct btusb *p_dev = p_trans->p_dev;
- BT_HDR *p_hdr;
+ tBTUSB_TRANSACTION *p_trans = p_urb->context;
+ tBTUSB_CB *p_dev = p_trans->context;
+ BT_HDR **pp_hdr, *p_hdr;
unsigned int length, packet_length;
unsigned char *p_packet, *p_frame, *p_data;
struct usb_iso_packet_descriptor *p_uipd, *p_end;
- if (unlikely(dbgflags & BTUSB_VOICERX_TIME))
- {
- btusb_voice_stats(&(p_dev->stats.voice_max_rx_rdy_delta_time), &(p_dev->stats.voice_min_rx_rdy_delta_time),
- &(p_dev->stats.voice_rx_rdy_delta_time), &(p_dev->stats.voice_last_rx_rdy_ts));
- }
-
BTUSB_INFO("enter");
- p_dev->stats.voicerx_complete++;
+ btusb_voice_stats(&(p_dev->stats.voice_max_rx_rdy_delta_time), &(p_dev->stats.voice_min_rx_rdy_delta_time),
+ &(p_dev->stats.voice_rx_rdy_delta_time), &(p_dev->stats.voice_last_rx_rdy_ts));
+
+ p_dev->stats.voicerx_completed++;
if (unlikely(!p_dev->p_main_intf || !p_dev->p_voice_in))
{
@@ -155,11 +176,11 @@ void btusb_voicerx_complete(struct urb *p_urb)
return;
}
- /* entire URB error? */
+ // entire URB error?
if (unlikely(p_urb->status))
{
- /* this error can happen when unplugging or updating channels */
- p_dev->stats.voicerx_complete_err++;
+ BTUSB_ERR("failure %d\n", p_urb->status);
+ p_dev->stats.voicerx_completed_error++;
return;
}
@@ -175,11 +196,10 @@ void btusb_voicerx_complete(struct urb *p_urb)
bs->s = p_urb->start_frame;
bs->n = p_urb->number_of_packets;
bs->l = p_urb->transfer_buffer_length;
- /* copy the descriptors */
+ // copy the descriptors
memcpy(bs->d, p_urb->iso_frame_desc, bs->n * sizeof(p_urb->iso_frame_desc[0]));
- /* then copy the content of the buffer */
+ // then copy the content of the buffer
memcpy(&bs->d[bs->n], p_urb->transfer_buffer, bs->l);
- /* protection not required because callback invoked with IRQ disabled */
list_add_tail(&bs->lh, &p_dev->scosniff_list);
complete(&p_dev->scosniff_completion);
}
@@ -195,8 +215,8 @@ void btusb_voicerx_complete(struct urb *p_urb)
{
if (unlikely(p_uipd->status))
{
- p_dev->stats.voicerx_bad_frames++;
- /* should we do something if there is expected data? */
+ p_dev->stats.voicerx_bad_packets++;
+ // should we do something if there is expected data?
continue;
}
@@ -204,85 +224,84 @@ void btusb_voicerx_complete(struct urb *p_urb)
packet_length = p_uipd->actual_length;
p_dev->stats.voicerx_raw_bytes += packet_length;
- /* waiting for data? */
- if (likely(p_dev->voice_rx.remaining))
+ // waiting for data?
+ if (likely(p_dev->pending_bytes))
{
fill_data:
- if (likely(p_dev->voice_rx.remaining >= packet_length))
+ if (likely(p_dev->pending_bytes >= packet_length))
{
length = packet_length;
}
else
{
- length = p_dev->voice_rx.remaining;
+ length = p_dev->pending_bytes;
}
- p_hdr = &(*p_dev->voice_rx.pp_pkt)->bt_hdr;
+ pp_hdr = p_dev->pp_pending_msg;
+ p_hdr = *pp_hdr;
p_data = (void *)(p_hdr + 1) + p_hdr->len;
-
- if (unlikely((p_hdr->len + length) > sizeof(((struct btusb_voice_pkt *)0)->data)))
- {
- BTUSB_ERR("SCO message too large for buffer\n");
- p_dev->stats.voicerx_bad_size++;
- /* reset the length and pending bytes to end the current packet */
- p_dev->voice_rx.remaining = length =
- sizeof(((struct btusb_voice_pkt *)0)->data) - p_hdr->len;
- }
- /* append data to the current message */
+ // add data at the tail of the current message
memcpy(p_data, p_packet, length);
p_hdr->len += length;
- /* decrement the number of bytes remaining */
- p_dev->voice_rx.remaining -= length;
- if (likely(p_dev->voice_rx.remaining))
+ // decrement the number of bytes remaining
+ p_dev->pending_bytes -= length;
+ if (likely(p_dev->pending_bytes))
{
- /* data still needed -> next descriptor */
+ // data still needed -> next descriptor
continue;
}
- /* no more pending bytes, check if packet is full */
- btusb_isoc_check_pkt(p_dev);
+ // no more pending bytes, check if it is full
+ btusb_isoc_check_msg(p_dev, pp_hdr);
packet_length -= length;
- /* speedup peep-hole */
if (likely(!packet_length))
continue;
- /* more bytes -> increment pointer */
+ // more bytes -> increment pointer
p_packet += length;
}
- /* if there is still data in the packet */
+ // if there is still data in the packet
if (likely(packet_length))
{
- /* at this point, there is NO SCO packet pending */
- if (likely(packet_length >= (BTUSB_VOICE_HEADER_SIZE - p_dev->voice_rx.hdr_size)))
+ // at this point, there is NO SCO packet pending
+ if (likely(packet_length >= (BTUSB_VOICE_HEADER_SIZE - p_dev->pending_hdr_size)))
{
- length = BTUSB_VOICE_HEADER_SIZE - p_dev->voice_rx.hdr_size;
+ length = BTUSB_VOICE_HEADER_SIZE - p_dev->pending_hdr_size;
}
else
{
length = packet_length;
}
- /* fill the hdr (in case header is split across descriptors) */
- memcpy(&p_dev->voice_rx.hdr[p_dev->voice_rx.hdr_size], p_packet, length);
- p_dev->voice_rx.hdr_size += length;
+ // fill the hdr (in case header is split across descriptors)
+ memcpy(&p_dev->pending_hdr[p_dev->pending_hdr_size], p_packet, length);
+ p_dev->pending_hdr_size += length;
- if (likely(p_dev->voice_rx.hdr_size == BTUSB_VOICE_HEADER_SIZE))
+ if (likely(p_dev->pending_hdr_size == BTUSB_VOICE_HEADER_SIZE))
{
- /* reset the pending size */
- p_dev->voice_rx.hdr_size = 0;
+ p_dev->pending_hdr_size = 0;
if (likely(btusb_isoc_check_hdr(p_dev)))
{
p_packet += length;
packet_length -= length;
- /* a correct header was found, get the data */
+ // a correct header was found, get the data
goto fill_data;
}
- p_dev->stats.voicerx_bad_hdr++;
+ p_dev->stats.voicerx_disc_nohdr++;
p_dev->stats.voicerx_skipped_bytes += packet_length;
+ // this is not a correct header -> next descriptor
+ continue;
}
- else
+ else if (likely(p_dev->pending_hdr_size < BTUSB_VOICE_HEADER_SIZE))
{
p_dev->stats.voicerx_split_hdr++;
+ // header not complete -> next descriptor
+ continue;
+ }
+ else
+ {
+ BTUSB_ERR("ISOC Header larger than possible. This is a major failure.\n");
+ btusb_isoc_reset_msg(p_dev);
}
}
}
diff --git a/bcm569/src/btusb_isoc.o b/bcm569/src/btusb_isoc.o
new file mode 100644
index 0000000..b0f0c8e
--- a/dev/null
+++ b/bcm569/src/btusb_isoc.o
@@ -0,0 +1,161 @@
+ELF
+R/> Q 0
+00
+ЍO8
+l`000
+T0 h
+d0|P
+$
+d
+
+
+
+l
+``
+
+
+̠' p
+
+
+
+
+
+
+m
+:
+
+
+
+
+
+
+
+
+ 
+"
+$
+%
+0
+
+
+
+
+
+
+
+8
+d
+7
+
+'9'
+
+<
+
+-
+
+6
+6
+6
+8
+
+
+
+lJ
+-
+
+
+
+Y
+
+
+
+m
+
+%
+
+
+v
+
+
+z
+
+p9
+
+
+
+
+
+
+
+ۑ
+
+#
+
+ę
+
+
+
+
+<
+
+
+<
+
+
+* 
+ : ; 
+
+
+
+
+
+
+
+
+
+
+
+B
+
+v
+L
+.v.
+.L,0~.2*0.~./3,0g-/-Nhgj .w.///3y.5/L1-J~..0~.f0h2}f-K0K.
+A "
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+$
+,
+?
+J
+g
+p
+w
+
+
+
+
+
+
+
+
+
diff --git a/src/btusb_lite.c b/bcm569/src/btusb_lite.c
index 7a7fc15..f6d1374 100755
--- a/src/btusb_lite.c
+++ b/bcm569/src/btusb_lite.c
@@ -27,7 +27,6 @@
#include <linux/poll.h>
#include "btusb.h"
-#include "btpcm_api.h"
#include "bd.h"
@@ -40,7 +39,7 @@
/*
* Local functions
*/
-static void btusb_lite_reinit(struct btusb *p_dev);
+static void btusb_lite_init(struct btusb_cb *p_dev);
static int btusb_lite_open(struct inode *inode, struct file *file);
static int btusb_lite_close(struct inode *inode, struct file *file);
static ssize_t btusb_lite_write(struct file *file, const char *buf, size_t count,
@@ -49,29 +48,29 @@ static ssize_t btusb_lite_read(struct file *file, char __user *buffer, size_t co
loff_t *p_off);
static unsigned int btusb_lite_poll(struct file *file, struct poll_table_struct *p_pt);
-static BT_HDR *btusb_lite_msg_to_app_get(struct btusb *p_dev);
-static void btusb_lite_msg_to_app_free(struct btusb *p_dev, BT_HDR *p_msg);
-static UINT8 *btusb_lite_msg_to_app_get_data_addr(struct btusb *p_dev, BT_HDR *p_msg);
+static BT_HDR *btusb_lite_msg_to_app_get(struct btusb_cb *p_dev);
+static void btusb_lite_msg_to_app_free(struct btusb_cb *p_dev, BT_HDR *p_msg);
+static UINT8 *btusb_lite_msg_to_app_get_data_addr(struct btusb_cb *p_dev, BT_HDR *p_msg);
static char *btusb_lite_ipc_event_desc(UINT16 event);
-static void btusb_lite_ipc_hndl(struct btusb *p_dev, BT_HDR *p_msg);
-static void btusb_lite_ipc_hci_cmd_hndl(struct btusb *p_dev, BT_HDR *p_msg);
-static void btusb_lite_ipc_hci_acl_hndl(struct btusb *p_dev, BT_HDR *p_msg);
-static void btusb_lite_ipc_mgt_hndl(struct btusb *p_dev, BT_HDR *p_msg);
-static void btusb_lite_ipc_btu_hndl(struct btusb *p_dev, BT_HDR *p_msg);
-static void btusb_lite_ipc_btm_hndl(struct btusb *p_dev, BT_HDR *p_msg);
-static void btusb_lite_ipc_l2c_hndl(struct btusb *p_dev, BT_HDR *p_msg);
-static void btusb_lite_ipc_avdt_hndl(struct btusb *p_dev, BT_HDR *p_msg);
+static void btusb_lite_ipc_hndl(struct btusb_cb *p_dev, BT_HDR *p_msg);
+static void btusb_lite_ipc_hci_cmd_hndl(struct btusb_cb *p_dev, BT_HDR *p_msg);
+static void btusb_lite_ipc_hci_acl_hndl(struct btusb_cb *p_dev, BT_HDR *p_msg);
+static void btusb_lite_ipc_mgt_hndl(struct btusb_cb *p_dev, BT_HDR *p_msg);
+static void btusb_lite_ipc_btu_hndl(struct btusb_cb *p_dev, BT_HDR *p_msg);
+static void btusb_lite_ipc_btm_hndl(struct btusb_cb *p_dev, BT_HDR *p_msg);
+static void btusb_lite_ipc_l2c_hndl(struct btusb_cb *p_dev, BT_HDR *p_msg);
+static void btusb_lite_ipc_avdt_hndl(struct btusb_cb *p_dev, BT_HDR *p_msg);
-static void btusb_lite_ipc_rsp_send(struct btusb *p_dev, UINT16 event, UINT8 op_code,
+static void btusb_lite_ipc_rsp_send(struct btusb_cb *p_dev, UINT16 event, UINT8 op_code,
UINT8 *p_param, UINT8 param_len);
-static void btusb_lite_ipc_cmd_cplt_evt_send(struct btusb *p_dev,
+static void btusb_lite_ipc_cmd_cplt_evt_send(struct btusb_cb *p_dev,
UINT16 opcode, UINT8 *p_param, UINT8 param_len);
-static void btusb_lite_ipc_avdt_sync_info_send(struct btusb *p_dev,
+static void btusb_lite_ipc_avdt_sync_info_send(struct btusb_cb *p_dev,
tAVDT_SYNC_INFO *p_sync_rsp);
-static void btusb_lite_ipc_sent_to_user(struct btusb *p_dev, BT_HDR *p_msg);
+static void btusb_lite_ipc_sent_to_user(struct btusb_cb *p_dev, BT_HDR *p_msg);
/*
* Globals
@@ -87,16 +86,25 @@ static const struct file_operations btusb_lite_fops =
/*******************************************************************************
**
- ** Function btusb_lite_reinit
+ ** Function btusb_lite_open
**
- ** Description Init BTUSB Lite interface
+ ** Description Open BTUSB Lite interface
**
** Returns None
**
*******************************************************************************/
-static void btusb_lite_reinit(struct btusb *p_dev)
+static void btusb_lite_init(struct btusb_cb *p_dev)
{
- memset(&p_dev->lite_cb.s, 0, sizeof(p_dev->lite_cb.s));
+ struct proc_dir_entry *p_lite_pde;
+
+ /* Save p_lite_pde */
+ p_lite_pde = p_dev->lite_cb.p_lite_pde;
+
+ /* Clear Control Block */
+ memset(&p_dev->lite_cb, 0x00, sizeof(p_dev->lite_cb));
+
+ /* Restore p_lite_pde */
+ p_dev->lite_cb.p_lite_pde = p_lite_pde;
}
/*******************************************************************************
@@ -111,7 +119,7 @@ static void btusb_lite_reinit(struct btusb *p_dev)
static int btusb_lite_open(struct inode *inode, struct file *file)
{
int rv;
- struct btusb *p_dev = BTUSB_PDE_DATA(inode);
+ struct btusb_cb *p_dev = BTUSB_PDE_DATA(inode);
BTUSB_INFO("btusb_lite_open\n");
@@ -122,7 +130,7 @@ static int btusb_lite_open(struct inode *inode, struct file *file)
goto out;
}
- if (p_dev->lite_cb.s.opened)
+ if (p_dev->lite_cb.opened)
{
BTUSB_ERR("Lite interface already opened\n");
rv = -EBUSY;;
@@ -131,8 +139,17 @@ static int btusb_lite_open(struct inode *inode, struct file *file)
file->private_data = p_dev; /* Save our private p_dev */
- btusb_lite_reinit(p_dev);
- p_dev->lite_cb.s.opened = true;
+ p_dev->lite_cb.opened = 1; /* Lite Interface opened */
+
+ /* Clear Every Lite Stack Control Block */
+ memset(&p_dev->lite_cb.stat, 0, sizeof(p_dev->lite_cb.stat));
+ memset(&p_dev->lite_cb.from_app, 0, sizeof(p_dev->lite_cb.from_app));
+ memset(&p_dev->lite_cb.to_app, 0, sizeof(p_dev->lite_cb.to_app));
+ memset(&p_dev->lite_cb.mgt, 0, sizeof(p_dev->lite_cb.mgt));
+ memset(&p_dev->lite_cb.btu, 0, sizeof(p_dev->lite_cb.btu));
+ memset(&p_dev->lite_cb.l2c, 0, sizeof(p_dev->lite_cb.l2c));
+ memset(&p_dev->lite_cb.av, 0, sizeof(p_dev->lite_cb.av));
+ memset(&p_dev->lite_cb.avdt, 0, sizeof(p_dev->lite_cb.avdt));
rv = 0;
@@ -152,7 +169,7 @@ out:
static int btusb_lite_close(struct inode *inode, struct file *file)
{
int rv;
- struct btusb *p_dev = BTUSB_PDE_DATA(inode);
+ struct btusb_cb *p_dev = BTUSB_PDE_DATA(inode);
BTUSB_INFO("btusb_lite_close\n");
@@ -163,14 +180,15 @@ static int btusb_lite_close(struct inode *inode, struct file *file)
goto out;
}
- if (!p_dev->lite_cb.s.opened)
+ if (!p_dev->lite_cb.opened)
{
BTUSB_ERR("Lite interface was not opened\n");
rv = -EBUSY;;
goto out;
}
- btusb_lite_reinit(p_dev);
+ BTUSB_ERR("To do, flush/free pending data\n");
+ btusb_lite_init(p_dev);
rv = 0;
@@ -190,7 +208,7 @@ out:
static ssize_t btusb_lite_write(struct file *file, const char *p_user_buffer,
size_t count, loff_t *p_off)
{
- struct btusb *p_dev = file->private_data;
+ struct btusb_cb *p_dev = file->private_data;
size_t remainder;
struct btusb_lite_cb *p_lite_cb;
unsigned long copy_len;
@@ -207,7 +225,7 @@ static ssize_t btusb_lite_write(struct file *file, const char *p_user_buffer,
return -ENODEV;
}
- if (!p_dev->lite_cb.s.opened)
+ if (!p_dev->lite_cb.opened)
{
BTUSB_ERR("Lite interface was not opened\n");
return -EBUSY;
@@ -233,10 +251,10 @@ static ssize_t btusb_lite_write(struct file *file, const char *p_user_buffer,
while(remainder)
{
/* If a full Header has not yet been received */
- if (p_lite_cb->s.from_app.rx_header_len < BTUSB_LITE_IPC_HDR_SIZE)
+ if (p_lite_cb->from_app.rx_header_len < BTUSB_LITE_IPC_HDR_SIZE)
{
/* How many bytes are needed (1 to 4) */
- copy_len = BTUSB_LITE_IPC_HDR_SIZE - p_lite_cb->s.from_app.rx_header_len;
+ copy_len = BTUSB_LITE_IPC_HDR_SIZE - p_lite_cb->from_app.rx_header_len;
/* If less bytes are available */
if (remainder < copy_len)
@@ -245,30 +263,30 @@ static ssize_t btusb_lite_write(struct file *file, const char *p_user_buffer,
}
/* Copy the header (or a part of it) */
- if (copy_from_user(&p_lite_cb->s.from_app.rx_header[p_lite_cb->s.from_app.rx_header_len],
+ if (copy_from_user(&p_lite_cb->from_app.rx_header[p_lite_cb->from_app.rx_header_len],
(void *)p_user_buffer, copy_len))
{
BTUSB_ERR("Copy header from user error\n");
return -EINVAL;
}
remainder -= copy_len;
- p_lite_cb->s.from_app.rx_header_len += copy_len;
+ p_lite_cb->from_app.rx_header_len += copy_len;
p_user_buffer += copy_len;
copied_len += copy_len;
/* If the buffer has been read */
- if (p_lite_cb->s.from_app.rx_header_len == BTUSB_LITE_IPC_HDR_SIZE)
+ if (p_lite_cb->from_app.rx_header_len == BTUSB_LITE_IPC_HDR_SIZE)
{
- p = p_lite_cb->s.from_app.rx_header;
- STREAM_TO_UINT16(p_lite_cb->s.from_app.rx_len, p);
+ p = p_lite_cb->from_app.rx_header;
+ STREAM_TO_UINT16(p_lite_cb->from_app.rx_len, p);
STREAM_TO_UINT16(rx_event, p);
- BTUSB_DBG("Rx Len=%d RxEvent=0x%X\n", p_lite_cb->s.from_app.rx_len, rx_event);
+ BTUSB_DBG("Rx Len=%d RxEvent=0x%X\n", p_lite_cb->from_app.rx_len, rx_event);
- p_lite_cb->s.from_app.rx_len -= sizeof(UINT16); /* Do not count Event Field */
+ p_lite_cb->from_app.rx_len -= sizeof(UINT16); /* Do not count Event Field */
/* get a buffer from the pool (add one byte for HCI_Type) */
- if (unlikely((p_msg = (BT_HDR *)GKI_getbuf(sizeof(BT_HDR) + p_lite_cb->s.from_app.rx_len + 1)) == NULL))
+ if (unlikely((p_msg = (BT_HDR *)GKI_getbuf(sizeof(BT_HDR) + p_lite_cb->from_app.rx_len + 1)) == NULL))
{
BTUSB_ERR("unable to get GKI buffer - write failed\n");
return -EINVAL;
@@ -278,13 +296,13 @@ static ssize_t btusb_lite_write(struct file *file, const char *p_user_buffer,
p_msg->offset = 1;
p_msg->len = 0;
- p_lite_cb->s.from_app.p_rx_msg = p_msg;
+ p_lite_cb->from_app.p_rx_msg = p_msg;
}
}
/* If Header already received */
else
{
- p_msg = p_lite_cb->s.from_app.p_rx_msg;
+ p_msg = p_lite_cb->from_app.p_rx_msg;
if (!p_msg)
{
@@ -294,7 +312,7 @@ static ssize_t btusb_lite_write(struct file *file, const char *p_user_buffer,
p = (UINT8 *)(p_msg + 1) + p_msg->len + p_msg->offset;
/* How many payload bytes are expected */
- copy_len = p_lite_cb->s.from_app.rx_len;
+ copy_len = p_lite_cb->from_app.rx_len;
/* If less bytes are available */
if (remainder < copy_len)
@@ -311,16 +329,16 @@ static ssize_t btusb_lite_write(struct file *file, const char *p_user_buffer,
remainder -= copy_len;
p_user_buffer += copy_len;
copied_len += copy_len;
- p_lite_cb->s.from_app.rx_len -= copy_len;
+ p_lite_cb->from_app.rx_len -= copy_len;
p_msg->len += copy_len;
- if (p_lite_cb->s.from_app.rx_len == 0)
+ if (p_lite_cb->from_app.rx_len == 0)
{
/* Handle the received message */
btusb_lite_ipc_hndl(p_dev, p_msg);
- p_lite_cb->s.from_app.p_rx_msg = NULL;
- p_lite_cb->s.from_app.rx_header_len = 0; /* Ready to receive a new header */
+ p_lite_cb->from_app.p_rx_msg = NULL;
+ p_lite_cb->from_app.rx_header_len = 0; /* Ready to receive a new header */
}
}
}
@@ -337,28 +355,28 @@ static ssize_t btusb_lite_write(struct file *file, const char *p_user_buffer,
** Returns GKI buffer to send (or Null)
**
*******************************************************************************/
-static BT_HDR *btusb_lite_msg_to_app_get(struct btusb *p_dev)
+static BT_HDR *btusb_lite_msg_to_app_get(struct btusb_cb *p_dev)
{
BT_HDR *p_msg;
BT_HDR *p_hdr_msg;
UINT8 *p_data;
/* First, check if a locally generated Event (IPC) message is pending */
- p_msg = p_dev->lite_cb.s.to_app.p_ipc_msg;
+ p_msg = p_dev->lite_cb.to_app.p_ipc_msg;
if (p_msg)
{
return p_msg;
}
/* Secondly, check if a locally generated IPC Header message is pending */
- p_msg = p_dev->lite_cb.s.to_app.p_hdr_msg;
+ p_msg = p_dev->lite_cb.to_app.p_hdr_msg;
if (p_msg)
{
return p_msg;
}
/* Thirdly, check if an HCI message is pending */
- p_msg = p_dev->lite_cb.s.to_app.p_hci_msg;
+ p_msg = p_dev->lite_cb.to_app.p_hci_msg;
if (p_msg)
{
return p_msg;
@@ -369,10 +387,10 @@ static BT_HDR *btusb_lite_msg_to_app_get(struct btusb *p_dev)
*/
/* First, check if a locally generated Event (UIPC) message is enqueued */
- p_msg = GKI_dequeue(&p_dev->lite_cb.s.to_app.ipc_queue);
+ p_msg = GKI_dequeue(&p_dev->lite_cb.to_app.ipc_queue);
if (p_msg)
{
- p_dev->lite_cb.s.to_app.p_ipc_msg = p_msg;
+ p_dev->lite_cb.to_app.p_ipc_msg = p_msg;
return p_msg;
}
@@ -392,7 +410,7 @@ static BT_HDR *btusb_lite_msg_to_app_get(struct btusb *p_dev)
{
/* Leave the Received HCI packet in the queue (for next time) */
BTUSB_ERR("No more buffer\n");
- p_dev->lite_cb.s.to_app.p_hci_msg = NULL;
+ p_dev->lite_cb.to_app.p_hci_msg = NULL;
return NULL;
}
p_hdr_msg->len = BTUSB_LITE_IPC_HDR_SIZE;
@@ -409,8 +427,8 @@ static BT_HDR *btusb_lite_msg_to_app_get(struct btusb *p_dev)
{
case HCIT_TYPE_EVENT:
{
- struct btusb_trans *p_trans;
- p_trans = container_of(p_msg, struct btusb_trans, bt_hdr);
+ tBTUSB_TRANSACTION *p_trans;
+ p_trans = container_of(p_msg, tBTUSB_TRANSACTION, bt_hdr);
BTUSB_INFO("Event=0x%02X Received from BT Controller\n",
*(p_trans->dma_buffer + p_msg->offset));
BTUSB_INFO("IPC Buffer TxEvent=BT_EVT_TO_BTU_HCI_EVT(%X) Length=%d\n",
@@ -437,11 +455,11 @@ static BT_HDR *btusb_lite_msg_to_app_get(struct btusb *p_dev)
}
/* Store Header */
- p_dev->lite_cb.s.to_app.p_hdr_msg = p_hdr_msg;
+ p_dev->lite_cb.to_app.p_hdr_msg = p_hdr_msg;
/* Dequeue HCI message */
p_msg = GKI_dequeue(&p_dev->rx_queue);
- p_dev->lite_cb.s.to_app.p_hci_msg = p_msg;
+ p_dev->lite_cb.to_app.p_hci_msg = p_msg;
return p_hdr_msg; /* Return pointer on Header */
}
@@ -458,13 +476,13 @@ static BT_HDR *btusb_lite_msg_to_app_get(struct btusb *p_dev)
** Returns None
**
*******************************************************************************/
-static UINT8 *btusb_lite_msg_to_app_get_data_addr(struct btusb *p_dev, BT_HDR *p_msg)
+static UINT8 *btusb_lite_msg_to_app_get_data_addr(struct btusb_cb *p_dev, BT_HDR *p_msg)
{
- struct btusb_trans *p_trans;
+ tBTUSB_TRANSACTION *p_trans;
/* If the message is a "real" GKI buffer */
- if ((p_dev->lite_cb.s.to_app.p_ipc_msg == p_msg) ||
- (p_dev->lite_cb.s.to_app.p_hdr_msg == p_msg))
+ if ((p_dev->lite_cb.to_app.p_ipc_msg == p_msg) ||
+ (p_dev->lite_cb.to_app.p_hdr_msg == p_msg))
{
return (UINT8 *)(p_msg + 1) + p_msg->offset;
}
@@ -472,9 +490,9 @@ static UINT8 *btusb_lite_msg_to_app_get_data_addr(struct btusb *p_dev, BT_HDR *p
/* If the message is an HCI message, the data is located in the USB transaction */
/* Check if the message is an HCI message */
- if (p_dev->lite_cb.s.to_app.p_hci_msg == p_msg)
+ if (p_dev->lite_cb.to_app.p_hci_msg == p_msg)
{
- p_trans = container_of(p_msg, struct btusb_trans, bt_hdr);
+ p_trans = container_of(p_msg, tBTUSB_TRANSACTION, bt_hdr);
return (p_trans->dma_buffer + p_msg->offset);
}
@@ -492,30 +510,30 @@ static UINT8 *btusb_lite_msg_to_app_get_data_addr(struct btusb *p_dev, BT_HDR *p
** Returns None
**
*******************************************************************************/
-static void btusb_lite_msg_to_app_free(struct btusb *p_dev, BT_HDR *p_msg)
+static void btusb_lite_msg_to_app_free(struct btusb_cb *p_dev, BT_HDR *p_msg)
{
/* Check if the message is a locally generated Event (IPC) message */
- if (p_dev->lite_cb.s.to_app.p_ipc_msg == p_msg)
+ if (p_dev->lite_cb.to_app.p_ipc_msg == p_msg)
{
GKI_freebuf(p_msg);
- p_dev->lite_cb.s.to_app.p_ipc_msg = NULL;
+ p_dev->lite_cb.to_app.p_ipc_msg = NULL;
return;
}
/* Check if the message is a locally generated Header (IPC) message */
- if (p_dev->lite_cb.s.to_app.p_hdr_msg == p_msg)
+ if (p_dev->lite_cb.to_app.p_hdr_msg == p_msg)
{
GKI_freebuf(p_msg);
- p_dev->lite_cb.s.to_app.p_hdr_msg = NULL;
+ p_dev->lite_cb.to_app.p_hdr_msg = NULL;
return;
}
/* Check if the message is an HCI message */
- if (p_dev->lite_cb.s.to_app.p_hci_msg == p_msg)
+ if (p_dev->lite_cb.to_app.p_hci_msg == p_msg)
{
- p_dev->lite_cb.s.to_app.p_hci_msg = NULL;
+ p_dev->lite_cb.to_app.p_hci_msg = NULL;
/* The buffer must not be freed. It has to be re-enqueue in USB core */
- btusb_rx_dequeued(p_dev, p_msg);
+ btusb_dequeued(p_dev, p_msg);
return;
}
@@ -533,7 +551,7 @@ static void btusb_lite_msg_to_app_free(struct btusb *p_dev, BT_HDR *p_msg)
*******************************************************************************/
static ssize_t btusb_lite_read(struct file *file, char __user *p_user_buffer, size_t count, loff_t *p_off)
{
- struct btusb *p_dev = file->private_data;
+ struct btusb_cb *p_dev = file->private_data;
ssize_t size;
UINT8 *p_data;
unsigned long copy_len;
@@ -549,7 +567,7 @@ static ssize_t btusb_lite_read(struct file *file, char __user *p_user_buffer, si
goto out;
}
- if (!p_dev->lite_cb.s.opened)
+ if (!p_dev->lite_cb.opened)
{
BTUSB_ERR("Lite interface was not opened\n");
size = -EBUSY;;
@@ -646,7 +664,7 @@ out:
*******************************************************************************/
static unsigned int btusb_lite_poll(struct file *file, struct poll_table_struct *p_pt)
{
- struct btusb *p_dev = file->private_data;
+ struct btusb_cb *p_dev = file->private_data;
unsigned int mask;
BTUSB_DBG("enter\n");
@@ -666,7 +684,7 @@ static unsigned int btusb_lite_poll(struct file *file, struct poll_table_struct
return -ENODEV;
}
- if (unlikely(!p_dev->lite_cb.s.opened))
+ if (unlikely(!p_dev->lite_cb.opened))
{
BTUSB_ERR("Lite interface was not opened\n");
return -EINVAL;
@@ -696,28 +714,24 @@ static unsigned int btusb_lite_poll(struct file *file, struct poll_table_struct
** Returns status (< 0 if error)
**
*******************************************************************************/
-int btusb_lite_create(struct btusb *p_dev, struct usb_interface *p_interface)
+int btusb_lite_create(struct btusb_cb *p_dev, struct usb_interface *p_interface)
{
- int rv = -1;
+ int rv;
+ char procname[64];
+
+ btusb_lite_init(p_dev);
- p_dev->lite_cb.p_btpcm = btpcm_init(kobject_name(&p_dev->p_main_intf->usb_dev->kobj));
- if (!p_dev->lite_cb.p_btpcm)
+ scnprintf(procname, sizeof(procname), "driver/%s-lite", p_interface->usb_dev->kobj.name);
+ p_dev->lite_cb.p_lite_pde = proc_create_data(procname, S_IRUGO | S_IWUGO, NULL, &btusb_lite_fops, p_dev);
+ if (p_dev->lite_cb.p_lite_pde == NULL)
{
- BTUSB_ERR("btpcm_init failed\n");
+ BTUSB_ERR("Couldn't create %s entry\n", procname);
+ rv = -1;
}
-
- if (p_dev->p_pde)
+ else
{
- p_dev->lite_cb.p_lite_pde = proc_create_data("lite", S_IRUGO | S_IWUGO, p_dev->p_pde, &btusb_lite_fops, p_dev);
- if (!p_dev->lite_cb.p_lite_pde)
- {
- BTUSB_ERR("Couldn't create proc lite entry\n");
- }
- else
- {
- BTUSB_INFO("Created proc lite entry\n");
- rv = 0;
- }
+ BTUSB_INFO("Created /proc/%s\n", procname);
+ rv = 0;
}
return rv;
@@ -732,18 +746,13 @@ int btusb_lite_create(struct btusb *p_dev, struct usb_interface *p_interface)
** Returns none
**
*******************************************************************************/
-void btusb_lite_delete(struct btusb *p_dev, struct usb_interface *p_interface)
+void btusb_lite_delete(struct btusb_cb *p_dev, struct usb_interface *p_interface)
{
- if (p_dev->p_pde)
- {
- remove_proc_entry("lite", p_dev->p_pde);
- BTUSB_INFO("proc lite removed\n");
- }
+ char procname[64];
- if (btpcm_exit(p_dev->lite_cb.p_btpcm))
- {
- BTUSB_ERR("btpcm_exit failed\n");
- }
+ scnprintf(procname, sizeof(procname), "driver/%s-lite", p_interface->usb_dev->kobj.name);
+ remove_proc_entry(procname, NULL);
+ BTUSB_INFO("/proc/%s deleted\n", procname);
}
/*******************************************************************************
@@ -755,13 +764,13 @@ void btusb_lite_delete(struct btusb *p_dev, struct usb_interface *p_interface)
** Returns int (1 if HCI is over IPC otherwise 0)
**
*******************************************************************************/
-int btusb_lite_is_hci_over_ipc(struct btusb *p_dev)
+int btusb_lite_is_hci_over_ipc(struct btusb_cb *p_dev)
{
- if ((p_dev->lite_cb.s.opened) && /* User Space opened the Lite interface */
- (p_dev->lite_cb.s.mgt.opened) && /* IPC MGT Opened */
+ if ((p_dev->lite_cb.opened) && /* User Space opened the Lite interface */
+ (p_dev->lite_cb.mgt.opened) && /* IPC MGT Opened */
/* Lite Transport is opened */
- ((p_dev->lite_cb.s.btu.transport_state == BTU_LITE_STACK_ACTIVE) ||
- (p_dev->lite_cb.s.btu.transport_state == BTU_LITE_TRANSPORT_ACTIVE)))
+ ((p_dev->lite_cb.btu.transport_state == BTU_LITE_STACK_ACTIVE) ||
+ (p_dev->lite_cb.btu.transport_state == BTU_LITE_TRANSPORT_ACTIVE)))
{
return 1;
}
@@ -778,7 +787,7 @@ int btusb_lite_is_hci_over_ipc(struct btusb *p_dev)
** Returns void
**
*******************************************************************************/
-void btusb_lite_stop_all(struct btusb *p_dev)
+void btusb_lite_stop_all(struct btusb_cb *p_dev)
{
int i;
@@ -800,7 +809,7 @@ void btusb_lite_stop_all(struct btusb *p_dev)
** Returns none
**
*******************************************************************************/
-static void btusb_lite_ipc_hndl(struct btusb *p_dev, BT_HDR *p_msg)
+static void btusb_lite_ipc_hndl(struct btusb_cb *p_dev, BT_HDR *p_msg)
{
BTUSB_INFO("IPC Buffer RxEvent=%s(0x%X) Length=%d\n",
btusb_lite_ipc_event_desc(p_msg->event), p_msg->event, p_msg->len);
@@ -883,7 +892,7 @@ static void btusb_lite_ipc_hndl(struct btusb *p_dev, BT_HDR *p_msg)
** Returns none
**
*******************************************************************************/
-static void btusb_lite_ipc_hci_cmd_hndl(struct btusb *p_dev, BT_HDR *p_msg)
+static void btusb_lite_ipc_hci_cmd_hndl(struct btusb_cb *p_dev, BT_HDR *p_msg)
{
UINT8 *p;
UINT16 hci_opcode;
@@ -949,7 +958,7 @@ static void btusb_lite_ipc_hci_cmd_hndl(struct btusb *p_dev, BT_HDR *p_msg)
** Returns none
**
*******************************************************************************/
-static void btusb_lite_ipc_hci_acl_hndl(struct btusb *p_dev, BT_HDR *p_msg)
+static void btusb_lite_ipc_hci_acl_hndl(struct btusb_cb *p_dev, BT_HDR *p_msg)
{
UINT8 *p;
@@ -982,7 +991,7 @@ static void btusb_lite_ipc_hci_acl_hndl(struct btusb *p_dev, BT_HDR *p_msg)
** Returns none
**
*******************************************************************************/
-static void btusb_lite_ipc_mgt_hndl(struct btusb *p_dev, BT_HDR *p_msg)
+static void btusb_lite_ipc_mgt_hndl(struct btusb_cb *p_dev, BT_HDR *p_msg)
{
UINT8 cmd;
UINT8 *p = (UINT8 *)(p_msg + 1) + p_msg->offset;
@@ -996,14 +1005,14 @@ static void btusb_lite_ipc_mgt_hndl(struct btusb *p_dev, BT_HDR *p_msg)
case UIPC_OPEN_REQ:
BTUSB_INFO("IPC_MGT:OpenReq received\n");
/* If Mgt already opened */
- if (p_dev->lite_cb.s.mgt.opened)
+ if (p_dev->lite_cb.mgt.opened)
{
BTUSB_ERR("IPC_MGT Was already opened\n");
UINT8_TO_STREAM(p_response, UIPC_STATUS_FAIL); /* Status */
}
else
{
- p_dev->lite_cb.s.mgt.opened = true;
+ p_dev->lite_cb.mgt.opened = 1;
UINT8_TO_STREAM(p_response, UIPC_STATUS_SUCCESS); /* Status */
}
UINT16_TO_STREAM(p_response, UIPC_VERSION_MAJOR); /* version_major */
@@ -1015,7 +1024,7 @@ static void btusb_lite_ipc_mgt_hndl(struct btusb *p_dev, BT_HDR *p_msg)
case UIPC_CLOSE_REQ:
BTUSB_INFO("IPC_MGT:CloseReq received\n");
- p_dev->lite_cb.s.mgt.opened = false;
+ p_dev->lite_cb.mgt.opened = 0;
btusb_lite_ipc_rsp_send(p_dev, BT_EVT_BTU_IPC_MGMT_EVT, UIPC_CLOSE_RSP, NULL, 0);
break;
@@ -1034,7 +1043,7 @@ static void btusb_lite_ipc_mgt_hndl(struct btusb *p_dev, BT_HDR *p_msg)
** Returns none
**
*******************************************************************************/
-static void btusb_lite_ipc_btu_hndl(struct btusb *p_dev, BT_HDR *p_msg)
+static void btusb_lite_ipc_btu_hndl(struct btusb_cb *p_dev, BT_HDR *p_msg)
{
UINT8 cmd;
UINT8 byte;
@@ -1047,13 +1056,13 @@ static void btusb_lite_ipc_btu_hndl(struct btusb *p_dev, BT_HDR *p_msg)
case BTU_IPC_CMD_SET_TRANSPORT_STATE:
STREAM_TO_UINT8(byte, p); /* Extract Param */
BTUSB_INFO("IPC_BTU:SetTransportState (%d) received\n", byte);
- p_dev->lite_cb.s.btu.transport_state = byte;
+ p_dev->lite_cb.btu.transport_state = byte;
break;
case BTU_IPC_CMD_DISABLE_TRANSPORT:
STREAM_TO_UINT8(byte, p); /* Extract Param */
BTUSB_INFO("IPC_BTU:DisableTransport (%d) received\n", byte);
- p_dev->lite_cb.s.btu.transport_disabled = byte;
+ p_dev->lite_cb.btu.transport_disabled = byte;
break;
default:
@@ -1071,7 +1080,7 @@ static void btusb_lite_ipc_btu_hndl(struct btusb *p_dev, BT_HDR *p_msg)
** Returns none
**
*******************************************************************************/
-static void btusb_lite_ipc_btm_hndl(struct btusb *p_dev, BT_HDR *p_msg)
+static void btusb_lite_ipc_btm_hndl(struct btusb_cb *p_dev, BT_HDR *p_msg)
{
UINT8 cmd;
UINT8 *p = (UINT8 *)(p_msg + 1) + p_msg->offset;
@@ -1227,7 +1236,7 @@ static void btusb_lite_ipc_btm_hndl(struct btusb *p_dev, BT_HDR *p_msg)
** Returns none
**
*******************************************************************************/
-static void btusb_lite_ipc_avdt_hndl(struct btusb *p_dev, BT_HDR *p_msg)
+static void btusb_lite_ipc_avdt_hndl(struct btusb_cb *p_dev, BT_HDR *p_msg)
{
UINT8 *p = (UINT8 *)(p_msg + 1) + p_msg->offset;
tAVDT_SYNC_INFO sync_req;
@@ -1475,7 +1484,7 @@ static void btusb_lite_ipc_avdt_hndl(struct btusb *p_dev, BT_HDR *p_msg)
** Returns none
**
*******************************************************************************/
-static void btusb_lite_ipc_avdt_sync_info_send(struct btusb *p_dev, tAVDT_SYNC_INFO *p_sync_rsp)
+static void btusb_lite_ipc_avdt_sync_info_send(struct btusb_cb *p_dev, tAVDT_SYNC_INFO *p_sync_rsp)
{
int stream;
UINT8 response[BTUSB_LITE_IPC_AVDT_SYNC_INFO_RSP_LEN];
@@ -1508,13 +1517,13 @@ static void btusb_lite_ipc_avdt_sync_info_send(struct btusb *p_dev, tAVDT_SYNC_I
** Returns none
**
*******************************************************************************/
-static void btusb_lite_ipc_l2c_hndl(struct btusb *p_dev, BT_HDR *p_msg)
+static void btusb_lite_ipc_l2c_hndl(struct btusb_cb *p_dev, BT_HDR *p_msg)
{
UINT8 cmd;
UINT8 *p = (UINT8 *)(p_msg + 1) + p_msg->offset;
UINT8 response[3];
UINT8 *p_response = response;
- struct btusb_lite_l2c_cb *p_l2c = &p_dev->lite_cb.s.l2c;
+ struct btusb_lite_l2c_cb *p_l2c = &p_dev->lite_cb.l2c;
int stream;
tL2C_STREAM_INFO l2c_stream;
UINT16 local_cid;
@@ -1621,7 +1630,7 @@ static void btusb_lite_ipc_l2c_hndl(struct btusb *p_dev, BT_HDR *p_msg)
** Returns Void
**
*******************************************************************************/
-static void btusb_lite_ipc_rsp_send(struct btusb *p_dev,
+static void btusb_lite_ipc_rsp_send(struct btusb_cb *p_dev,
UINT16 event, UINT8 op_code, UINT8 *p_param, UINT8 param_len)
{
BT_HDR *p_msg;
@@ -1673,7 +1682,7 @@ static void btusb_lite_ipc_rsp_send(struct btusb *p_dev,
** Returns Void
**
*******************************************************************************/
-static void btusb_lite_ipc_cmd_cplt_evt_send(struct btusb *p_dev,
+static void btusb_lite_ipc_cmd_cplt_evt_send(struct btusb_cb *p_dev,
UINT16 opcode, UINT8 *p_param, UINT8 param_len)
{
BT_HDR *p_msg;
@@ -1727,14 +1736,14 @@ static void btusb_lite_ipc_cmd_cplt_evt_send(struct btusb *p_dev,
** 0 if the event is handled
**
*******************************************************************************/
-static void btusb_lite_ipc_sent_to_user(struct btusb *p_dev, BT_HDR *p_msg)
+static void btusb_lite_ipc_sent_to_user(struct btusb_cb *p_dev, BT_HDR *p_msg)
{
/* Update Lite Statistics */
- p_dev->lite_cb.s.stat.event_bytes += p_msg->len;
- p_dev->lite_cb.s.stat.event_completed++;
+ p_dev->lite_cb.stat.event_bytes += p_msg->len;
+ p_dev->lite_cb.stat.event_completed++;
/* Enqueue message in IPC queue */
- GKI_enqueue(&p_dev->lite_cb.s.to_app.ipc_queue, p_msg);
+ GKI_enqueue(&p_dev->lite_cb.to_app.ipc_queue, p_msg);
/* WakeUp IPC read */
wake_up_interruptible(&p_dev->rx_wait_q);
diff --git a/src/btusb_lite_av.c b/bcm569/src/btusb_lite_av.c
index dff6cc8..b2a1400 100755
--- a/src/btusb_lite_av.c
+++ b/bcm569/src/btusb_lite_av.c
@@ -4,7 +4,7 @@
*
*
*
- * Copyright (C) 2011-2014 Broadcom Corporation.
+ * Copyright (C) 2011-2013 Broadcom Corporation.
*
*
*
@@ -33,6 +33,11 @@
#include "btsec_api.h"
#endif
+/*
+ * Definitions
+ */
+#define BTUSB_LITE_AV_PCM_CHANNEL 0
+
struct btusb_lite_av_sbc_param
{
int frequency;
@@ -107,10 +112,11 @@ static const unsigned short btusb_lite_silence_pcm[SILENSE_PCM_BUF_SIZE] = {0};
*/
static int btusb_lite_av_parse_sbc_codec(struct btusb_lite_av_sbc_param *p_sbc, UINT8 *p_codec);
static int btusb_lite_sbc_get_bitpool(struct btusb_lite_av_sbc_param *p_sbc_param, int target_bitrate);
-static void btusb_lite_av_pcm_cback(void *p_opaque, void *p_data, int nb_pcm_frames);
-static void btusb_lite_av_send_packet(struct btusb *p_dev, BT_HDR *p_msg);
+static void btusb_lite_av_pcm_cback(int pcm_stream, void *p_dev, void *p_data,
+ int nb_pcm_frames);
+static void btusb_lite_av_send_packet(struct btusb_cb *p_dev, BT_HDR *p_msg);
-static int btusb_lite_av_sbc_start(struct btusb *p_dev, UINT8 scb_idx,
+static int btusb_lite_av_sbc_start(struct btusb_cb *p_dev, UINT8 scb_idx,
tBTA_AV_AUDIO_CODEC_INFO*p_codec_cfg);
static int btusb_lite_av_parse_vendor_codec(UINT8 *p_codec_info, UINT32 *p_vendor_id, UINT16 *p_vendor_codec_id);
@@ -118,7 +124,7 @@ static int btusb_lite_av_parse_vendor_codec(UINT8 *p_codec_info, UINT32 *p_vendo
#ifdef BTUSB_LITE_SEC
static int btusb_lite_av_parse_sec_codec(struct btusb_lite_av_sec_param *p_sec_param,
UINT8 *p_codec_info);
-static int btusb_lite_av_sec_start(struct btusb *p_dev, UINT8 scb_idx,
+static int btusb_lite_av_sec_start(struct btusb_cb *p_dev, UINT8 scb_idx,
tBTA_AV_AUDIO_CODEC_INFO*p_codec_cfg);
#endif
@@ -131,14 +137,13 @@ static int btusb_lite_av_sec_start(struct btusb *p_dev, UINT8 scb_idx,
** Returns None.
**
*******************************************************************************/
-void btusb_lite_av_add(struct btusb *p_dev, tBTA_AV_SYNC_INFO *p_sync_info,
+void btusb_lite_av_add(struct btusb_cb *p_dev, tBTA_AV_SYNC_INFO *p_sync_info,
UINT8 multi_av_supported, UINT16 curr_mtu)
{
- struct btusb_lite_av_cb *p_av_cb = &p_dev->lite_cb.s.av;
+ struct btusb_lite_av_cb *p_av_cb = &p_dev->lite_cb.av;
struct btusb_lite_av_scb *p_av_scb;
int rv;
- p_av_cb->stack_mtu = curr_mtu; /* Update MTU */
p_av_cb->curr_mtu = curr_mtu; /* Update MTU */
if (p_sync_info->hdi >= BTA_AV_NUM_STRS)
@@ -164,17 +169,18 @@ void btusb_lite_av_add(struct btusb *p_dev, tBTA_AV_SYNC_INFO *p_sync_info,
p_av_scb->l2c_cid = p_sync_info->l2c_cid;
memcpy(p_av_scb->peer_addr, p_sync_info->peer_addr, BD_ADDR_LEN);
- if (p_av_cb->pcm.state == PCM_CLOSED)
+ if (p_av_cb->pcm.state == BTPCM_LITE_PCM_CLOSED)
{
/* Open the PCM Channel */
- rv = btpcm_open(p_dev->lite_cb.p_btpcm);
+ rv = btpcm_open(BTUSB_LITE_AV_PCM_CHANNEL);
if (rv < 0)
{
BTUSB_ERR("btpcm_open failed\n");
return;
}
- p_av_cb->pcm.state = PCM_OPENED;
+ p_av_cb->pcm.state = BTPCM_LITE_PCM_OPENED;
p_av_cb->pcm.frequency = -1;
+ p_av_cb->pcm.channel = BTUSB_LITE_AV_PCM_CHANNEL;
}
}
@@ -187,10 +193,10 @@ void btusb_lite_av_add(struct btusb *p_dev, tBTA_AV_SYNC_INFO *p_sync_info,
** Returns None.
**
*******************************************************************************/
-void btusb_lite_av_remove(struct btusb *p_dev, UINT8 scb_idx,
+void btusb_lite_av_remove(struct btusb_cb *p_dev, UINT8 scb_idx,
UINT8 audio_open_cnt, UINT16 curr_mtu)
{
- struct btusb_lite_av_cb *p_av_cb = &p_dev->lite_cb.s.av;
+ struct btusb_lite_av_cb *p_av_cb = &p_dev->lite_cb.av;
struct btusb_lite_av_scb *p_av_scb;
int av_scb;
int cleanup_needed = 1;
@@ -208,7 +214,7 @@ void btusb_lite_av_remove(struct btusb *p_dev, UINT8 scb_idx,
p_av_scb = &p_av_cb->scb[scb_idx];
/* Remove AVDT CCB and SCB */
- btusb_lite_avdt_remove_scb(p_dev, p_av_scb->avdt_handle, NULL);
+ btusb_lite_avdt_remove_scb(p_dev, p_av_scb->avdt_handle, NULL);
/* Clear the AV Stream Control Clock */
memset(p_av_scb, 0, sizeof(*p_av_scb));
@@ -226,26 +232,26 @@ void btusb_lite_av_remove(struct btusb *p_dev, UINT8 scb_idx,
if (cleanup_needed)
{
- if (p_av_cb->pcm.state == PCM_STARTED)
+ if (p_av_cb->pcm.state == BTPCM_LITE_PCM_STARTED)
{
/* Stop the PCM Channel */
- rv = btpcm_stop(p_dev->lite_cb.p_btpcm);
+ rv = btpcm_stop(BTUSB_LITE_AV_PCM_CHANNEL);
if (rv < 0)
{
BTUSB_ERR("btpcm_close failed\n");
}
- p_av_cb->pcm.state = PCM_CONFIGURED;
+ p_av_cb->pcm.state = BTPCM_LITE_PCM_CONFIGURED;
}
- if (p_av_cb->pcm.state != PCM_CLOSED)
+ if (p_av_cb->pcm.state != BTPCM_LITE_PCM_CLOSED)
{
/* Close the PCM Channel */
- rv = btpcm_close(p_dev->lite_cb.p_btpcm);
+ rv = btpcm_close(BTUSB_LITE_AV_PCM_CHANNEL);
if (rv < 0)
{
BTUSB_ERR("btpcm_close failed\n");
}
- p_av_cb->pcm.state = PCM_CLOSED;
+ p_av_cb->pcm.state = BTPCM_LITE_PCM_CLOSED;
}
if (p_av_cb->encoder.opened)
@@ -278,10 +284,10 @@ void btusb_lite_av_remove(struct btusb *p_dev, UINT8 scb_idx,
** Returns None.
**
*******************************************************************************/
-void btusb_lite_av_start(struct btusb *p_dev, UINT8 scb_idx, UINT8 start_stop_flag,
+void btusb_lite_av_start(struct btusb_cb *p_dev, UINT8 scb_idx, UINT8 start_stop_flag,
UINT8 audio_open_cnt, tBTA_AV_AUDIO_CODEC_INFO *p_codec_cfg)
{
- struct btusb_lite_av_cb *p_av_cb = &p_dev->lite_cb.s.av;
+ struct btusb_lite_av_cb *p_av_cb = &p_dev->lite_cb.av;
UINT32 vendor_id;
UINT16 vendor_codec_id;
struct btusb_lite_av_scb *p_av_scb;
@@ -402,10 +408,10 @@ static int btusb_lite_av_parse_vendor_codec(UINT8 *p_codec_info, UINT32 *p_vendo
** Returns Status
**
*******************************************************************************/
-static int btusb_lite_av_sbc_start(struct btusb *p_dev, UINT8 scb_idx,
+static int btusb_lite_av_sbc_start(struct btusb_cb *p_dev, UINT8 scb_idx,
tBTA_AV_AUDIO_CODEC_INFO*p_codec_cfg)
{
- struct btusb_lite_av_cb *p_av_cb = &p_dev->lite_cb.s.av;
+ struct btusb_lite_av_cb *p_av_cb = &p_dev->lite_cb.av;
struct btusb_lite_encoder_ccb *p_encoder;
struct btusb_lite_av_scb *p_av_scb;
int nb_sbc_frames;
@@ -496,7 +502,7 @@ static int btusb_lite_av_sbc_start(struct btusb *p_dev, UINT8 scb_idx,
BTUSB_INFO("encoded_frame_size=%d\n", rv);
/* Configure the PCM Channel */
- rv = btpcm_config(p_dev->lite_cb.p_btpcm,
+ rv = btpcm_config(BTUSB_LITE_AV_PCM_CHANNEL,
p_dev,
sbc_param.frequency,
sbc_param.mode==CODEC_MODE_MONO?1:2,
@@ -508,28 +514,12 @@ static int btusb_lite_av_sbc_start(struct btusb *p_dev, UINT8 scb_idx,
return -1;
}
-
/* Calculate and save the PCM frame size */
p_encoder->pcm_frame_size = sbc_param.nb_blocks * sbc_param.nb_subbands;
BTUSB_INFO("pcm_frame_size=%d\n", p_encoder->pcm_frame_size);
-#if 0
/* Calculate nb_sbc_frames depending on MTU */
nb_sbc_frames = (p_av_cb->curr_mtu - av_header_len) / p_encoder->encoded_frame_size;
-#else
- nb_sbc_frames = 10;
- if(p_av_cb->stack_mtu < (p_encoder->encoded_frame_size * nb_sbc_frames + av_header_len))
- { /* if 10 SBC frame is bigger than mtu size, should change nb_sbc_frames value to fit in mtu */
- nb_sbc_frames = (p_av_cb->stack_mtu - av_header_len) / p_encoder->encoded_frame_size;
- p_av_cb->curr_mtu = p_av_cb->stack_mtu;
- }
- else
- {
- p_av_cb->curr_mtu = p_encoder->encoded_frame_size * nb_sbc_frames + av_header_len;
- }
-#endif
- BTUSB_INFO("mtu:%d, nb_sbc_frames:%d, encoded_frame_size%d\n",
- p_av_cb->curr_mtu, nb_sbc_frames, p_encoder->pcm_frame_size);
/* Calculate the size of the Payload */
p_av_cb->payload_len = nb_sbc_frames * p_encoder->encoded_frame_size;
@@ -537,13 +527,14 @@ static int btusb_lite_av_sbc_start(struct btusb *p_dev, UINT8 scb_idx,
BTUSB_INFO("nb_sbc_frames=%d payload_len=%d\n", nb_sbc_frames, p_av_cb->payload_len);
/* Start the PCM stream */
- rv = btpcm_start(p_dev->lite_cb.p_btpcm, p_encoder->pcm_frame_size, nb_sbc_frames, 0);
+ rv = btpcm_start(BTUSB_LITE_AV_PCM_CHANNEL,
+ p_encoder->pcm_frame_size, nb_sbc_frames, 0);
if (rv < 0)
{
BTUSB_ERR("btpcm_start failed\n");
return -1;
}
- p_av_cb->pcm.state = PCM_STARTED;
+ p_av_cb->pcm.state = BTPCM_LITE_PCM_STARTED;
return 0;
}
@@ -626,10 +617,10 @@ static int btusb_lite_av_parse_sec_codec(struct btusb_lite_av_sec_param *p_sec_p
** Returns Status
**
*******************************************************************************/
-static int btusb_lite_av_sec_start(struct btusb *p_dev, UINT8 scb_idx,
+static int btusb_lite_av_sec_start(struct btusb_cb *p_dev, UINT8 scb_idx,
tBTA_AV_AUDIO_CODEC_INFO*p_codec_cfg)
{
- struct btusb_lite_av_cb *p_av_cb = &p_dev->lite_cb.s.av;
+ struct btusb_lite_av_cb *p_av_cb = &p_dev->lite_cb.av;
struct btusb_lite_encoder_ccb *p_encoder;
struct btusb_lite_av_scb *p_av_scb;
int nb_sec_frames;
@@ -706,7 +697,7 @@ static int btusb_lite_av_sec_start(struct btusb *p_dev, UINT8 scb_idx,
BTUSB_INFO("encoded_frame_size=%d\n", rv);
/* Configure the PCM Channel */
- rv = btpcm_config(p_dev->lite_cb.p_btpcm,
+ rv = btpcm_config(BTUSB_LITE_AV_PCM_CHANNEL,
p_dev,
sec_param.frequency,
sec_param.mode==BTSEC_MODE_MONO?1:2,
@@ -724,23 +715,8 @@ static int btusb_lite_av_sec_start(struct btusb *p_dev, UINT8 scb_idx,
p_encoder->pcm_frame_size = BTSEC_FRAME_SIZE;
BTUSB_INFO("pcm_frame_size=%d\n", p_encoder->pcm_frame_size);
-
-
-#if 0
- /* Calculate nb_sec_frames depending on MTU */
+ /* Calculate nb_sbc_frames depending on MTU */
nb_sec_frames = (p_av_cb->curr_mtu - av_header_len) / p_encoder->encoded_frame_size;
-#else
- nb_sec_frames = 10;
- if(p_av_cb->stack_mtu < (p_encoder->encoded_frame_size * nb_sec_frames + av_header_len))
- { /* if 10 SEC frames is bigger than mtu value, should use mtu */
- nb_sec_frames = (p_av_cb->stack_mtu - av_header_len) / p_encoder->encoded_frame_size;
- p_av_cb->curr_mtu = p_av_cb->stack_mtu;
- }
- else
- {
- p_av_cb->curr_mtu = p_encoder->encoded_frame_size * nb_sec_frames + av_header_len;
- }
-#endif
/* Calculate the size of the Payload */
p_av_cb->payload_len = nb_sec_frames * p_encoder->encoded_frame_size;
@@ -748,7 +724,7 @@ static int btusb_lite_av_sec_start(struct btusb *p_dev, UINT8 scb_idx,
BTUSB_INFO("nb_sec_frames=%d payload_len=%d\n", nb_sec_frames, p_av_cb->payload_len);
/* Start the PCM stream */
- rv = btpcm_start(p_dev->lite_cb.p_btpcm,
+ rv = btpcm_start(BTUSB_LITE_AV_PCM_CHANNEL,
p_encoder->pcm_frame_size, nb_sec_frames, 0);
if (rv < 0)
{
@@ -772,9 +748,9 @@ static int btusb_lite_av_sec_start(struct btusb *p_dev, UINT8 scb_idx,
** Returns None.
**
*******************************************************************************/
-void btusb_lite_av_stop(struct btusb *p_dev, UINT8 scb_idx, UINT8 audio_open_cnt)
+void btusb_lite_av_stop(struct btusb_cb *p_dev, UINT8 scb_idx, UINT8 audio_open_cnt)
{
- struct btusb_lite_av_cb *p_av_cb = &p_dev->lite_cb.s.av;
+ struct btusb_lite_av_cb *p_av_cb = &p_dev->lite_cb.av;
struct btusb_lite_av_scb *p_av_scb;
int rv;
@@ -792,20 +768,20 @@ void btusb_lite_av_stop(struct btusb *p_dev, UINT8 scb_idx, UINT8 audio_open_cnt
p_av_cb->scb[scb_idx].started = FALSE;
- if (p_av_cb->pcm.state != PCM_STARTED)
+ if (p_av_cb->pcm.state != BTPCM_LITE_PCM_STARTED)
{
BTUSB_ERR("BTPCM was not started\n");
return;
}
/* Stop the PCM stream */
- rv = btpcm_stop(p_dev->lite_cb.p_btpcm);
+ rv = btpcm_stop(BTUSB_LITE_AV_PCM_CHANNEL);
if (rv < 0)
{
BTUSB_ERR("btpcm_stop failed\n");
return;
}
- p_av_cb->pcm.state = PCM_CONFIGURED;
+ p_av_cb->pcm.state = BTPCM_LITE_PCM_CONFIGURED;
}
/*******************************************************************************
@@ -817,9 +793,9 @@ void btusb_lite_av_stop(struct btusb *p_dev, UINT8 scb_idx, UINT8 audio_open_cnt
** Returns none.
**
*******************************************************************************/
-void btusb_lite_av_suspend(struct btusb *p_dev, UINT8 scb_idx, UINT8 audio_open_cnt)
+void btusb_lite_av_suspend(struct btusb_cb *p_dev, UINT8 scb_idx, UINT8 audio_open_cnt)
{
- struct btusb_lite_av_cb *p_av_cb = &p_dev->lite_cb.s.av;
+ struct btusb_lite_av_cb *p_av_cb = &p_dev->lite_cb.av;
struct btusb_lite_av_scb *p_av_scb;
int rv;
@@ -837,20 +813,20 @@ void btusb_lite_av_suspend(struct btusb *p_dev, UINT8 scb_idx, UINT8 audio_open_
p_av_cb->scb[scb_idx].started = FALSE;
- if (p_av_cb->pcm.state != PCM_STARTED)
+ if (p_av_cb->pcm.state != BTPCM_LITE_PCM_STARTED)
{
BTUSB_ERR("BTPCM was not started\n");
return;
}
/* Stop the PCM stream */
- rv = btpcm_stop(p_dev->lite_cb.p_btpcm);
+ rv = btpcm_stop(BTUSB_LITE_AV_PCM_CHANNEL);
if (rv < 0)
{
BTUSB_ERR("btpcm_stop failed\n");
return;
}
- p_av_cb->pcm.state = PCM_CONFIGURED;
+ p_av_cb->pcm.state = BTPCM_LITE_PCM_CONFIGURED;
}
/*******************************************************************************
@@ -1083,34 +1059,40 @@ static int btusb_lite_sbc_get_bitpool(struct btusb_lite_av_sbc_param *p_sbc_para
** Returns Void
**
*******************************************************************************/
-static void btusb_lite_av_pcm_cback(void *p_opaque, void *p_data, int nb_pcm_frames)
+static void btusb_lite_av_pcm_cback(int pcm_stream, void *p_dev, void *p_data,
+ int nb_pcm_frames)
{
- struct btusb *p_dev = p_opaque;
struct btusb_lite_av_cb *p_av_cb;
int pcm_frame_size_byte;
void *p_dest;
int written_enc_size;
struct btusb_lite_encoder_ccb *p_encoder;
- if (!p_dev)
+ if (p_dev == NULL)
{
- BTUSB_ERR("Null p_dev\n");
+ BTUSB_ERR("Null _p_dev\n");
return;
}
- if (!p_data)
+ if (p_data == NULL)
{
BTUSB_ERR("Null p_data\n");
return;
}
+ if (pcm_stream != BTUSB_LITE_AV_PCM_CHANNEL)
+ {
+ BTUSB_ERR("Bad stream=%d\n", pcm_stream);
+ return;
+ }
+
/* Get Reference on the SBC Stream (which is the same than the Encoder channel) */
- p_av_cb = &p_dev->lite_cb.s.av;
+ p_av_cb = &((struct btusb_cb *)p_dev)->lite_cb.av;
- if (p_av_cb->pcm.state != PCM_STARTED)
+ if (p_av_cb->pcm.state != BTPCM_LITE_PCM_STARTED)
{
BTUSB_ERR("BTPCM is not started\n");
- btpcm_stop(p_dev->lite_cb.p_btpcm);
+ btpcm_stop(pcm_stream);
return;
}
@@ -1129,26 +1111,6 @@ static void btusb_lite_av_pcm_cback(void *p_opaque, void *p_data, int nb_pcm_fra
return;
}
- /*
- * No PCM data in a timer period.
- * Need to send AV data in a working buffer if it exists
- */
- if (nb_pcm_frames == 0)
- {
- if (p_av_cb->p_buf_working)
- {
- if (p_av_cb->p_buf_working->len)
- {
- /* For AV channel, send the packet */
- btusb_lite_av_send_packet((struct btusb *)p_dev, p_av_cb->p_buf_working);
-
- /* A new working buffer must be allocated */
- p_av_cb->p_buf_working = NULL;
- }
- }
- return;
- }
-
/* While received buffer is not empty */
while (nb_pcm_frames)
{
@@ -1160,7 +1122,7 @@ static void btusb_lite_av_pcm_cback(void *p_opaque, void *p_data, int nb_pcm_fra
}
/* If no working buffer allocated */
- if (!p_av_cb->p_buf_working)
+ if (p_av_cb->p_buf_working == NULL)
{
/* Get a buffer from the pool */
p_av_cb->p_buf_working = (BT_HDR *)GKI_getbuf(sizeof(BT_HDR) + p_av_cb->header_len + p_av_cb->payload_len);
@@ -1215,14 +1177,9 @@ static void btusb_lite_av_pcm_cback(void *p_opaque, void *p_data, int nb_pcm_fra
p_encoder->encoded_frame_size);/* Expected Output SEC frame size */
}
#endif
- else
- {
- BTUSB_ERR("Bad Encoding TYPE:%d)\n", p_encoder->type);
- }
-
if (written_enc_size != p_av_cb->encoder.encoded_frame_size)
{
- BTUSB_ERR("Bad Encoded Frame length=%d (expected=%d)\n",
+ BTUSB_ERR("Bad Encoded Fame lenght=%d (expected=%d)\n",
written_enc_size, p_av_cb->encoder.encoded_frame_size);
}
@@ -1243,7 +1200,7 @@ static void btusb_lite_av_pcm_cback(void *p_opaque, void *p_data, int nb_pcm_fra
if (p_av_cb->encoder.encoded_frame_size > (p_av_cb->curr_mtu - p_av_cb->p_buf_working->len))
{
/* For AV channel, send the packet */
- btusb_lite_av_send_packet((struct btusb *)p_dev, p_av_cb->p_buf_working);
+ btusb_lite_av_send_packet((struct btusb_cb *)p_dev, p_av_cb->p_buf_working);
/* A new working buffer must be allocated */
p_av_cb->p_buf_working = NULL;
@@ -1260,7 +1217,7 @@ static void btusb_lite_av_pcm_cback(void *p_opaque, void *p_data, int nb_pcm_fra
** Returns Void
**
*******************************************************************************/
-static void btusb_lite_av_send_packet(struct btusb *p_dev, BT_HDR *p_msg)
+static void btusb_lite_av_send_packet(struct btusb_cb *p_dev, BT_HDR *p_msg)
{
struct btusb_lite_av_cb *p_av_cb;
struct btusb_lite_av_scb *p_av_scb;
@@ -1283,7 +1240,7 @@ static void btusb_lite_av_send_packet(struct btusb *p_dev, BT_HDR *p_msg)
}
/* Get Reference on the AV Streams */
- p_av_cb = &p_dev->lite_cb.s.av;
+ p_av_cb = &((struct btusb_cb *)p_dev)->lite_cb.av;
/* Update TimeStamp */
p_av_cb->timestamp += p_msg->layer_specific * p_av_cb->encoder.pcm_frame_size;
diff --git a/src/btusb_lite_avdt.c b/bcm569/src/btusb_lite_avdt.c
index d1db2b7..46cf0ce 100755
--- a/src/btusb_lite_avdt.c
+++ b/bcm569/src/btusb_lite_avdt.c
@@ -36,10 +36,10 @@
/*
* Local functions
*/
-static struct btusb_lite_avdt_scb *btusb_lite_avdt_allocate_scb(struct btusb *p_dev);
-static void btusb_lite_avdt_free_scb(struct btusb *p_dev, struct btusb_lite_avdt_scb *p_scb_free);
-static struct btusb_lite_avdt_ccb *btusb_lite_avdt_allocate_ccb(struct btusb *p_dev);
-static void btusb_lite_avdt_free_ccb(struct btusb *p_dev, struct btusb_lite_avdt_ccb *p_ccb_free);
+static struct btusb_lite_avdt_scb *btusb_lite_avdt_allocate_scb(struct btusb_cb *p_dev);
+static void btusb_lite_avdt_free_scb(struct btusb_cb *p_dev, struct btusb_lite_avdt_scb *p_scb_free);
+static struct btusb_lite_avdt_ccb *btusb_lite_avdt_allocate_ccb(struct btusb_cb *p_dev);
+static void btusb_lite_avdt_free_ccb(struct btusb_cb *p_dev, struct btusb_lite_avdt_ccb *p_ccb_free);
static UINT8 *btusb_lite_avdt_write_rtp_header(UINT8 *p_data, UINT8 m_pt, UINT16 seq_number, UINT32 timestamp, UINT32 ssrc);
@@ -55,12 +55,12 @@ static UINT8 *btusb_lite_avdt_write_rtp_header(UINT8 *p_data, UINT8 m_pt, UINT16
** is not allocated.
**
*******************************************************************************/
-struct btusb_lite_avdt_scb *btusb_lite_avdt_scb_by_hdl(struct btusb *p_dev, UINT8 handle)
+struct btusb_lite_avdt_scb *btusb_lite_avdt_scb_by_hdl(struct btusb_cb *p_dev, UINT8 handle)
{
struct btusb_lite_avdt_scb *p_scb;
UINT8 scb;
- p_scb = &p_dev->lite_cb.s.avdt.scb[0];
+ p_scb = &p_dev->lite_cb.avdt.scb[0];
for(scb = 0; scb < AVDT_NUM_SEPS; scb++, p_scb++ )
{
if((p_scb->allocated) &&
@@ -79,7 +79,7 @@ struct btusb_lite_avdt_scb *btusb_lite_avdt_scb_by_hdl(struct btusb *p_dev, UINT
** Returns AVDT_SYNC_SUCCESS/AVDT_SYNC_FAILURE
**
*******************************************************************************/
-UINT8 btusb_lite_avdt_init_scb(struct btusb *p_dev, tAVDT_SCB_SYNC_INFO *p_scb_info)
+UINT8 btusb_lite_avdt_init_scb(struct btusb_cb *p_dev, tAVDT_SCB_SYNC_INFO *p_scb_info)
{
struct btusb_lite_avdt_scb *p_scb;
struct btusb_lite_avdt_ccb *p_ccb;
@@ -124,7 +124,7 @@ UINT8 btusb_lite_avdt_init_scb(struct btusb *p_dev, tAVDT_SCB_SYNC_INFO *p_scb_i
** Returns AVDT_SYNC_SUCCESS/AVDT_SYNC_FAILURE
**
*******************************************************************************/
-UINT8 btusb_lite_avdt_remove_scb(struct btusb *p_dev, UINT8 handle, tAVDT_SCB_SYNC_INFO *p_scb_info)
+UINT8 btusb_lite_avdt_remove_scb(struct btusb_cb *p_dev, UINT8 handle, tAVDT_SCB_SYNC_INFO *p_scb_info)
{
struct btusb_lite_avdt_scb *p_scb;
@@ -158,12 +158,12 @@ UINT8 btusb_lite_avdt_remove_scb(struct btusb *p_dev, UINT8 handle, tAVDT_SCB_SY
** Returns pointer of CCB
**
*******************************************************************************/
-static struct btusb_lite_avdt_ccb *btusb_lite_avdt_allocate_ccb(struct btusb *p_dev)
+static struct btusb_lite_avdt_ccb *btusb_lite_avdt_allocate_ccb(struct btusb_cb *p_dev)
{
struct btusb_lite_avdt_ccb *p_ccb;
UINT8 ccb;
- p_ccb = &p_dev->lite_cb.s.avdt.ccb[0];
+ p_ccb = &p_dev->lite_cb.avdt.ccb[0];
for(ccb = 0; ccb < AVDT_NUM_LINKS; ccb++, p_ccb++)
{
if (!p_ccb->allocated)
@@ -186,12 +186,12 @@ static struct btusb_lite_avdt_ccb *btusb_lite_avdt_allocate_ccb(struct btusb *p_
** Returns None
**
*******************************************************************************/
-static void btusb_lite_avdt_free_ccb(struct btusb *p_dev, struct btusb_lite_avdt_ccb *p_ccb_free)
+static void btusb_lite_avdt_free_ccb(struct btusb_cb *p_dev, struct btusb_lite_avdt_ccb *p_ccb_free)
{
struct btusb_lite_avdt_ccb *p_ccb;
UINT8 ccb;
- p_ccb = &p_dev->lite_cb.s.avdt.ccb[0];
+ p_ccb = &p_dev->lite_cb.avdt.ccb[0];
for(ccb = 0; ccb < AVDT_NUM_LINKS; ccb++, p_ccb++)
{
if (p_ccb == p_ccb_free)
@@ -217,12 +217,12 @@ static void btusb_lite_avdt_free_ccb(struct btusb *p_dev, struct btusb_lite_avdt
** Returns pointer of SCB
**
*******************************************************************************/
-static struct btusb_lite_avdt_scb *btusb_lite_avdt_allocate_scb(struct btusb *p_dev)
+static struct btusb_lite_avdt_scb *btusb_lite_avdt_allocate_scb(struct btusb_cb *p_dev)
{
struct btusb_lite_avdt_scb *p_scb;
UINT8 scb;
- p_scb = &p_dev->lite_cb.s.avdt.scb[0];
+ p_scb = &p_dev->lite_cb.avdt.scb[0];
for(scb = 0; scb < AVDT_NUM_SEPS; scb++, p_scb++)
{
if(!p_scb->allocated)
@@ -245,12 +245,12 @@ static struct btusb_lite_avdt_scb *btusb_lite_avdt_allocate_scb(struct btusb *p_
** Returns None
**
*******************************************************************************/
-static void btusb_lite_avdt_free_scb(struct btusb *p_dev, struct btusb_lite_avdt_scb *p_scb_free)
+static void btusb_lite_avdt_free_scb(struct btusb_cb *p_dev, struct btusb_lite_avdt_scb *p_scb_free)
{
struct btusb_lite_avdt_scb *p_scb;
UINT8 scb;
- p_scb = &p_dev->lite_cb.s.avdt.scb[0];
+ p_scb = &p_dev->lite_cb.avdt.scb[0];
for(scb = 0; scb < AVDT_NUM_SEPS; scb++, p_scb++)
{
if (p_scb == p_scb_free)
@@ -276,7 +276,7 @@ static void btusb_lite_avdt_free_scb(struct btusb *p_dev, struct btusb_lite_avdt
** Returns None
**
*******************************************************************************/
-void btusb_lite_avdt_send(struct btusb *p_dev, BT_HDR *p_msg, UINT8 avdt_handle,
+void btusb_lite_avdt_send(struct btusb_cb *p_dev, BT_HDR *p_msg, UINT8 avdt_handle,
UINT8 m_pt, UINT8 option, UINT32 timestamp)
{
UINT8 *p_data;
@@ -402,7 +402,7 @@ static UINT8 *btusb_lite_avdt_write_rtp_header(UINT8 *p_data, UINT8 m_pt, UINT16
** Returns AVDT_SYNC_SUCCESS/AVDT_SYNC_FAILURE
**
*******************************************************************************/
-UINT8 btusb_lite_avdt_cp_set_scms(struct btusb *p_dev, UINT8 avdt_handle,
+UINT8 btusb_lite_avdt_cp_set_scms(struct btusb_cb *p_dev, UINT8 avdt_handle,
BOOLEAN enable, UINT8 scms_hdr)
{
struct btusb_lite_avdt_scb *p_avdt_scb;
diff --git a/src/btusb_lite_hci.c b/bcm569/src/btusb_lite_hci.c
index 321174a..83835d9 100755
--- a/src/btusb_lite_hci.c
+++ b/bcm569/src/btusb_lite_hci.c
@@ -41,11 +41,11 @@
static UINT8 *btusb_lite_hci_write_acl_header(UINT8 *p_data, UINT16 con_hdl, UINT16 length);
static UINT8 *btusb_lite_hci_write_evt_header(UINT8 *p_data, UINT8 event, UINT8 length);
-static int btusb_lite_hci_transport_pause_hndl(struct btusb *p_dev, BT_HDR *p_msg);
-static int btusb_lite_hci_transport_resume_hndl(struct btusb *p_dev, BT_HDR *p_msg);
-static void btusb_lite_hci_cmd_cplt_evt_send(struct btusb *p_dev,
+static int btusb_lite_hci_transport_pause_hndl(struct btusb_cb *p_dev, BT_HDR *p_msg);
+static int btusb_lite_hci_transport_resume_hndl(struct btusb_cb *p_dev, BT_HDR *p_msg);
+static void btusb_lite_hci_cmd_cplt_evt_send(struct btusb_cb *p_dev,
UINT16 opcode, UINT8 *p_param, UINT8 param_len);
-static int btusb_lite_hci_nocp_event_hdlr(struct btusb *p_dev, UINT8 *p_data, int length);
+static int btusb_lite_hci_nocp_event_hdlr(struct btusb_cb *p_dev, UINT8 *p_data, int length);
/*******************************************************************************
@@ -57,7 +57,7 @@ static int btusb_lite_hci_nocp_event_hdlr(struct btusb *p_dev, UINT8 *p_data, in
** Returns Void
**
*******************************************************************************/
-int btusb_lite_hci_acl_send(struct btusb *p_dev, BT_HDR *p_msg, UINT16 con_hdl)
+int btusb_lite_hci_acl_send(struct btusb_cb *p_dev, BT_HDR *p_msg, UINT16 con_hdl)
{
UINT8 *p_data;
@@ -101,7 +101,7 @@ int btusb_lite_hci_acl_send(struct btusb *p_dev, BT_HDR *p_msg, UINT16 con_hdl)
** 0 if the command is handled
**
*******************************************************************************/
-int btusb_lite_hci_cmd_filter(struct btusb *p_dev, BT_HDR *p_msg)
+int btusb_lite_hci_cmd_filter(struct btusb_cb *p_dev, BT_HDR *p_msg)
{
UINT8 *p;
UINT8 hci_type;
@@ -149,7 +149,7 @@ int btusb_lite_hci_cmd_filter(struct btusb *p_dev, BT_HDR *p_msg)
** 0 if the command is handled
**
*******************************************************************************/
-static int btusb_lite_hci_transport_pause_hndl(struct btusb *p_dev, BT_HDR *p_msg)
+static int btusb_lite_hci_transport_pause_hndl(struct btusb_cb *p_dev, BT_HDR *p_msg)
{
UINT8 param[sizeof(UINT8)];
UINT8 *p_param = param;
@@ -174,7 +174,7 @@ static int btusb_lite_hci_transport_pause_hndl(struct btusb *p_dev, BT_HDR *p_ms
** 0 if the command is handled
**
*******************************************************************************/
-static int btusb_lite_hci_transport_resume_hndl(struct btusb *p_dev, BT_HDR *p_msg)
+static int btusb_lite_hci_transport_resume_hndl(struct btusb_cb *p_dev, BT_HDR *p_msg)
{
UINT8 param[sizeof(UINT8)];
UINT8 *p_param = param;
@@ -199,7 +199,7 @@ static int btusb_lite_hci_transport_resume_hndl(struct btusb *p_dev, BT_HDR *p_m
** 0 if the event is handled
**
*******************************************************************************/
-int btusb_lite_hci_event_filter(struct btusb *p_dev, UINT8 *p_data, int length)
+int btusb_lite_hci_event_filter(struct btusb_cb *p_dev, UINT8 *p_data, int length)
{
#if 0
BT_HDR *p_msg;
@@ -273,7 +273,7 @@ int btusb_lite_hci_event_filter(struct btusb *p_dev, UINT8 *p_data, int length)
** 0 if the event is handled
**
*******************************************************************************/
-static int btusb_lite_hci_nocp_event_hdlr(struct btusb *p_dev, UINT8 *p_data, int length)
+static int btusb_lite_hci_nocp_event_hdlr(struct btusb_cb *p_dev, UINT8 *p_data, int length)
{
UINT8 nb_handle;
UINT16 con_hdl;
@@ -359,7 +359,7 @@ static int btusb_lite_hci_nocp_event_hdlr(struct btusb *p_dev, UINT8 *p_data, in
** Returns Void
**
*******************************************************************************/
-static void btusb_lite_hci_cmd_cplt_evt_send(struct btusb *p_dev,
+static void btusb_lite_hci_cmd_cplt_evt_send(struct btusb_cb *p_dev,
UINT16 opcode, UINT8 *p_param, UINT8 param_len)
{
BT_HDR *p_msg;
diff --git a/src/btusb_lite_l2c.c b/bcm569/src/btusb_lite_l2c.c
index 9d227d2..5db7ecc 100755
--- a/src/btusb_lite_l2c.c
+++ b/bcm569/src/btusb_lite_l2c.c
@@ -44,10 +44,10 @@ static UINT8 *btusb_lite_l2c_write_header(UINT8 *p_data, UINT16 length, UINT16 c
** Returns Status.
**
*******************************************************************************/
-int btusb_lite_l2c_add(struct btusb *p_dev, tL2C_STREAM_INFO *p_l2c_stream)
+int btusb_lite_l2c_add(struct btusb_cb *p_dev, tL2C_STREAM_INFO *p_l2c_stream)
{
int idx;
- struct btusb_lite_l2c_cb *p_l2c = &p_dev->lite_cb.s.l2c;
+ struct btusb_lite_l2c_cb *p_l2c = &p_dev->lite_cb.l2c;
struct btusb_lite_l2c_ccb *p_l2c_ccb;
/* Check if this L2CAP Stream exists */
@@ -103,10 +103,10 @@ int btusb_lite_l2c_add(struct btusb *p_dev, tL2C_STREAM_INFO *p_l2c_stream)
** Returns Status.
**
*******************************************************************************/
-int btusb_lite_l2c_remove(struct btusb *p_dev, UINT16 local_cid)
+int btusb_lite_l2c_remove(struct btusb_cb *p_dev, UINT16 local_cid)
{
int idx;
- struct btusb_lite_l2c_cb *p_l2c = &p_dev->lite_cb.s.l2c;
+ struct btusb_lite_l2c_cb *p_l2c = &p_dev->lite_cb.l2c;
struct btusb_lite_l2c_ccb *p_l2c_ccb;
/* Check if this L2CAP Stream exists */
@@ -142,7 +142,7 @@ int btusb_lite_l2c_remove(struct btusb *p_dev, UINT16 local_cid)
** Returns Status.
**
*******************************************************************************/
-int btusb_lite_l2c_send(struct btusb *p_dev, BT_HDR *p_msg, UINT16 local_cid)
+int btusb_lite_l2c_send(struct btusb_cb *p_dev, BT_HDR *p_msg, UINT16 local_cid)
{
int idx;
struct btusb_lite_l2c_cb *p_l2c;
@@ -150,7 +150,7 @@ int btusb_lite_l2c_send(struct btusb *p_dev, BT_HDR *p_msg, UINT16 local_cid)
UINT8 *p_data;
/* Look for the first AV stream Started */
- p_l2c = &p_dev->lite_cb.s.l2c;
+ p_l2c = &p_dev->lite_cb.l2c;
for (idx = 0, p_l2c_ccb = p_l2c->ccb ; idx < BTM_SYNC_INFO_NUM_STR ; idx++, p_l2c_ccb++)
{
if (p_l2c_ccb->local_cid == local_cid)
@@ -234,7 +234,7 @@ static UINT8 *btusb_lite_l2c_write_header(UINT8 *p_data, UINT16 length, UINT16 c
** Returns Number Of Complete Packet caught
**
*******************************************************************************/
-UINT16 btusb_lite_l2c_nocp_hdlr(struct btusb *p_dev, UINT16 con_hdl, UINT16 num_cplt_pck)
+UINT16 btusb_lite_l2c_nocp_hdlr(struct btusb_cb *p_dev, UINT16 con_hdl, UINT16 num_cplt_pck)
{
struct btusb_lite_l2c_cb *p_l2c;
struct btusb_lite_l2c_ccb *p_l2c_ccb;
@@ -242,7 +242,7 @@ UINT16 btusb_lite_l2c_nocp_hdlr(struct btusb *p_dev, UINT16 con_hdl, UINT16 num_
UINT16 num_cplt_pck_caugth;
/* Look for the L2CAP channel matching the Connection Handle */
- p_l2c = &p_dev->lite_cb.s.l2c;
+ p_l2c = &p_dev->lite_cb.l2c;
for (i = 0, p_l2c_ccb = p_l2c->ccb ; i < BTM_SYNC_INFO_NUM_STR ; i++, p_l2c_ccb++)
{
if (p_l2c_ccb->handle == con_hdl)
diff --git a/bcm569/src/gki/.gki_buffer.o.cmd b/bcm569/src/gki/.gki_buffer.o.cmd
new file mode 100644
index 0000000..66f808a
--- a/dev/null
+++ b/bcm569/src/gki/.gki_buffer.o.cmd
@@ -0,0 +1,644 @@
+cmd_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src/gki/gki_buffer.o := arm-linux-gnueabihf-gcc -Wp,-MD,/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src/gki/.gki_buffer.o.d -nostdinc -isystem /opt/gcc-linaro-arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.7.3/include -I/mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include -Iarch/arm/include/generated -I/mnt/nfsroot/weiguang.ruan/m8b/common/include -Iinclude -I/mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi -Iarch/arm/include/generated/uapi -I/mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi -Iinclude/generated/uapi -include /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kconfig.h -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569 -D__KERNEL__ -mlittle-endian -I/mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/mach-mesong9tv/include -I/mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/plat-meson/include -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -Werror -Werror=enum-compare -Werror=comment -Werror=implicit-int -Werror=missing-braces -Werror=unused-value -Werror=maybe-uninitialized -Werror=unused-variable -Werror=format -Werror=unused-function -Werror=switch -Werror=strict-prototypes -Werror=declaration-after-statement -Werror=uninitialized -Werror=unused-label -Werror=undef -Werror=unused-result -Werror=return-type -Werror=parentheses -Werror=int-to-pointer-cast -Wno-error=cpp -O2 -fno-dwarf2-cfi-asm -mabi=aapcs-linux -mno-thumb-interwork -funwind-tables -marm -D__LINUX_ARM_ARCH__=7 -march=armv7-a -msoft-float -Uarm -fno-reorder-blocks -fno-ipa-cp-clone -fno-partial-inlining -Wframe-larger-than=1024 -fno-stack-protector -Wno-unused-but-set-variable -fomit-frame-pointer -g -fno-inline-functions-called-once -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -DCC_HAVE_ASM_GOTO -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569 -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/inc -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src/gki -DEXPORT_SYMTAB -DEXPORT_SYMTAB -DMODULE -D"KBUILD_STR(s)=\#s" -D"KBUILD_BASENAME=KBUILD_STR(gki_buffer)" -D"KBUILD_MODNAME=KBUILD_STR(btusb_comp)" -c -o /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src/gki/gki_buffer.o /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src/gki/gki_buffer.c
+
+source_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src/gki/gki_buffer.o := /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src/gki/gki_buffer.c
+
+deps_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src/gki/gki_buffer.o := \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/inc/gki_int.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/inc/gki.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/inc/target.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/usb.h \
+ $(wildcard include/config/usb/mon.h) \
+ $(wildcard include/config/pm.h) \
+ $(wildcard include/config/acpi.h) \
+ $(wildcard include/config/pm/runtime.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/mod_devicetable.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/types.h \
+ $(wildcard include/config/uid16.h) \
+ $(wildcard include/config/lbdaf.h) \
+ $(wildcard include/config/arch/dma/addr/t/64bit.h) \
+ $(wildcard include/config/phys/addr/t/64bit.h) \
+ $(wildcard include/config/64bit.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/types.h \
+ arch/arm/include/generated/asm/types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/int-ll64.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/int-ll64.h \
+ arch/arm/include/generated/asm/bitsperlong.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitsperlong.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/bitsperlong.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/posix_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/stddef.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/stddef.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/compiler.h \
+ $(wildcard include/config/sparse/rcu/pointer.h) \
+ $(wildcard include/config/trace/branch/profiling.h) \
+ $(wildcard include/config/profile/all/branches.h) \
+ $(wildcard include/config/enable/must/check.h) \
+ $(wildcard include/config/enable/warn/deprecated.h) \
+ $(wildcard include/config/kprobes.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/compiler-gcc.h \
+ $(wildcard include/config/arch/supports/optimized/inlining.h) \
+ $(wildcard include/config/optimize/inlining.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/compiler-gcc4.h \
+ $(wildcard include/config/arch/use/builtin/bswap.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/posix_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/posix_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/uuid.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/uuid.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/string.h \
+ $(wildcard include/config/binary/printf.h) \
+ /opt/gcc-linaro-arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.7.3/include/stdarg.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/string.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/string.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/usb/ch9.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/usb/ch9.h \
+ $(wildcard include/config/size.h) \
+ $(wildcard include/config/att/one.h) \
+ $(wildcard include/config/att/selfpower.h) \
+ $(wildcard include/config/att/wakeup.h) \
+ $(wildcard include/config/att/battery.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/byteorder.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/byteorder/little_endian.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/byteorder/little_endian.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/swab.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/swab.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/swab.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/swab.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/byteorder/generic.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/errno.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/errno.h \
+ arch/arm/include/generated/asm/errno.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/errno.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/errno-base.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/delay.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kernel.h \
+ $(wildcard include/config/preempt/voluntary.h) \
+ $(wildcard include/config/debug/atomic/sleep.h) \
+ $(wildcard include/config/prove/locking.h) \
+ $(wildcard include/config/ring/buffer.h) \
+ $(wildcard include/config/tracing.h) \
+ $(wildcard include/config/ftrace/mcount/record.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/linkage.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/stringify.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/export.h \
+ $(wildcard include/config/have/underscore/symbol/prefix.h) \
+ $(wildcard include/config/modules.h) \
+ $(wildcard include/config/modversions.h) \
+ $(wildcard include/config/unused/symbols.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/linkage.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bitops.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/bitops.h \
+ $(wildcard include/config/smp.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/irqflags.h \
+ $(wildcard include/config/trace/irqflags.h) \
+ $(wildcard include/config/irqsoff/tracer.h) \
+ $(wildcard include/config/preempt/tracer.h) \
+ $(wildcard include/config/trace/irqflags/support.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/typecheck.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/irqflags.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/ptrace.h \
+ $(wildcard include/config/arm/thumb.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/ptrace.h \
+ $(wildcard include/config/cpu/endian/be8.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/hwcap.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/hwcap.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/non-atomic.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/fls64.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/sched.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/hweight.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/arch_hweight.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/const_hweight.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/lock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/le.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/ext2-atomic-setbit.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/log2.h \
+ $(wildcard include/config/arch/has/ilog2/u32.h) \
+ $(wildcard include/config/arch/has/ilog2/u64.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/printk.h \
+ $(wildcard include/config/early/printk.h) \
+ $(wildcard include/config/printk.h) \
+ $(wildcard include/config/dynamic/debug.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/init.h \
+ $(wildcard include/config/broken/rodata.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kern_levels.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/dynamic_debug.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/kernel.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/sysinfo.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/div64.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/compiler.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/bug.h \
+ $(wildcard include/config/bug.h) \
+ $(wildcard include/config/thumb2/kernel.h) \
+ $(wildcard include/config/debug/bugverbose.h) \
+ $(wildcard include/config/arm/lpae.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bug.h \
+ $(wildcard include/config/generic/bug.h) \
+ $(wildcard include/config/generic/bug/relative/pointers.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/delay.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/memory.h \
+ $(wildcard include/config/need/mach/memory/h.h) \
+ $(wildcard include/config/mmu.h) \
+ $(wildcard include/config/page/offset.h) \
+ $(wildcard include/config/highmem.h) \
+ $(wildcard include/config/dram/size.h) \
+ $(wildcard include/config/dram/base.h) \
+ $(wildcard include/config/have/tcm.h) \
+ $(wildcard include/config/arm/patch/phys/virt.h) \
+ $(wildcard include/config/phys/offset.h) \
+ $(wildcard include/config/virt/to/bus.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/const.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/sizes.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/mach-mesong9tv/include/mach/memory.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/memory_model.h \
+ $(wildcard include/config/flatmem.h) \
+ $(wildcard include/config/discontigmem.h) \
+ $(wildcard include/config/sparsemem/vmemmap.h) \
+ $(wildcard include/config/sparsemem.h) \
+ arch/arm/include/generated/asm/param.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/param.h \
+ $(wildcard include/config/hz.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/param.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/interrupt.h \
+ $(wildcard include/config/generic/hardirqs.h) \
+ $(wildcard include/config/lockdep.h) \
+ $(wildcard include/config/pm/sleep.h) \
+ $(wildcard include/config/irq/forced/threading.h) \
+ $(wildcard include/config/generic/irq/probe.h) \
+ $(wildcard include/config/proc/fs.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/preempt.h \
+ $(wildcard include/config/debug/preempt.h) \
+ $(wildcard include/config/preempt.h) \
+ $(wildcard include/config/context/tracking.h) \
+ $(wildcard include/config/preempt/count.h) \
+ $(wildcard include/config/preempt/notifiers.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/thread_info.h \
+ $(wildcard include/config/compat.h) \
+ $(wildcard include/config/debug/stack/usage.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bug.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/thread_info.h \
+ $(wildcard include/config/crunch.h) \
+ $(wildcard include/config/arm/thumbee.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/fpstate.h \
+ $(wildcard include/config/vfpv3.h) \
+ $(wildcard include/config/iwmmxt.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/domain.h \
+ $(wildcard include/config/io/36.h) \
+ $(wildcard include/config/cpu/use/domains.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/barrier.h \
+ $(wildcard include/config/cpu/32v6k.h) \
+ $(wildcard include/config/cpu/xsc3.h) \
+ $(wildcard include/config/cpu/fa526.h) \
+ $(wildcard include/config/arch/has/barriers.h) \
+ $(wildcard include/config/arm/dma/mem/bufferable.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/outercache.h \
+ $(wildcard include/config/outer/cache/sync.h) \
+ $(wildcard include/config/outer/cache.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/list.h \
+ $(wildcard include/config/debug/list.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/poison.h \
+ $(wildcard include/config/illegal/pointer/value.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/cpumask.h \
+ $(wildcard include/config/cpumask/offstack.h) \
+ $(wildcard include/config/hotplug/cpu.h) \
+ $(wildcard include/config/debug/per/cpu/maps.h) \
+ $(wildcard include/config/disable/obsolete/cpumask/functions.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/threads.h \
+ $(wildcard include/config/nr/cpus.h) \
+ $(wildcard include/config/base/small.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bitmap.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/irqreturn.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/irqnr.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/irqnr.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/hardirq.h \
+ $(wildcard include/config/tiny/rcu.h) \
+ $(wildcard include/config/tiny/preempt/rcu.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/lockdep.h \
+ $(wildcard include/config/lock/stat.h) \
+ $(wildcard include/config/debug/lock/alloc.h) \
+ $(wildcard include/config/prove/rcu.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/ftrace_irq.h \
+ $(wildcard include/config/ftrace/nmi/enter.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/vtime.h \
+ $(wildcard include/config/virt/cpu/accounting.h) \
+ $(wildcard include/config/virt/cpu/accounting/native.h) \
+ $(wildcard include/config/virt/cpu/accounting/gen.h) \
+ $(wildcard include/config/irq/time/accounting.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/hardirq.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/cache.h \
+ $(wildcard include/config/arch/has/cache/line/size.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/cache.h \
+ $(wildcard include/config/arm/l1/cache/shift.h) \
+ $(wildcard include/config/aeabi.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/irq.h \
+ $(wildcard include/config/sparse/irq.h) \
+ $(wildcard include/config/multi/irq/handler.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/mach-mesong9tv/include/mach/irqs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/irq_cpustat.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/smp.h \
+ $(wildcard include/config/use/generic/smp/helpers.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/smp.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/percpu.h \
+ $(wildcard include/config/need/per/cpu/embed/first/chunk.h) \
+ $(wildcard include/config/need/per/cpu/page/first/chunk.h) \
+ $(wildcard include/config/have/setup/per/cpu/area.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pfn.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/percpu.h \
+ $(wildcard include/config/cpu/v6.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/percpu.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/percpu-defs.h \
+ $(wildcard include/config/debug/force/weak/per/cpu.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/hrtimer.h \
+ $(wildcard include/config/timer/stats.h) \
+ $(wildcard include/config/high/res/timers.h) \
+ $(wildcard include/config/timerfd.h) \
+ $(wildcard include/config/debug/objects/timers.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rbtree.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/ktime.h \
+ $(wildcard include/config/ktime/scalar.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/time.h \
+ $(wildcard include/config/arch/uses/gettimeoffset.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/seqlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/spinlock.h \
+ $(wildcard include/config/debug/spinlock.h) \
+ $(wildcard include/config/generic/lockbreak.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bottom_half.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/spinlock_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/spinlock_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwlock_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/spinlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/processor.h \
+ $(wildcard include/config/have/hw/breakpoint.h) \
+ $(wildcard include/config/arm/errata/754327.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/hw_breakpoint.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/spinlock_api_smp.h \
+ $(wildcard include/config/inline/spin/lock.h) \
+ $(wildcard include/config/inline/spin/lock/bh.h) \
+ $(wildcard include/config/inline/spin/lock/irq.h) \
+ $(wildcard include/config/inline/spin/lock/irqsave.h) \
+ $(wildcard include/config/inline/spin/trylock.h) \
+ $(wildcard include/config/inline/spin/trylock/bh.h) \
+ $(wildcard include/config/uninline/spin/unlock.h) \
+ $(wildcard include/config/inline/spin/unlock/bh.h) \
+ $(wildcard include/config/inline/spin/unlock/irq.h) \
+ $(wildcard include/config/inline/spin/unlock/irqrestore.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwlock_api_smp.h \
+ $(wildcard include/config/inline/read/lock.h) \
+ $(wildcard include/config/inline/write/lock.h) \
+ $(wildcard include/config/inline/read/lock/bh.h) \
+ $(wildcard include/config/inline/write/lock/bh.h) \
+ $(wildcard include/config/inline/read/lock/irq.h) \
+ $(wildcard include/config/inline/write/lock/irq.h) \
+ $(wildcard include/config/inline/read/lock/irqsave.h) \
+ $(wildcard include/config/inline/write/lock/irqsave.h) \
+ $(wildcard include/config/inline/read/trylock.h) \
+ $(wildcard include/config/inline/write/trylock.h) \
+ $(wildcard include/config/inline/read/unlock.h) \
+ $(wildcard include/config/inline/write/unlock.h) \
+ $(wildcard include/config/inline/read/unlock/bh.h) \
+ $(wildcard include/config/inline/write/unlock/bh.h) \
+ $(wildcard include/config/inline/read/unlock/irq.h) \
+ $(wildcard include/config/inline/write/unlock/irq.h) \
+ $(wildcard include/config/inline/read/unlock/irqrestore.h) \
+ $(wildcard include/config/inline/write/unlock/irqrestore.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/atomic.h \
+ $(wildcard include/config/arch/has/atomic/or.h) \
+ $(wildcard include/config/generic/atomic64.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/atomic.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/cmpxchg.h \
+ $(wildcard include/config/cpu/sa1100.h) \
+ $(wildcard include/config/cpu/sa110.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/cmpxchg-local.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/atomic-long.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/math64.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/time.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/jiffies.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/timex.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/timex.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/param.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/timex.h \
+ $(wildcard include/config/arch/multiplatform.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/mach-mesong9tv/include/mach/timex.h \
+ $(wildcard include/config/meson/clock/tick/rate.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/wait.h \
+ arch/arm/include/generated/asm/current.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/current.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/wait.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/timer.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/debugobjects.h \
+ $(wildcard include/config/debug/objects.h) \
+ $(wildcard include/config/debug/objects/free.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/timerqueue.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kref.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/mutex.h \
+ $(wildcard include/config/debug/mutexes.h) \
+ $(wildcard include/config/mutex/spin/on/owner.h) \
+ $(wildcard include/config/have/arch/mutex/cpu/relax.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/workqueue.h \
+ $(wildcard include/config/debug/objects/work.h) \
+ $(wildcard include/config/freezer.h) \
+ $(wildcard include/config/sysfs.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/device.h \
+ $(wildcard include/config/debug/devres.h) \
+ $(wildcard include/config/pinctrl.h) \
+ $(wildcard include/config/numa.h) \
+ $(wildcard include/config/cma.h) \
+ $(wildcard include/config/devtmpfs.h) \
+ $(wildcard include/config/sysfs/deprecated.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/ioport.h \
+ $(wildcard include/config/memory/hotremove.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kobject.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/sysfs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kobject_ns.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/klist.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pinctrl/devinfo.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pinctrl/consumer.h \
+ $(wildcard include/config/pinconf.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/err.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/seq_file.h \
+ $(wildcard include/config/user/ns.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/nodemask.h \
+ $(wildcard include/config/movable/node.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/numa.h \
+ $(wildcard include/config/nodes/shift.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pinctrl/pinctrl-state.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pinctrl/machine.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pm.h \
+ $(wildcard include/config/vt/console/sleep.h) \
+ $(wildcard include/config/pm/clk.h) \
+ $(wildcard include/config/pm/generic/domains.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/completion.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/ratelimit.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/uidgid.h \
+ $(wildcard include/config/uidgid/strict/type/checks.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/highuid.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/device.h \
+ $(wildcard include/config/dmabounce.h) \
+ $(wildcard include/config/iommu/api.h) \
+ $(wildcard include/config/arm/dma/use/iommu.h) \
+ $(wildcard include/config/arch/omap.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pm_wakeup.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/fs.h \
+ $(wildcard include/config/fs/posix/acl.h) \
+ $(wildcard include/config/security.h) \
+ $(wildcard include/config/quota.h) \
+ $(wildcard include/config/fsnotify.h) \
+ $(wildcard include/config/ima.h) \
+ $(wildcard include/config/epoll.h) \
+ $(wildcard include/config/debug/writecount.h) \
+ $(wildcard include/config/file/locking.h) \
+ $(wildcard include/config/auditsyscall.h) \
+ $(wildcard include/config/block.h) \
+ $(wildcard include/config/fs/xip.h) \
+ $(wildcard include/config/migration.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kdev_t.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/kdev_t.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/dcache.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rculist.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rcupdate.h \
+ $(wildcard include/config/rcu/torture/test.h) \
+ $(wildcard include/config/tree/rcu.h) \
+ $(wildcard include/config/tree/preempt/rcu.h) \
+ $(wildcard include/config/rcu/trace.h) \
+ $(wildcard include/config/preempt/rcu.h) \
+ $(wildcard include/config/rcu/user/qs.h) \
+ $(wildcard include/config/debug/objects/rcu/head.h) \
+ $(wildcard include/config/rcu/nocb/cpu.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rcutree.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rculist_bl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/list_bl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bit_spinlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/path.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/stat.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/stat.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/stat.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/radix-tree.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pid.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/capability.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/capability.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/semaphore.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/fiemap.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/shrinker.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/migrate_mode.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/percpu-rwsem.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwsem.h \
+ $(wildcard include/config/rwsem/generic/spinlock.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwsem-spinlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/blk_types.h \
+ $(wildcard include/config/blk/cgroup.h) \
+ $(wildcard include/config/blk/dev/integrity.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/fs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/limits.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/ioctl.h \
+ arch/arm/include/generated/asm/ioctl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/ioctl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/ioctl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/quota.h \
+ $(wildcard include/config/quota/netlink/interface.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/percpu_counter.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/dqblk_xfs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/dqblk_v1.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/dqblk_v2.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/dqblk_qtree.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/projid.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/quota.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/nfs_fs_i.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/fcntl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/fcntl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/fcntl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/fcntl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/sched.h \
+ $(wildcard include/config/sched/debug.h) \
+ $(wildcard include/config/no/hz/common.h) \
+ $(wildcard include/config/lockup/detector.h) \
+ $(wildcard include/config/core/dump/default/elf/headers.h) \
+ $(wildcard include/config/sched/autogroup.h) \
+ $(wildcard include/config/bsd/process/acct.h) \
+ $(wildcard include/config/taskstats.h) \
+ $(wildcard include/config/audit.h) \
+ $(wildcard include/config/cgroups.h) \
+ $(wildcard include/config/inotify/user.h) \
+ $(wildcard include/config/fanotify.h) \
+ $(wildcard include/config/posix/mqueue.h) \
+ $(wildcard include/config/keys.h) \
+ $(wildcard include/config/perf/events.h) \
+ $(wildcard include/config/schedstats.h) \
+ $(wildcard include/config/task/delay/acct.h) \
+ $(wildcard include/config/fair/group/sched.h) \
+ $(wildcard include/config/rt/group/sched.h) \
+ $(wildcard include/config/cgroup/sched.h) \
+ $(wildcard include/config/blk/dev/io/trace.h) \
+ $(wildcard include/config/rcu/boost.h) \
+ $(wildcard include/config/compat/brk.h) \
+ $(wildcard include/config/cc/stackprotector.h) \
+ $(wildcard include/config/sysvipc.h) \
+ $(wildcard include/config/detect/hung/task.h) \
+ $(wildcard include/config/rt/mutexes.h) \
+ $(wildcard include/config/task/xacct.h) \
+ $(wildcard include/config/cpusets.h) \
+ $(wildcard include/config/futex.h) \
+ $(wildcard include/config/numa/balancing.h) \
+ $(wildcard include/config/fault/injection.h) \
+ $(wildcard include/config/latencytop.h) \
+ $(wildcard include/config/function/graph/tracer.h) \
+ $(wildcard include/config/memcg.h) \
+ $(wildcard include/config/uprobes.h) \
+ $(wildcard include/config/bcache.h) \
+ $(wildcard include/config/have/unstable/sched/clock.h) \
+ $(wildcard include/config/no/hz/full.h) \
+ $(wildcard include/config/stack/growsup.h) \
+ $(wildcard include/config/mm/owner.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/sched.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/mm_types.h \
+ $(wildcard include/config/split/ptlock/cpus.h) \
+ $(wildcard include/config/have/cmpxchg/double.h) \
+ $(wildcard include/config/have/aligned/struct/page.h) \
+ $(wildcard include/config/want/page/debug/flags.h) \
+ $(wildcard include/config/kmemcheck.h) \
+ $(wildcard include/config/aio.h) \
+ $(wildcard include/config/mmu/notifier.h) \
+ $(wildcard include/config/transparent/hugepage.h) \
+ $(wildcard include/config/compaction.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/auxvec.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/auxvec.h \
+ arch/arm/include/generated/asm/auxvec.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/auxvec.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/page-debug-flags.h \
+ $(wildcard include/config/page/poisoning.h) \
+ $(wildcard include/config/page/guard.h) \
+ $(wildcard include/config/page/debug/something/else.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/uprobes.h \
+ $(wildcard include/config/arch/supports/uprobes.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/page-flags-layout.h \
+ include/generated/bounds.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/page.h \
+ $(wildcard include/config/cpu/copy/v4wt.h) \
+ $(wildcard include/config/cpu/copy/v4wb.h) \
+ $(wildcard include/config/cpu/copy/feroceon.h) \
+ $(wildcard include/config/cpu/copy/fa.h) \
+ $(wildcard include/config/cpu/xscale.h) \
+ $(wildcard include/config/cpu/copy/v6.h) \
+ $(wildcard include/config/kuser/helpers.h) \
+ $(wildcard include/config/have/arch/pfn/valid.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/glue.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/pgtable-2level-types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/getorder.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/mmu.h \
+ $(wildcard include/config/cpu/has/asid.h) \
+ arch/arm/include/generated/asm/cputime.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/cputime.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/cputime_jiffies.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/sem.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/sem.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/ipc.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/ipc.h \
+ arch/arm/include/generated/asm/ipcbuf.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/ipcbuf.h \
+ arch/arm/include/generated/asm/sembuf.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/sembuf.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/signal.h \
+ $(wildcard include/config/old/sigaction.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/signal.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/signal.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/signal.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/signal-defs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/sigcontext.h \
+ arch/arm/include/generated/asm/siginfo.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/siginfo.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/siginfo.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/topology.h \
+ $(wildcard include/config/sched/smt.h) \
+ $(wildcard include/config/sched/mc.h) \
+ $(wildcard include/config/sched/book.h) \
+ $(wildcard include/config/use/percpu/numa/node/id.h) \
+ $(wildcard include/config/have/memoryless/nodes.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/mmzone.h \
+ $(wildcard include/config/force/max/zoneorder.h) \
+ $(wildcard include/config/memory/isolation.h) \
+ $(wildcard include/config/zone/dma.h) \
+ $(wildcard include/config/zone/dma32.h) \
+ $(wildcard include/config/memory/hotplug.h) \
+ $(wildcard include/config/have/memblock/node/map.h) \
+ $(wildcard include/config/flat/node/mem/map.h) \
+ $(wildcard include/config/no/bootmem.h) \
+ $(wildcard include/config/have/memory/present.h) \
+ $(wildcard include/config/need/node/memmap/size.h) \
+ $(wildcard include/config/need/multiple/nodes.h) \
+ $(wildcard include/config/have/arch/early/pfn/to/nid.h) \
+ $(wildcard include/config/sparsemem/extreme.h) \
+ $(wildcard include/config/nodes/span/other/nodes.h) \
+ $(wildcard include/config/holes/in/zone.h) \
+ $(wildcard include/config/arch/has/holes/memorymodel.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pageblock-flags.h \
+ $(wildcard include/config/hugetlb/page.h) \
+ $(wildcard include/config/hugetlb/page/size/variable.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/sysctl.h \
+ $(wildcard include/config/sysctl.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/sysctl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/memory_hotplug.h \
+ $(wildcard include/config/have/arch/nodedata/extension.h) \
+ $(wildcard include/config/have/bootmem/info/node.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/notifier.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/srcu.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/topology.h \
+ $(wildcard include/config/arm/cpu/topology.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/topology.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/proportions.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/seccomp.h \
+ $(wildcard include/config/seccomp.h) \
+ $(wildcard include/config/seccomp/filter.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/seccomp.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rtmutex.h \
+ $(wildcard include/config/debug/rt/mutexes.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/plist.h \
+ $(wildcard include/config/debug/pi/list.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/resource.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/resource.h \
+ arch/arm/include/generated/asm/resource.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/resource.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/resource.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/task_io_accounting.h \
+ $(wildcard include/config/task/io/accounting.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/latencytop.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/cred.h \
+ $(wildcard include/config/debug/credentials.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/key.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/selinux.h \
+ $(wildcard include/config/security/selinux.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/llist.h \
+ $(wildcard include/config/arch/have/nmi/safe/cmpxchg.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/gfp.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/mmdebug.h \
+ $(wildcard include/config/debug/vm.h) \
+ $(wildcard include/config/debug/virtual.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pm_runtime.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/inc/data_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/inc/btusb.h \
+ include/generated/uapi/linux/version.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/tty.h \
+ $(wildcard include/config/tty.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/major.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/termios.h \
+ arch/arm/include/generated/asm/termios.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/termios.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/uaccess.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/unified.h \
+ $(wildcard include/config/arm/asm/unified.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/termios.h \
+ arch/arm/include/generated/asm/termbits.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/termbits.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/ioctls.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/ioctls.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/tty_driver.h \
+ $(wildcard include/config/console/poll.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/cdev.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/tty_ldisc.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/tty_flags.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/tty.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/inc/bt_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/inc/gki_int.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/inc/btusbext.h \
+
+/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src/gki/gki_buffer.o: $(deps_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src/gki/gki_buffer.o)
+
+$(deps_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src/gki/gki_buffer.o):
diff --git a/bcm569/src/gki/.gki_klinux.o.cmd b/bcm569/src/gki/.gki_klinux.o.cmd
new file mode 100644
index 0000000..4b8d155
--- a/dev/null
+++ b/bcm569/src/gki/.gki_klinux.o.cmd
@@ -0,0 +1,635 @@
+cmd_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src/gki/gki_klinux.o := arm-linux-gnueabihf-gcc -Wp,-MD,/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src/gki/.gki_klinux.o.d -nostdinc -isystem /opt/gcc-linaro-arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.7.3/include -I/mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include -Iarch/arm/include/generated -I/mnt/nfsroot/weiguang.ruan/m8b/common/include -Iinclude -I/mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi -Iarch/arm/include/generated/uapi -I/mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi -Iinclude/generated/uapi -include /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kconfig.h -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569 -D__KERNEL__ -mlittle-endian -I/mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/mach-mesong9tv/include -I/mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/plat-meson/include -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -Werror -Werror=enum-compare -Werror=comment -Werror=implicit-int -Werror=missing-braces -Werror=unused-value -Werror=maybe-uninitialized -Werror=unused-variable -Werror=format -Werror=unused-function -Werror=switch -Werror=strict-prototypes -Werror=declaration-after-statement -Werror=uninitialized -Werror=unused-label -Werror=undef -Werror=unused-result -Werror=return-type -Werror=parentheses -Werror=int-to-pointer-cast -Wno-error=cpp -O2 -fno-dwarf2-cfi-asm -mabi=aapcs-linux -mno-thumb-interwork -funwind-tables -marm -D__LINUX_ARM_ARCH__=7 -march=armv7-a -msoft-float -Uarm -fno-reorder-blocks -fno-ipa-cp-clone -fno-partial-inlining -Wframe-larger-than=1024 -fno-stack-protector -Wno-unused-but-set-variable -fomit-frame-pointer -g -fno-inline-functions-called-once -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -DCC_HAVE_ASM_GOTO -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569 -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/inc -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src -I/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src/gki -DEXPORT_SYMTAB -DEXPORT_SYMTAB -DMODULE -D"KBUILD_STR(s)=\#s" -D"KBUILD_BASENAME=KBUILD_STR(gki_klinux)" -D"KBUILD_MODNAME=KBUILD_STR(btusb_comp)" -c -o /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src/gki/gki_klinux.o /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src/gki/gki_klinux.c
+
+source_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src/gki/gki_klinux.o := /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src/gki/gki_klinux.c
+
+deps_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src/gki/gki_klinux.o := \
+ include/generated/uapi/linux/version.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/slab.h \
+ $(wildcard include/config/slab/debug.h) \
+ $(wildcard include/config/debug/objects.h) \
+ $(wildcard include/config/kmemcheck.h) \
+ $(wildcard include/config/failslab.h) \
+ $(wildcard include/config/slob.h) \
+ $(wildcard include/config/slab.h) \
+ $(wildcard include/config/zone/dma.h) \
+ $(wildcard include/config/slub.h) \
+ $(wildcard include/config/numa.h) \
+ $(wildcard include/config/debug/slab.h) \
+ $(wildcard include/config/tracing.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/gfp.h \
+ $(wildcard include/config/highmem.h) \
+ $(wildcard include/config/zone/dma32.h) \
+ $(wildcard include/config/pm/sleep.h) \
+ $(wildcard include/config/cma.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/mmzone.h \
+ $(wildcard include/config/force/max/zoneorder.h) \
+ $(wildcard include/config/memory/isolation.h) \
+ $(wildcard include/config/smp.h) \
+ $(wildcard include/config/memcg.h) \
+ $(wildcard include/config/compaction.h) \
+ $(wildcard include/config/memory/hotplug.h) \
+ $(wildcard include/config/sparsemem.h) \
+ $(wildcard include/config/have/memblock/node/map.h) \
+ $(wildcard include/config/discontigmem.h) \
+ $(wildcard include/config/flat/node/mem/map.h) \
+ $(wildcard include/config/no/bootmem.h) \
+ $(wildcard include/config/numa/balancing.h) \
+ $(wildcard include/config/have/memory/present.h) \
+ $(wildcard include/config/have/memoryless/nodes.h) \
+ $(wildcard include/config/need/node/memmap/size.h) \
+ $(wildcard include/config/need/multiple/nodes.h) \
+ $(wildcard include/config/have/arch/early/pfn/to/nid.h) \
+ $(wildcard include/config/flatmem.h) \
+ $(wildcard include/config/sparsemem/extreme.h) \
+ $(wildcard include/config/have/arch/pfn/valid.h) \
+ $(wildcard include/config/nodes/span/other/nodes.h) \
+ $(wildcard include/config/holes/in/zone.h) \
+ $(wildcard include/config/arch/has/holes/memorymodel.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/spinlock.h \
+ $(wildcard include/config/debug/spinlock.h) \
+ $(wildcard include/config/generic/lockbreak.h) \
+ $(wildcard include/config/preempt.h) \
+ $(wildcard include/config/debug/lock/alloc.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/typecheck.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/preempt.h \
+ $(wildcard include/config/debug/preempt.h) \
+ $(wildcard include/config/preempt/tracer.h) \
+ $(wildcard include/config/context/tracking.h) \
+ $(wildcard include/config/preempt/count.h) \
+ $(wildcard include/config/preempt/notifiers.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/thread_info.h \
+ $(wildcard include/config/compat.h) \
+ $(wildcard include/config/debug/stack/usage.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/types.h \
+ $(wildcard include/config/uid16.h) \
+ $(wildcard include/config/lbdaf.h) \
+ $(wildcard include/config/arch/dma/addr/t/64bit.h) \
+ $(wildcard include/config/phys/addr/t/64bit.h) \
+ $(wildcard include/config/64bit.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/types.h \
+ arch/arm/include/generated/asm/types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/int-ll64.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/int-ll64.h \
+ arch/arm/include/generated/asm/bitsperlong.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitsperlong.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/bitsperlong.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/posix_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/stddef.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/stddef.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/compiler.h \
+ $(wildcard include/config/sparse/rcu/pointer.h) \
+ $(wildcard include/config/trace/branch/profiling.h) \
+ $(wildcard include/config/profile/all/branches.h) \
+ $(wildcard include/config/enable/must/check.h) \
+ $(wildcard include/config/enable/warn/deprecated.h) \
+ $(wildcard include/config/kprobes.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/compiler-gcc.h \
+ $(wildcard include/config/arch/supports/optimized/inlining.h) \
+ $(wildcard include/config/optimize/inlining.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/compiler-gcc4.h \
+ $(wildcard include/config/arch/use/builtin/bswap.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/posix_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/posix_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bug.h \
+ $(wildcard include/config/generic/bug.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/bug.h \
+ $(wildcard include/config/bug.h) \
+ $(wildcard include/config/thumb2/kernel.h) \
+ $(wildcard include/config/debug/bugverbose.h) \
+ $(wildcard include/config/arm/lpae.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/linkage.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/stringify.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/export.h \
+ $(wildcard include/config/have/underscore/symbol/prefix.h) \
+ $(wildcard include/config/modules.h) \
+ $(wildcard include/config/modversions.h) \
+ $(wildcard include/config/unused/symbols.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/linkage.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bug.h \
+ $(wildcard include/config/generic/bug/relative/pointers.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kernel.h \
+ $(wildcard include/config/preempt/voluntary.h) \
+ $(wildcard include/config/debug/atomic/sleep.h) \
+ $(wildcard include/config/prove/locking.h) \
+ $(wildcard include/config/ring/buffer.h) \
+ $(wildcard include/config/ftrace/mcount/record.h) \
+ /opt/gcc-linaro-arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.7.3/include/stdarg.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bitops.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/bitops.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/irqflags.h \
+ $(wildcard include/config/trace/irqflags.h) \
+ $(wildcard include/config/irqsoff/tracer.h) \
+ $(wildcard include/config/trace/irqflags/support.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/irqflags.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/ptrace.h \
+ $(wildcard include/config/arm/thumb.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/ptrace.h \
+ $(wildcard include/config/cpu/endian/be8.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/hwcap.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/hwcap.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/non-atomic.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/fls64.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/sched.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/hweight.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/arch_hweight.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/const_hweight.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/lock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/le.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/byteorder.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/byteorder/little_endian.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/byteorder/little_endian.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/swab.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/swab.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/swab.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/swab.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/byteorder/generic.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/bitops/ext2-atomic-setbit.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/log2.h \
+ $(wildcard include/config/arch/has/ilog2/u32.h) \
+ $(wildcard include/config/arch/has/ilog2/u64.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/printk.h \
+ $(wildcard include/config/early/printk.h) \
+ $(wildcard include/config/printk.h) \
+ $(wildcard include/config/dynamic/debug.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/init.h \
+ $(wildcard include/config/broken/rodata.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kern_levels.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/dynamic_debug.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/string.h \
+ $(wildcard include/config/binary/printf.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/string.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/string.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/errno.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/errno.h \
+ arch/arm/include/generated/asm/errno.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/errno.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/errno-base.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/kernel.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/sysinfo.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/div64.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/compiler.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/thread_info.h \
+ $(wildcard include/config/crunch.h) \
+ $(wildcard include/config/arm/thumbee.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/fpstate.h \
+ $(wildcard include/config/vfpv3.h) \
+ $(wildcard include/config/iwmmxt.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/domain.h \
+ $(wildcard include/config/io/36.h) \
+ $(wildcard include/config/cpu/use/domains.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/barrier.h \
+ $(wildcard include/config/cpu/32v6k.h) \
+ $(wildcard include/config/cpu/xsc3.h) \
+ $(wildcard include/config/cpu/fa526.h) \
+ $(wildcard include/config/arch/has/barriers.h) \
+ $(wildcard include/config/arm/dma/mem/bufferable.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/outercache.h \
+ $(wildcard include/config/outer/cache/sync.h) \
+ $(wildcard include/config/outer/cache.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/list.h \
+ $(wildcard include/config/debug/list.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/poison.h \
+ $(wildcard include/config/illegal/pointer/value.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/const.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bottom_half.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/spinlock_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/spinlock_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/lockdep.h \
+ $(wildcard include/config/lockdep.h) \
+ $(wildcard include/config/lock/stat.h) \
+ $(wildcard include/config/prove/rcu.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwlock_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/spinlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/processor.h \
+ $(wildcard include/config/have/hw/breakpoint.h) \
+ $(wildcard include/config/mmu.h) \
+ $(wildcard include/config/arm/errata/754327.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/hw_breakpoint.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/spinlock_api_smp.h \
+ $(wildcard include/config/inline/spin/lock.h) \
+ $(wildcard include/config/inline/spin/lock/bh.h) \
+ $(wildcard include/config/inline/spin/lock/irq.h) \
+ $(wildcard include/config/inline/spin/lock/irqsave.h) \
+ $(wildcard include/config/inline/spin/trylock.h) \
+ $(wildcard include/config/inline/spin/trylock/bh.h) \
+ $(wildcard include/config/uninline/spin/unlock.h) \
+ $(wildcard include/config/inline/spin/unlock/bh.h) \
+ $(wildcard include/config/inline/spin/unlock/irq.h) \
+ $(wildcard include/config/inline/spin/unlock/irqrestore.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwlock_api_smp.h \
+ $(wildcard include/config/inline/read/lock.h) \
+ $(wildcard include/config/inline/write/lock.h) \
+ $(wildcard include/config/inline/read/lock/bh.h) \
+ $(wildcard include/config/inline/write/lock/bh.h) \
+ $(wildcard include/config/inline/read/lock/irq.h) \
+ $(wildcard include/config/inline/write/lock/irq.h) \
+ $(wildcard include/config/inline/read/lock/irqsave.h) \
+ $(wildcard include/config/inline/write/lock/irqsave.h) \
+ $(wildcard include/config/inline/read/trylock.h) \
+ $(wildcard include/config/inline/write/trylock.h) \
+ $(wildcard include/config/inline/read/unlock.h) \
+ $(wildcard include/config/inline/write/unlock.h) \
+ $(wildcard include/config/inline/read/unlock/bh.h) \
+ $(wildcard include/config/inline/write/unlock/bh.h) \
+ $(wildcard include/config/inline/read/unlock/irq.h) \
+ $(wildcard include/config/inline/write/unlock/irq.h) \
+ $(wildcard include/config/inline/read/unlock/irqrestore.h) \
+ $(wildcard include/config/inline/write/unlock/irqrestore.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/atomic.h \
+ $(wildcard include/config/arch/has/atomic/or.h) \
+ $(wildcard include/config/generic/atomic64.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/atomic.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/cmpxchg.h \
+ $(wildcard include/config/cpu/sa1100.h) \
+ $(wildcard include/config/cpu/sa110.h) \
+ $(wildcard include/config/cpu/v6.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/cmpxchg-local.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/atomic-long.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/wait.h \
+ arch/arm/include/generated/asm/current.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/current.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/wait.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/cache.h \
+ $(wildcard include/config/arch/has/cache/line/size.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/cache.h \
+ $(wildcard include/config/arm/l1/cache/shift.h) \
+ $(wildcard include/config/aeabi.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/threads.h \
+ $(wildcard include/config/nr/cpus.h) \
+ $(wildcard include/config/base/small.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/numa.h \
+ $(wildcard include/config/nodes/shift.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/seqlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/nodemask.h \
+ $(wildcard include/config/movable/node.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bitmap.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pageblock-flags.h \
+ $(wildcard include/config/hugetlb/page.h) \
+ $(wildcard include/config/hugetlb/page/size/variable.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/page-flags-layout.h \
+ $(wildcard include/config/sparsemem/vmemmap.h) \
+ include/generated/bounds.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/page.h \
+ $(wildcard include/config/cpu/copy/v4wt.h) \
+ $(wildcard include/config/cpu/copy/v4wb.h) \
+ $(wildcard include/config/cpu/copy/feroceon.h) \
+ $(wildcard include/config/cpu/copy/fa.h) \
+ $(wildcard include/config/cpu/xscale.h) \
+ $(wildcard include/config/cpu/copy/v6.h) \
+ $(wildcard include/config/kuser/helpers.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/glue.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/pgtable-2level-types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/memory.h \
+ $(wildcard include/config/need/mach/memory/h.h) \
+ $(wildcard include/config/page/offset.h) \
+ $(wildcard include/config/dram/size.h) \
+ $(wildcard include/config/dram/base.h) \
+ $(wildcard include/config/have/tcm.h) \
+ $(wildcard include/config/arm/patch/phys/virt.h) \
+ $(wildcard include/config/phys/offset.h) \
+ $(wildcard include/config/virt/to/bus.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/sizes.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/mach-mesong9tv/include/mach/memory.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/memory_model.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/getorder.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/sysctl.h \
+ $(wildcard include/config/sysctl.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rcupdate.h \
+ $(wildcard include/config/rcu/torture/test.h) \
+ $(wildcard include/config/tree/rcu.h) \
+ $(wildcard include/config/tree/preempt/rcu.h) \
+ $(wildcard include/config/rcu/trace.h) \
+ $(wildcard include/config/preempt/rcu.h) \
+ $(wildcard include/config/rcu/user/qs.h) \
+ $(wildcard include/config/tiny/rcu.h) \
+ $(wildcard include/config/tiny/preempt/rcu.h) \
+ $(wildcard include/config/debug/objects/rcu/head.h) \
+ $(wildcard include/config/hotplug/cpu.h) \
+ $(wildcard include/config/rcu/nocb/cpu.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/cpumask.h \
+ $(wildcard include/config/cpumask/offstack.h) \
+ $(wildcard include/config/debug/per/cpu/maps.h) \
+ $(wildcard include/config/disable/obsolete/cpumask/functions.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/completion.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/debugobjects.h \
+ $(wildcard include/config/debug/objects/free.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rcutree.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rbtree.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/sysctl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/memory_hotplug.h \
+ $(wildcard include/config/memory/hotremove.h) \
+ $(wildcard include/config/have/arch/nodedata/extension.h) \
+ $(wildcard include/config/have/bootmem/info/node.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/notifier.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/mutex.h \
+ $(wildcard include/config/debug/mutexes.h) \
+ $(wildcard include/config/mutex/spin/on/owner.h) \
+ $(wildcard include/config/have/arch/mutex/cpu/relax.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwsem.h \
+ $(wildcard include/config/rwsem/generic/spinlock.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rwsem-spinlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/srcu.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/workqueue.h \
+ $(wildcard include/config/debug/objects/work.h) \
+ $(wildcard include/config/freezer.h) \
+ $(wildcard include/config/sysfs.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/timer.h \
+ $(wildcard include/config/timer/stats.h) \
+ $(wildcard include/config/debug/objects/timers.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/ktime.h \
+ $(wildcard include/config/ktime/scalar.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/time.h \
+ $(wildcard include/config/arch/uses/gettimeoffset.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/math64.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/time.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/jiffies.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/timex.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/timex.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/param.h \
+ arch/arm/include/generated/asm/param.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/param.h \
+ $(wildcard include/config/hz.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/param.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/timex.h \
+ $(wildcard include/config/arch/multiplatform.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/mach-mesong9tv/include/mach/timex.h \
+ $(wildcard include/config/meson/clock/tick/rate.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/topology.h \
+ $(wildcard include/config/sched/smt.h) \
+ $(wildcard include/config/sched/mc.h) \
+ $(wildcard include/config/sched/book.h) \
+ $(wildcard include/config/use/percpu/numa/node/id.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/smp.h \
+ $(wildcard include/config/use/generic/smp/helpers.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/smp.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/percpu.h \
+ $(wildcard include/config/need/per/cpu/embed/first/chunk.h) \
+ $(wildcard include/config/need/per/cpu/page/first/chunk.h) \
+ $(wildcard include/config/have/setup/per/cpu/area.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pfn.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/percpu.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/percpu.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/percpu-defs.h \
+ $(wildcard include/config/debug/force/weak/per/cpu.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/topology.h \
+ $(wildcard include/config/arm/cpu/topology.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/topology.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/mmdebug.h \
+ $(wildcard include/config/debug/vm.h) \
+ $(wildcard include/config/debug/virtual.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/slub_def.h \
+ $(wildcard include/config/slub/stats.h) \
+ $(wildcard include/config/memcg/kmem.h) \
+ $(wildcard include/config/slub/debug.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kobject.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/sysfs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kobject_ns.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kref.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kmemleak.h \
+ $(wildcard include/config/debug/kmemleak.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/semaphore.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/inc/target.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/usb.h \
+ $(wildcard include/config/usb/mon.h) \
+ $(wildcard include/config/pm.h) \
+ $(wildcard include/config/acpi.h) \
+ $(wildcard include/config/pm/runtime.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/mod_devicetable.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/uuid.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/uuid.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/usb/ch9.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/usb/ch9.h \
+ $(wildcard include/config/size.h) \
+ $(wildcard include/config/att/one.h) \
+ $(wildcard include/config/att/selfpower.h) \
+ $(wildcard include/config/att/wakeup.h) \
+ $(wildcard include/config/att/battery.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/delay.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/delay.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/interrupt.h \
+ $(wildcard include/config/generic/hardirqs.h) \
+ $(wildcard include/config/irq/forced/threading.h) \
+ $(wildcard include/config/generic/irq/probe.h) \
+ $(wildcard include/config/proc/fs.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/irqreturn.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/irqnr.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/irqnr.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/hardirq.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/ftrace_irq.h \
+ $(wildcard include/config/ftrace/nmi/enter.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/vtime.h \
+ $(wildcard include/config/virt/cpu/accounting.h) \
+ $(wildcard include/config/virt/cpu/accounting/native.h) \
+ $(wildcard include/config/virt/cpu/accounting/gen.h) \
+ $(wildcard include/config/irq/time/accounting.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/hardirq.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/irq.h \
+ $(wildcard include/config/sparse/irq.h) \
+ $(wildcard include/config/multi/irq/handler.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/mach-mesong9tv/include/mach/irqs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/irq_cpustat.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/hrtimer.h \
+ $(wildcard include/config/high/res/timers.h) \
+ $(wildcard include/config/timerfd.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/timerqueue.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/device.h \
+ $(wildcard include/config/debug/devres.h) \
+ $(wildcard include/config/pinctrl.h) \
+ $(wildcard include/config/devtmpfs.h) \
+ $(wildcard include/config/sysfs/deprecated.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/ioport.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/klist.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pinctrl/devinfo.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pinctrl/consumer.h \
+ $(wildcard include/config/pinconf.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/err.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/seq_file.h \
+ $(wildcard include/config/user/ns.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pinctrl/pinctrl-state.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pinctrl/machine.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pm.h \
+ $(wildcard include/config/vt/console/sleep.h) \
+ $(wildcard include/config/pm/clk.h) \
+ $(wildcard include/config/pm/generic/domains.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/ratelimit.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/uidgid.h \
+ $(wildcard include/config/uidgid/strict/type/checks.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/highuid.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/device.h \
+ $(wildcard include/config/dmabounce.h) \
+ $(wildcard include/config/iommu/api.h) \
+ $(wildcard include/config/arm/dma/use/iommu.h) \
+ $(wildcard include/config/arch/omap.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pm_wakeup.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/fs.h \
+ $(wildcard include/config/fs/posix/acl.h) \
+ $(wildcard include/config/security.h) \
+ $(wildcard include/config/quota.h) \
+ $(wildcard include/config/fsnotify.h) \
+ $(wildcard include/config/ima.h) \
+ $(wildcard include/config/epoll.h) \
+ $(wildcard include/config/debug/writecount.h) \
+ $(wildcard include/config/file/locking.h) \
+ $(wildcard include/config/auditsyscall.h) \
+ $(wildcard include/config/block.h) \
+ $(wildcard include/config/fs/xip.h) \
+ $(wildcard include/config/migration.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/kdev_t.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/kdev_t.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/dcache.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rculist.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rculist_bl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/list_bl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/bit_spinlock.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/path.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/stat.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/stat.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/stat.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/radix-tree.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pid.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/capability.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/capability.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/fiemap.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/shrinker.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/migrate_mode.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/percpu-rwsem.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/blk_types.h \
+ $(wildcard include/config/blk/cgroup.h) \
+ $(wildcard include/config/blk/dev/integrity.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/fs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/limits.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/ioctl.h \
+ arch/arm/include/generated/asm/ioctl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/ioctl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/ioctl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/quota.h \
+ $(wildcard include/config/quota/netlink/interface.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/percpu_counter.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/dqblk_xfs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/dqblk_v1.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/dqblk_v2.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/dqblk_qtree.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/projid.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/quota.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/nfs_fs_i.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/fcntl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/fcntl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/fcntl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/fcntl.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/sched.h \
+ $(wildcard include/config/sched/debug.h) \
+ $(wildcard include/config/no/hz/common.h) \
+ $(wildcard include/config/lockup/detector.h) \
+ $(wildcard include/config/core/dump/default/elf/headers.h) \
+ $(wildcard include/config/sched/autogroup.h) \
+ $(wildcard include/config/bsd/process/acct.h) \
+ $(wildcard include/config/taskstats.h) \
+ $(wildcard include/config/audit.h) \
+ $(wildcard include/config/cgroups.h) \
+ $(wildcard include/config/inotify/user.h) \
+ $(wildcard include/config/fanotify.h) \
+ $(wildcard include/config/posix/mqueue.h) \
+ $(wildcard include/config/keys.h) \
+ $(wildcard include/config/perf/events.h) \
+ $(wildcard include/config/schedstats.h) \
+ $(wildcard include/config/task/delay/acct.h) \
+ $(wildcard include/config/fair/group/sched.h) \
+ $(wildcard include/config/rt/group/sched.h) \
+ $(wildcard include/config/cgroup/sched.h) \
+ $(wildcard include/config/blk/dev/io/trace.h) \
+ $(wildcard include/config/rcu/boost.h) \
+ $(wildcard include/config/compat/brk.h) \
+ $(wildcard include/config/cc/stackprotector.h) \
+ $(wildcard include/config/sysvipc.h) \
+ $(wildcard include/config/detect/hung/task.h) \
+ $(wildcard include/config/rt/mutexes.h) \
+ $(wildcard include/config/task/xacct.h) \
+ $(wildcard include/config/cpusets.h) \
+ $(wildcard include/config/futex.h) \
+ $(wildcard include/config/fault/injection.h) \
+ $(wildcard include/config/latencytop.h) \
+ $(wildcard include/config/function/graph/tracer.h) \
+ $(wildcard include/config/uprobes.h) \
+ $(wildcard include/config/bcache.h) \
+ $(wildcard include/config/have/unstable/sched/clock.h) \
+ $(wildcard include/config/no/hz/full.h) \
+ $(wildcard include/config/stack/growsup.h) \
+ $(wildcard include/config/mm/owner.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/sched.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/mm_types.h \
+ $(wildcard include/config/split/ptlock/cpus.h) \
+ $(wildcard include/config/have/cmpxchg/double.h) \
+ $(wildcard include/config/have/aligned/struct/page.h) \
+ $(wildcard include/config/want/page/debug/flags.h) \
+ $(wildcard include/config/aio.h) \
+ $(wildcard include/config/mmu/notifier.h) \
+ $(wildcard include/config/transparent/hugepage.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/auxvec.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/auxvec.h \
+ arch/arm/include/generated/asm/auxvec.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/auxvec.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/page-debug-flags.h \
+ $(wildcard include/config/page/poisoning.h) \
+ $(wildcard include/config/page/guard.h) \
+ $(wildcard include/config/page/debug/something/else.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/uprobes.h \
+ $(wildcard include/config/arch/supports/uprobes.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/mmu.h \
+ $(wildcard include/config/cpu/has/asid.h) \
+ arch/arm/include/generated/asm/cputime.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/cputime.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/cputime_jiffies.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/sem.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/sem.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/ipc.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/ipc.h \
+ arch/arm/include/generated/asm/ipcbuf.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/ipcbuf.h \
+ arch/arm/include/generated/asm/sembuf.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/sembuf.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/signal.h \
+ $(wildcard include/config/old/sigaction.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/signal.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/asm/signal.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/signal.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/signal-defs.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/arch/arm/include/uapi/asm/sigcontext.h \
+ arch/arm/include/generated/asm/siginfo.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/siginfo.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/siginfo.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/proportions.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/seccomp.h \
+ $(wildcard include/config/seccomp.h) \
+ $(wildcard include/config/seccomp/filter.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/seccomp.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/rtmutex.h \
+ $(wildcard include/config/debug/rt/mutexes.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/plist.h \
+ $(wildcard include/config/debug/pi/list.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/resource.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/linux/resource.h \
+ arch/arm/include/generated/asm/resource.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/asm-generic/resource.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/uapi/asm-generic/resource.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/task_io_accounting.h \
+ $(wildcard include/config/task/io/accounting.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/latencytop.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/cred.h \
+ $(wildcard include/config/debug/credentials.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/key.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/selinux.h \
+ $(wildcard include/config/security/selinux.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/llist.h \
+ $(wildcard include/config/arch/have/nmi/safe/cmpxchg.h) \
+ /mnt/nfsroot/weiguang.ruan/m8b/common/include/linux/pm_runtime.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/inc/gki_int.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/inc/gki.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/inc/target.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/inc/data_types.h \
+ /mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/inc/bt_types.h \
+
+/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src/gki/gki_klinux.o: $(deps_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src/gki/gki_klinux.o)
+
+$(deps_/mnt/nfsroot/weiguang.ruan/m8b/vendor/broadcom/btusb/bcm569/src/gki/gki_klinux.o):
diff --git a/src/gki/gki_buffer.c b/bcm569/src/gki/gki_buffer.c
index aa09483..e85670d 100755
--- a/src/gki/gki_buffer.c
+++ b/bcm569/src/gki/gki_buffer.c
@@ -259,11 +259,7 @@ static void gki_add_to_pool_list(UINT8 pool_id)
gki_cb.pool_list[j] = gki_cb.pool_list[j-1];
}
- /* Prevent warning */
- if ( i < GKI_NUM_TOTAL_BUF_POOLS)
- {
- gki_cb.pool_list[i] = pool_id;
- }
+ gki_cb.pool_list[i] = pool_id;
}
@@ -278,23 +274,20 @@ static void gki_add_to_pool_list(UINT8 pool_id)
*******************************************************************************/
static void gki_remove_from_pool_list(UINT8 pool_id)
{
- INT8 i;
+ UINT8 i;
- for (i = 0; (i < gki_cb.curr_total_no_of_pools) && (i < GKI_NUM_TOTAL_BUF_POOLS); i++)
+ for (i = 0; i < gki_cb.curr_total_no_of_pools; i++)
{
if (pool_id == gki_cb.pool_list[i])
break;
}
-/* Prevent warning.
- * Since GKI_NUM_TOTAL_BUF_POOLS value is 1, this code was not needed */
-/*
while (i < (GKI_NUM_TOTAL_BUF_POOLS - 1))
{
gki_cb.pool_list[i] = gki_cb.pool_list[i+1];
i++;
}
-*/
+
return;
}
@@ -358,7 +351,7 @@ void *GKI_getbuf(UINT16 size)
if (i == gki_cb.curr_total_no_of_pools)
{
char buff[40];
- snprintf(buff, sizeof(buff), "getbuf: Size: %u is too big", size);
+ sprintf(buff, "getbuf: Size: %u is too big", size);
GKI_exception(GKI_ERROR_BUF_SIZE_TOOBIG, buff);
return(NULL);
}
@@ -581,11 +574,7 @@ UINT16 GKI_get_buf_size(void *p_buf)
}
else if (p_hdr->q_id == GKI_NUM_TOTAL_BUF_POOLS)
{
- return offsetof(struct btusb_trans, magic) - offsetof(struct btusb_trans, bt_hdr);
- }
- else if (p_hdr->q_id == (GKI_NUM_TOTAL_BUF_POOLS + 1))
- {
- return offsetof(struct btusb_voice_pkt, magic) - offsetof(struct btusb_voice_pkt, bt_hdr);
+ return offsetof(tBTUSB_TRANSACTION, magic) - offsetof(tBTUSB_TRANSACTION, bt_hdr);
}
diff --git a/bcm569/src/gki/gki_buffer.o b/bcm569/src/gki/gki_buffer.o
new file mode 100644
index 0000000..e5e7899
--- a/dev/null
+++ b/bcm569/src/gki/gki_buffer.o
@@ -0,0 +1,566 @@
+ELF
+
+
+1
+
+
+
+(Q`
+2d
+
+
+@0T
+@0T
+h@0TDT 
+p@0T`D
+
+`
+<
+`8@0T
+H8@
+0
+0
+@0
+`1
+p
+0s0
+
+
+
+
+P
+(
+
+
+
+
+
+1
+v
+
+
+h
+p
+
+|
+
+
+
+{u
+x
+x
+x
+x
+x
+
+
+
+y
+!-
+1B
+6
+7x
+8
+;x
+<
+=
+@9
+
+G}
+J
+Lt
+OOb
+OOb
+Q
+Th
+Wx
+Xx
+Xx
+Yx
+Z
+]
+_
+`
+
+b
+e
+h
+i
+k
+l
+wp
+xp
+|
+}
+~p
+
+
+?
+
+m
+`
+`
+Wi
+Wi
+Wi
+Wi
+Wi
+v
+
+
+
+
+
+
+v
+p
+T
+T
+
+x
+x
+bi
+
+o
+U
+T
+m
+[
+a
+i
+i
+i
+
+l
+
+,
+w
+|
+}
+d
+
+kt
+
+
+:
+
+st
+
+|
+ 
+ 
+
+M
+ł
+
+˂
+t
+'ׂ
+)
+,
+0
+1
+E;
+JM
+Lg
+Xx
+Yx
+Z
+d
+e
+x
+z
+
+
+
+
+
+
+
+
+r
+
+
+
+
+
+"
+Z
+
+'
+C-
+
+
+
+
+7
+7
+
+;
+
+
+
+
+
+E
+
+M
+K
+ L
+M
+)
+
+8
+
+
+T
+U
+
+
+
+T^
+`
+`
+a
+b
+9
+
+
+)i
+i
+
+@
+l
+
+
+
+
+
+
+
+
+
+X'
+m
+
+
+{u
+|
+}u
+~:
+(2
+S
+
+pv
+x
+<
+
+Wi
+Wi
+
+
+
+v
+Wi
+Wi
+
+
+v
+Wi
+Wi
+!w
+Wi
+Wi
+
+\w
+v
+x
+
+
+
+
+x
+S
+p
+l
+x
+x
+p
+x
+
+
+
+x
+
+ v
+ |:
+ 
+
+!w
+v
+p
+!|:
+$x
+&}
+1Wi
+1Wi
+1Wi
+1Wi
+2Wi
+3Wi
+5v
+7
+7
+7
+7
+8
+8
+8
+8
+9
+9
+9
+9
+:
+:
+;t
+C
+N}
+Qu
+W
+X
+Y}
+e;
+hy
+iT
+jT
+m
+S
+
+)~
+
+
+
+
+O~
+{~
+
+
+~
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+g
+O~
+
+
+
+
+
+
+
+
+~
+g
+s
+s
+{~
+
+
+
+
+
+
+
+
+
+
+
+
+
+d
+
+
+P
+
+
+
+
+
+
+o
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+9
+|:
+
+2
+' 
+
+
+
+
+
+
+
+B
+
+B 
+B 
+
+
+B 
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+.z.4j*0
+.+1 .w.gK3+0///3KR+JJJ.2*2i2JN.5,0LK(X.22i1hhM20/*/L/4*.2*2h!J_.5hJh.20L3)4/2,x.6L3+f.10
+A "
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+>
+?
+T
+}
+
diff --git a/src/gki/gki_klinux.c b/bcm569/src/gki/gki_klinux.c
index fb424ee..fb424ee 100755
--- a/src/gki/gki_klinux.c
+++ b/bcm569/src/gki/gki_klinux.c
diff --git a/bcm569/src/gki/gki_klinux.o b/bcm569/src/gki/gki_klinux.o
new file mode 100644
index 0000000..d1ab3b9
--- a/dev/null
+++ b/bcm569/src/gki/gki_klinux.o
@@ -0,0 +1,116 @@
+ELF
+ 1@!@
+
+
+
+&
+
+
+`
+ 
+
+z
+ 1
+
+{
+
+*
+
+
+
+
+L6
+
+
+
+
+
+
+
+
+b%
+
+
+.
+.
+/
+2
+
+
+
+
+/<
+mB
+eC
+
+
+
+J
+K
+
+
+
+ZT
+V
+V
+W
+X
+
+^
+^
+_
+
+
+Bc
+
+)
+
+
+
+
+*
+|IP|
+dIPt
+"
+' 
+
+4
+
+
+
+
+
+
+
+
+B
+
+
+B 
+
+
+B 
+
+A "
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+$
+8
+O
+u