Project import generated by Copybara. GitOrigin-RevId: 476af6c46a320325a2c516b0e6610867279a913a
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5d56a3f --- /dev/null +++ b/.gitignore
@@ -0,0 +1,80 @@ +# +# NOTE! Don't add files that are generated in specific +# subdirectories here. Add them in the ".gitignore" file +# in that subdirectory instead. +# +# NOTE! Please use 'git ls-files -i --exclude-standard' +# command after changing this file, to see if there are +# any tracked files which get ignored after the change. +# +# Normal rules +# +.* +*.o +*.o.* +*.a +*.s +*.ko +*.so +*.so.dbg +*.mod.c +*.i +*.lst +*.symtypes +*.order +modules.builtin +*.elf +*.bin +*.gz +*.bz2 +*.lzma +*.xz +*.lzo +*.patch +*.gcno + +# +# Top-level generic files +# +/tags +/TAGS +/linux +/vmlinux +/vmlinuz +/System.map +/Module.markers +/Module.symvers + +# +# git files that we don't want to ignore even it they are dot-files +# +!.gitignore +!.mailmap + +# +# Generated include files +# +include/config +include/linux/version.h +include/generated + +# stgit generated dirs +patches-* + +# quilt's files +patches +series + +# cscope files +cscope.* +ncscope.* + +# gnu global files +GPATH +GRTAGS +GSYMS +GTAGS + +*.orig +*~ +\#*#
diff --git a/.mailmap b/.mailmap new file mode 100644 index 0000000..1eba28a --- /dev/null +++ b/.mailmap
@@ -0,0 +1,109 @@ +# +# This list is used by git-shortlog to fix a few botched name translations +# in the git archive, either because the author's full name was messed up +# and/or not always written the same way, making contributions from the +# same person appearing not to be so or badly displayed. +# +# repo-abbrev: /pub/scm/linux/kernel/git/ +# + +Aaron Durbin <adurbin@google.com> +Adam Oldham <oldhamca@gmail.com> +Adam Radford <aradford@gmail.com> +Adrian Bunk <bunk@stusta.de> +Alan Cox <alan@lxorguk.ukuu.org.uk> +Alan Cox <root@hraefn.swansea.linux.org.uk> +Aleksey Gorelov <aleksey_gorelov@phoenix.com> +Al Viro <viro@ftp.linux.org.uk> +Al Viro <viro@zenIV.linux.org.uk> +Andreas Herrmann <aherrman@de.ibm.com> +Andrew Morton <akpm@osdl.org> +Andrew Vasquez <andrew.vasquez@qlogic.com> +Andy Adamson <andros@citi.umich.edu> +Arnaud Patard <arnaud.patard@rtp-net.org> +Arnd Bergmann <arnd@arndb.de> +Axel Dyks <xl@xlsigned.net> +Axel Lin <axel.lin@gmail.com> +Ben Gardner <bgardner@wabtec.com> +Ben M Cahill <ben.m.cahill@intel.com> +Björn Steinbrink <B.Steinbrink@gmx.de> +Brian Avery <b.avery@hp.com> +Brian King <brking@us.ibm.com> +Christoph Hellwig <hch@lst.de> +Corey Minyard <minyard@acm.org> +David Brownell <david-b@pacbell.net> +David Woodhouse <dwmw2@shinybook.infradead.org> +Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> +Domen Puncer <domen@coderock.org> +Douglas Gilbert <dougg@torque.net> +Ed L. Cashin <ecashin@coraid.com> +Evgeniy Polyakov <johnpol@2ka.mipt.ru> +Felipe W Damasio <felipewd@terra.com.br> +Felix Kuhling <fxkuehl@gmx.de> +Felix Moeller <felix@derklecks.de> +Filipe Lautert <filipe@icewall.org> +Franck Bui-Huu <vagabon.xyz@gmail.com> +Frank Zago <fzago@systemfabricworks.com> +Greg Kroah-Hartman <greg@echidna.(none)> +Greg Kroah-Hartman <gregkh@suse.de> +Greg Kroah-Hartman <greg@kroah.com> +Henk Vergonet <Henk.Vergonet@gmail.com> +Henrik Kretzschmar <henne@nachtwindheim.de> +Herbert Xu <herbert@gondor.apana.org.au> +Jacob Shin <Jacob.Shin@amd.com> +James Bottomley <jejb@mulgrave.(none)> +James Bottomley <jejb@titanic.il.steeleye.com> +James E Wilson <wilson@specifix.com> +James Ketrenos <jketreno@io.(none)> +Jean Tourrilhes <jt@hpl.hp.com> +Jeff Garzik <jgarzik@pretzel.yyz.us> +Jens Axboe <axboe@suse.de> +Jens Osterkamp <Jens.Osterkamp@de.ibm.com> +John Stultz <johnstul@us.ibm.com> +Juha Yrjola <at solidboot.com> +Juha Yrjola <juha.yrjola@nokia.com> +Juha Yrjola <juha.yrjola@solidboot.com> +Kay Sievers <kay.sievers@vrfy.org> +Kenneth W Chen <kenneth.w.chen@intel.com> +Koushik <raghavendra.koushik@neterion.com> +Leonid I Ananiev <leonid.i.ananiev@intel.com> +Linas Vepstas <linas@austin.ibm.com> +Mark Brown <broonie@sirena.org.uk> +Matthieu CASTET <castet.matthieu@free.fr> +Michael Buesch <mb@bu3sch.de> +Michael Buesch <mbuesch@freenet.de> +Michel Dänzer <michel@tungstengraphics.com> +Mitesh shah <mshah@teja.com> +Morten Welinder <terra@gnome.org> +Morten Welinder <welinder@anemone.rentec.com> +Morten Welinder <welinder@darter.rentec.com> +Morten Welinder <welinder@troll.com> +Nguyen Anh Quynh <aquynh@gmail.com> +Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it> +Patrick Mochel <mochel@digitalimplant.org> +Peter A Jonsson <pj@ludd.ltu.se> +Peter Oruba <peter@oruba.de> +Peter Oruba <peter.oruba@amd.com> +Praveen BP <praveenbp@ti.com> +Rajesh Shah <rajesh.shah@intel.com> +Ralf Baechle <ralf@linux-mips.org> +Ralf Wildenhues <Ralf.Wildenhues@gmx.de> +Rémi Denis-Courmont <rdenis@simphalempin.com> +Rudolf Marek <R.Marek@sh.cvut.cz> +Rui Saraiva <rmps@joel.ist.utl.pt> +Sachin P Sant <ssant@in.ibm.com> +Sam Ravnborg <sam@mars.ravnborg.org> +Sascha Hauer <s.hauer@pengutronix.de> +S.Çağlar Onur <caglar@pardus.org.tr> +Simon Kelley <simon@thekelleys.org.uk> +Stéphane Witzmann <stephane.witzmann@ubpmes.univ-bpclermont.fr> +Stephen Hemminger <shemminger@osdl.org> +Tejun Heo <htejun@gmail.com> +Thomas Graf <tgraf@suug.ch> +Tony Luck <tony.luck@intel.com> +Tsuneo Yoshioka <Tsuneo.Yoshioka@f-secure.com> +Uwe Kleine-König <ukleinek@informatik.uni-freiburg.de> +Uwe Kleine-König <ukl@pengutronix.de> +Uwe Kleine-König <Uwe.Kleine-Koenig@digi.com> +Valdis Kletnieks <Valdis.Kletnieks@vt.edu> +Takashi YOSHII <takashi.yoshii.zj@renesas.com>
diff --git a/Documentation/.gitignore b/Documentation/.gitignore new file mode 100644 index 0000000..bcd907b --- /dev/null +++ b/Documentation/.gitignore
@@ -0,0 +1,7 @@ +filesystems/dnotify_test +laptops/dslm +timers/hpet_example +vm/hugepage-mmap +vm/hugepage-shm +vm/map_hugetlb +
diff --git a/Documentation/DocBook/.gitignore b/Documentation/DocBook/.gitignore new file mode 100644 index 0000000..c6def35 --- /dev/null +++ b/Documentation/DocBook/.gitignore
@@ -0,0 +1,10 @@ +*.xml +*.ps +*.pdf +*.html +*.9.gz +*.9 +*.aux +*.dvi +*.log +*.out
diff --git a/Documentation/DocBook/dvb/.gitignore b/Documentation/DocBook/dvb/.gitignore new file mode 100644 index 0000000..d7ec32e --- /dev/null +++ b/Documentation/DocBook/dvb/.gitignore
@@ -0,0 +1 @@ +!*.xml
diff --git a/Documentation/DocBook/v4l/.gitignore b/Documentation/DocBook/v4l/.gitignore new file mode 100644 index 0000000..d7ec32e --- /dev/null +++ b/Documentation/DocBook/v4l/.gitignore
@@ -0,0 +1 @@ +!*.xml
diff --git a/Documentation/accounting/.gitignore b/Documentation/accounting/.gitignore new file mode 100644 index 0000000..8648520 --- /dev/null +++ b/Documentation/accounting/.gitignore
@@ -0,0 +1 @@ +getdelays
diff --git a/Documentation/auxdisplay/.gitignore b/Documentation/auxdisplay/.gitignore new file mode 100644 index 0000000..7af2228 --- /dev/null +++ b/Documentation/auxdisplay/.gitignore
@@ -0,0 +1 @@ +cfag12864b-example
diff --git a/Documentation/connector/.gitignore b/Documentation/connector/.gitignore new file mode 100644 index 0000000..d2b9c32 --- /dev/null +++ b/Documentation/connector/.gitignore
@@ -0,0 +1 @@ +ucon
diff --git a/Documentation/ia64/.gitignore b/Documentation/ia64/.gitignore new file mode 100644 index 0000000..ab806ed --- /dev/null +++ b/Documentation/ia64/.gitignore
@@ -0,0 +1 @@ +aliasing-test
diff --git a/Documentation/lguest/.gitignore b/Documentation/lguest/.gitignore new file mode 100644 index 0000000..115587f --- /dev/null +++ b/Documentation/lguest/.gitignore
@@ -0,0 +1 @@ +lguest
diff --git a/Documentation/networking/.gitignore b/Documentation/networking/.gitignore new file mode 100644 index 0000000..286a568 --- /dev/null +++ b/Documentation/networking/.gitignore
@@ -0,0 +1 @@ +ifenslave
diff --git a/Documentation/networking/timestamping/.gitignore b/Documentation/networking/timestamping/.gitignore new file mode 100644 index 0000000..71e81eb --- /dev/null +++ b/Documentation/networking/timestamping/.gitignore
@@ -0,0 +1 @@ +timestamping
diff --git a/Documentation/pcmcia/.gitignore b/Documentation/pcmcia/.gitignore new file mode 100644 index 0000000..53d0813 --- /dev/null +++ b/Documentation/pcmcia/.gitignore
@@ -0,0 +1 @@ +crc32hash
diff --git a/Documentation/spi/.gitignore b/Documentation/spi/.gitignore new file mode 100644 index 0000000..4280576 --- /dev/null +++ b/Documentation/spi/.gitignore
@@ -0,0 +1,2 @@ +spidev_fdx +spidev_test
diff --git a/Documentation/video4linux/.gitignore b/Documentation/video4linux/.gitignore new file mode 100644 index 0000000..9527039 --- /dev/null +++ b/Documentation/video4linux/.gitignore
@@ -0,0 +1 @@ +v4lgrab
diff --git a/Documentation/vm/.gitignore b/Documentation/vm/.gitignore new file mode 100644 index 0000000..09b164a --- /dev/null +++ b/Documentation/vm/.gitignore
@@ -0,0 +1,2 @@ +page-types +slabinfo
diff --git a/Documentation/watchdog/src/.gitignore b/Documentation/watchdog/src/.gitignore new file mode 100644 index 0000000..ac90997 --- /dev/null +++ b/Documentation/watchdog/src/.gitignore
@@ -0,0 +1,2 @@ +watchdog-simple +watchdog-test
diff --git a/arch/.gitignore b/arch/.gitignore new file mode 100644 index 0000000..7414689 --- /dev/null +++ b/arch/.gitignore
@@ -0,0 +1,2 @@ +i386 +x86_64
diff --git a/arch/alpha/kernel/.gitignore b/arch/alpha/kernel/.gitignore new file mode 100644 index 0000000..c5f676c --- /dev/null +++ b/arch/alpha/kernel/.gitignore
@@ -0,0 +1 @@ +vmlinux.lds
diff --git a/arch/arm/boot/.gitignore b/arch/arm/boot/.gitignore new file mode 100644 index 0000000..c4f90a1 --- /dev/null +++ b/arch/arm/boot/.gitignore
@@ -0,0 +1,8 @@ +Image +zImage +xipImage +bootpImage +uImage +lib1funcs.S +piggy.gzip +vmlinux
diff --git a/arch/arm/boot/compressed/.gitignore b/arch/arm/boot/compressed/.gitignore new file mode 100644 index 0000000..c602896 --- /dev/null +++ b/arch/arm/boot/compressed/.gitignore
@@ -0,0 +1,7 @@ +font.c +lib1funcs.S +piggy.gzip +piggy.lzo +piggy.lzma +vmlinux +vmlinux.lds
diff --git a/arch/arm/configs/ambarella_a5s_defconfig b/arch/arm/configs/ambarella_a5s_defconfig index 7ef6b58..ad71b14 100644 --- a/arch/arm/configs/ambarella_a5s_defconfig +++ b/arch/arm/configs/ambarella_a5s_defconfig
@@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit # Linux/arm 2.6.38.8 Kernel Configuration -# Wed Dec 3 07:35:25 2014 +# Thu May 21 15:33:33 2015 # CONFIG_ARM=y CONFIG_HAVE_PWM=y @@ -659,6 +659,7 @@ # CONFIG_NET_CLS_IND is not set CONFIG_NET_SCH_FIFO=y # CONFIG_DCB is not set +CONFIG_DNS_RESOLVER=y # CONFIG_BATMAN_ADV is not set # @@ -1494,6 +1495,7 @@ CONFIG_CONFIGFS_FS=y CONFIG_MISC_FILESYSTEMS=y # CONFIG_AFFS_FS is not set +# CONFIG_ECRYPT_FS is not set # CONFIG_HFS_FS is not set # CONFIG_HFSPLUS_FS is not set # CONFIG_BEFS_FS is not set @@ -1531,7 +1533,28 @@ # CONFIG_QNX4FS_FS is not set # CONFIG_ROMFS_FS is not set # CONFIG_SYSV_FS is not set -# CONFIG_NETWORK_FILESYSTEMS is not set +CONFIG_NETWORK_FILESYSTEMS=y +CONFIG_NFS_FS=y +CONFIG_NFS_V3=y +# CONFIG_NFS_V3_ACL is not set +CONFIG_NFS_V4=y +# CONFIG_NFS_V4_1 is not set +# CONFIG_ROOT_NFS is not set +# CONFIG_NFS_USE_LEGACY_DNS is not set +CONFIG_NFS_USE_KERNEL_DNS=y +# CONFIG_NFS_USE_NEW_IDMAPPER is not set +# CONFIG_NFSD is not set +CONFIG_LOCKD=y +CONFIG_LOCKD_V4=y +CONFIG_NFS_COMMON=y +CONFIG_SUNRPC=y +CONFIG_SUNRPC_GSS=y +CONFIG_RPCSEC_GSS_KRB5=y +# CONFIG_CEPH_FS is not set +# CONFIG_CIFS is not set +# CONFIG_NCP_FS is not set +# CONFIG_CODA_FS is not set +# CONFIG_AFS_FS is not set # # Partition Types @@ -1627,7 +1650,8 @@ # # Security options # -# CONFIG_KEYS is not set +CONFIG_KEYS=y +# CONFIG_KEYS_DEBUG_PROC_KEYS is not set # CONFIG_SECURITY_DMESG_RESTRICT is not set # CONFIG_SECURITY is not set # CONFIG_SECURITYFS is not set
diff --git a/arch/arm/kernel/.gitignore b/arch/arm/kernel/.gitignore new file mode 100644 index 0000000..c5f676c --- /dev/null +++ b/arch/arm/kernel/.gitignore
@@ -0,0 +1 @@ +vmlinux.lds
diff --git a/arch/arm/mach-ambarella/init-dropcam-quartz.c b/arch/arm/mach-ambarella/init-dropcam-quartz.c index 84bdbe7..f028b55 100644 --- a/arch/arm/mach-ambarella/init-dropcam-quartz.c +++ b/arch/arm/mach-ambarella/init-dropcam-quartz.c
@@ -383,7 +383,7 @@ ambarella_platform_sd_controller0.slot[1].cd_delay = 100; ambarella_platform_sd_controller0.slot[1].fixed_wp = 0; - ambarella_platform_sd_controller0.slot[1].fixed_cd = 0; + ambarella_platform_sd_controller0.slot[1].fixed_cd = 1; ambarella_platform_sd_controller0.slot[1].gpio_cd.irq_gpio = -1; ambarella_platform_sd_controller0.slot[1].gpio_cd.irq_line = -1; ambarella_platform_sd_controller0.slot[1].gpio_cd.irq_type = -1;
diff --git a/arch/avr32/boot/images/.gitignore b/arch/avr32/boot/images/.gitignore new file mode 100644 index 0000000..64ea9d0 --- /dev/null +++ b/arch/avr32/boot/images/.gitignore
@@ -0,0 +1,4 @@ +uImage +uImage.srec +vmlinux.cso +sfdwarf.log
diff --git a/arch/avr32/kernel/.gitignore b/arch/avr32/kernel/.gitignore new file mode 100644 index 0000000..c5f676c --- /dev/null +++ b/arch/avr32/kernel/.gitignore
@@ -0,0 +1 @@ +vmlinux.lds
diff --git a/arch/blackfin/boot/.gitignore b/arch/blackfin/boot/.gitignore new file mode 100644 index 0000000..229e508 --- /dev/null +++ b/arch/blackfin/boot/.gitignore
@@ -0,0 +1,2 @@ +vmImage* +vmlinux*
diff --git a/arch/blackfin/kernel/.gitignore b/arch/blackfin/kernel/.gitignore new file mode 100644 index 0000000..c5f676c --- /dev/null +++ b/arch/blackfin/kernel/.gitignore
@@ -0,0 +1 @@ +vmlinux.lds
diff --git a/arch/cris/boot/.gitignore b/arch/cris/boot/.gitignore new file mode 100644 index 0000000..171a085 --- /dev/null +++ b/arch/cris/boot/.gitignore
@@ -0,0 +1,2 @@ +Image +zImage
diff --git a/arch/ia64/kernel/.gitignore b/arch/ia64/kernel/.gitignore new file mode 100644 index 0000000..21cb0da --- /dev/null +++ b/arch/ia64/kernel/.gitignore
@@ -0,0 +1,2 @@ +gate.lds +vmlinux.lds
diff --git a/arch/m32r/kernel/.gitignore b/arch/m32r/kernel/.gitignore new file mode 100644 index 0000000..c5f676c --- /dev/null +++ b/arch/m32r/kernel/.gitignore
@@ -0,0 +1 @@ +vmlinux.lds
diff --git a/arch/m68k/kernel/.gitignore b/arch/m68k/kernel/.gitignore new file mode 100644 index 0000000..c5f676c --- /dev/null +++ b/arch/m68k/kernel/.gitignore
@@ -0,0 +1 @@ +vmlinux.lds
diff --git a/arch/m68knommu/kernel/.gitignore b/arch/m68knommu/kernel/.gitignore new file mode 100644 index 0000000..c5f676c --- /dev/null +++ b/arch/m68knommu/kernel/.gitignore
@@ -0,0 +1 @@ +vmlinux.lds
diff --git a/arch/mips/boot/.gitignore b/arch/mips/boot/.gitignore new file mode 100644 index 0000000..f210b09 --- /dev/null +++ b/arch/mips/boot/.gitignore
@@ -0,0 +1,6 @@ +mkboot +elf2ecoff +vmlinux.* +zImage +zImage.tmp +calc_vmlinuz_load_addr
diff --git a/arch/mips/kernel/.gitignore b/arch/mips/kernel/.gitignore new file mode 100644 index 0000000..c5f676c --- /dev/null +++ b/arch/mips/kernel/.gitignore
@@ -0,0 +1 @@ +vmlinux.lds
diff --git a/arch/mn10300/boot/.gitignore b/arch/mn10300/boot/.gitignore new file mode 100644 index 0000000..b6718de --- /dev/null +++ b/arch/mn10300/boot/.gitignore
@@ -0,0 +1 @@ +zImage
diff --git a/arch/parisc/kernel/.gitignore b/arch/parisc/kernel/.gitignore new file mode 100644 index 0000000..c5f676c --- /dev/null +++ b/arch/parisc/kernel/.gitignore
@@ -0,0 +1 @@ +vmlinux.lds
diff --git a/arch/powerpc/boot/.gitignore b/arch/powerpc/boot/.gitignore new file mode 100644 index 0000000..3d80c3e --- /dev/null +++ b/arch/powerpc/boot/.gitignore
@@ -0,0 +1,48 @@ +addnote +dtc +empty.c +hack-coff +infblock.c +infblock.h +infcodes.c +infcodes.h +inffast.c +inffast.h +inffixed.h +inflate.c +inflate.h +inftrees.c +inftrees.h +infutil.c +infutil.h +kernel-vmlinux.strip.c +kernel-vmlinux.strip.gz +mktree +uImage +cuImage.* +dtbImage.* +treeImage.* +zImage +zImage.initrd +zImage.bin.* +zImage.chrp +zImage.coff +zImage.holly +zImage.iseries +zImage.*lds +zImage.miboot +zImage.pmac +zImage.pseries +zconf.h +zlib.h +zutil.h +fdt.c +fdt.h +fdt_ro.c +fdt_rw.c +fdt_strerror.c +fdt_sw.c +fdt_wip.c +libfdt.h +libfdt_internal.h +
diff --git a/arch/powerpc/boot/dtc-src/.gitignore b/arch/powerpc/boot/dtc-src/.gitignore new file mode 100644 index 0000000..a7c3f94 --- /dev/null +++ b/arch/powerpc/boot/dtc-src/.gitignore
@@ -0,0 +1,3 @@ +dtc-lexer.lex.c +dtc-parser.tab.c +dtc-parser.tab.h
diff --git a/arch/powerpc/kernel/.gitignore b/arch/powerpc/kernel/.gitignore new file mode 100644 index 0000000..c5f676c --- /dev/null +++ b/arch/powerpc/kernel/.gitignore
@@ -0,0 +1 @@ +vmlinux.lds
diff --git a/arch/powerpc/kernel/vdso32/.gitignore b/arch/powerpc/kernel/vdso32/.gitignore new file mode 100644 index 0000000..fea5809 --- /dev/null +++ b/arch/powerpc/kernel/vdso32/.gitignore
@@ -0,0 +1,2 @@ +vdso32.lds +vdso32.so.dbg
diff --git a/arch/powerpc/kernel/vdso64/.gitignore b/arch/powerpc/kernel/vdso64/.gitignore new file mode 100644 index 0000000..77a0b42 --- /dev/null +++ b/arch/powerpc/kernel/vdso64/.gitignore
@@ -0,0 +1,2 @@ +vdso64.lds +vdso64.so.dbg
diff --git a/arch/powerpc/platforms/cell/spufs/.gitignore b/arch/powerpc/platforms/cell/spufs/.gitignore new file mode 100644 index 0000000..a09ee8d --- /dev/null +++ b/arch/powerpc/platforms/cell/spufs/.gitignore
@@ -0,0 +1,2 @@ +spu_save_dump.h +spu_restore_dump.h
diff --git a/arch/sh/boot/.gitignore b/arch/sh/boot/.gitignore new file mode 100644 index 0000000..541087d --- /dev/null +++ b/arch/sh/boot/.gitignore
@@ -0,0 +1,3 @@ +zImage +vmlinux* +uImage*
diff --git a/arch/sh/boot/compressed/.gitignore b/arch/sh/boot/compressed/.gitignore new file mode 100644 index 0000000..2374a83 --- /dev/null +++ b/arch/sh/boot/compressed/.gitignore
@@ -0,0 +1 @@ +vmlinux.bin.*
diff --git a/arch/sh/kernel/.gitignore b/arch/sh/kernel/.gitignore new file mode 100644 index 0000000..c5f676c --- /dev/null +++ b/arch/sh/kernel/.gitignore
@@ -0,0 +1 @@ +vmlinux.lds
diff --git a/arch/sh/kernel/vsyscall/.gitignore b/arch/sh/kernel/vsyscall/.gitignore new file mode 100644 index 0000000..40836ad --- /dev/null +++ b/arch/sh/kernel/vsyscall/.gitignore
@@ -0,0 +1 @@ +vsyscall.lds
diff --git a/arch/sparc/boot/.gitignore b/arch/sparc/boot/.gitignore new file mode 100644 index 0000000..fc6f398 --- /dev/null +++ b/arch/sparc/boot/.gitignore
@@ -0,0 +1,8 @@ +btfix.S +btfixupprep +image +zImage +tftpboot.img +vmlinux.aout +piggyback +
diff --git a/arch/sparc/kernel/.gitignore b/arch/sparc/kernel/.gitignore new file mode 100644 index 0000000..c5f676c --- /dev/null +++ b/arch/sparc/kernel/.gitignore
@@ -0,0 +1 @@ +vmlinux.lds
diff --git a/arch/um/.gitignore b/arch/um/.gitignore new file mode 100644 index 0000000..a73d3a1 --- /dev/null +++ b/arch/um/.gitignore
@@ -0,0 +1,3 @@ +kernel/config.c +kernel/config.tmp +kernel/vmlinux.lds
diff --git a/arch/x86/.gitignore b/arch/x86/.gitignore new file mode 100644 index 0000000..0280790 --- /dev/null +++ b/arch/x86/.gitignore
@@ -0,0 +1,3 @@ +boot/compressed/vmlinux +tools/test_get_len +
diff --git a/arch/x86/boot/.gitignore b/arch/x86/boot/.gitignore new file mode 100644 index 0000000..851fe93 --- /dev/null +++ b/arch/x86/boot/.gitignore
@@ -0,0 +1,10 @@ +bootsect +bzImage +cpustr.h +mkcpustr +offsets.h +voffset.h +zoffset.h +setup +setup.bin +setup.elf
diff --git a/arch/x86/boot/compressed/.gitignore b/arch/x86/boot/compressed/.gitignore new file mode 100644 index 0000000..4a46fab --- /dev/null +++ b/arch/x86/boot/compressed/.gitignore
@@ -0,0 +1,6 @@ +relocs +vmlinux.bin.all +vmlinux.relocs +vmlinux.lds +mkpiggy +piggy.S
diff --git a/arch/x86/boot/tools/.gitignore b/arch/x86/boot/tools/.gitignore new file mode 100644 index 0000000..378eac2 --- /dev/null +++ b/arch/x86/boot/tools/.gitignore
@@ -0,0 +1 @@ +build
diff --git a/arch/x86/kernel/.gitignore b/arch/x86/kernel/.gitignore new file mode 100644 index 0000000..08f4fd7 --- /dev/null +++ b/arch/x86/kernel/.gitignore
@@ -0,0 +1,3 @@ +vsyscall.lds +vsyscall_32.lds +vmlinux.lds
diff --git a/arch/x86/kernel/acpi/realmode/.gitignore b/arch/x86/kernel/acpi/realmode/.gitignore new file mode 100644 index 0000000..58f1f48 --- /dev/null +++ b/arch/x86/kernel/acpi/realmode/.gitignore
@@ -0,0 +1,3 @@ +wakeup.bin +wakeup.elf +wakeup.lds
diff --git a/arch/x86/kernel/cpu/.gitignore b/arch/x86/kernel/cpu/.gitignore new file mode 100644 index 0000000..667df55 --- /dev/null +++ b/arch/x86/kernel/cpu/.gitignore
@@ -0,0 +1 @@ +capflags.c
diff --git a/arch/x86/lib/.gitignore b/arch/x86/lib/.gitignore new file mode 100644 index 0000000..8df89f0 --- /dev/null +++ b/arch/x86/lib/.gitignore
@@ -0,0 +1 @@ +inat-tables.c
diff --git a/arch/x86/vdso/.gitignore b/arch/x86/vdso/.gitignore new file mode 100644 index 0000000..60274d5 --- /dev/null +++ b/arch/x86/vdso/.gitignore
@@ -0,0 +1,6 @@ +vdso.lds +vdso-syms.lds +vdso32-syms.lds +vdso32-syscall-syms.lds +vdso32-sysenter-syms.lds +vdso32-int80-syms.lds
diff --git a/arch/x86/vdso/vdso32/.gitignore b/arch/x86/vdso/vdso32/.gitignore new file mode 100644 index 0000000..e45fba9 --- /dev/null +++ b/arch/x86/vdso/vdso32/.gitignore
@@ -0,0 +1 @@ +vdso32.lds
diff --git a/drivers/atm/.gitignore b/drivers/atm/.gitignore new file mode 100644 index 0000000..fc0ae5e --- /dev/null +++ b/drivers/atm/.gitignore
@@ -0,0 +1,5 @@ +# Ignore generated files +fore200e_mkfirm +fore200e_pca_fw.c +pca200e.bin +pca200e_ecd.bin2
diff --git a/drivers/char/.gitignore b/drivers/char/.gitignore new file mode 100644 index 0000000..7bcea53 --- /dev/null +++ b/drivers/char/.gitignore
@@ -0,0 +1,2 @@ +consolemap_deftbl.c +defkeymap.c
diff --git a/drivers/eisa/.gitignore b/drivers/eisa/.gitignore new file mode 100644 index 0000000..4b335c0 --- /dev/null +++ b/drivers/eisa/.gitignore
@@ -0,0 +1 @@ +devlist.h
diff --git a/drivers/gpu/drm/radeon/.gitignore b/drivers/gpu/drm/radeon/.gitignore new file mode 100644 index 0000000..403eb3a --- /dev/null +++ b/drivers/gpu/drm/radeon/.gitignore
@@ -0,0 +1,3 @@ +mkregtable +*_reg_safe.h +
diff --git a/drivers/mmc/host/ambarella_sd.c b/drivers/mmc/host/ambarella_sd.c index 6e7079d..d367f51 100644 --- a/drivers/mmc/host/ambarella_sd.c +++ b/drivers/mmc/host/ambarella_sd.c
@@ -437,8 +437,10 @@ amba_writeb(pinfo->regbase + SD_TMO_OFFSET, CONFIG_SD_AMBARELLA_TIMEOUT_VAL); - nis_flag = SD_NISEN_REMOVAL | - SD_NISEN_INSERT | + nis_flag = + // We don't have any removable card slots. + // SD_NISEN_REMOVAL | + // SD_NISEN_INSERT | SD_NISEN_DMA | SD_NISEN_BLOCK_GAP | SD_NISEN_XFR_DONE | @@ -520,18 +522,12 @@ static inline void ambarella_sd_data_done( struct ambarella_sd_mmc_info *pslotinfo, u16 nis, u16 eis) { + struct mmc_command *cmd; struct mmc_data *data; + struct ambarella_sd_controller_info *pinfo; + u32 rsp0, rsp1, rsp2, rsp3; - if ((pslotinfo->state == AMBA_SD_STATE_CMD) && - ((pslotinfo->cmd_reg & 0x3) == SD_CMD_RSP_48BUSY)) { - if (eis) { - pslotinfo->state = AMBA_SD_STATE_ERR; - } else { - pslotinfo->state = AMBA_SD_STATE_IDLE; - } - wake_up(&pslotinfo->wait); - return; - } + // We should not receive this IRQ if we have AMBA_SD_STATE_CMD. if (pslotinfo->mrq == NULL) { ambsd_dbg(pslotinfo, "%s: mrq is NULL, nis[0x%x] eis[0x%x]\n", __func__, nis, eis); @@ -543,6 +539,8 @@ return; } + pinfo = (struct ambarella_sd_controller_info *)pslotinfo->pinfo; + cmd = pslotinfo->mrq->cmd; data = pslotinfo->mrq->data; if (eis) { if (eis & SD_EIS_DATA_BIT_ERR) { @@ -565,6 +563,20 @@ data->bytes_xfered = pslotinfo->dma_size; } + // Our command should be done as well. + if (cmd->flags & MMC_RSP_136) { + rsp0 = amba_readl(pinfo->regbase + SD_RSP0_OFFSET); + rsp1 = amba_readl(pinfo->regbase + SD_RSP1_OFFSET); + rsp2 = amba_readl(pinfo->regbase + SD_RSP2_OFFSET); + rsp3 = amba_readl(pinfo->regbase + SD_RSP3_OFFSET); + cmd->resp[0] = ((rsp3 << 8) | (rsp2 >> 24)); + cmd->resp[1] = ((rsp2 << 8) | (rsp1 >> 24)); + cmd->resp[2] = ((rsp1 << 8) | (rsp0 >> 24)); + cmd->resp[3] = (rsp0 << 8); + } else { + cmd->resp[0] = amba_readl(pinfo->regbase + SD_RSP0_OFFSET); + } + pslotinfo->state = AMBA_SD_STATE_IDLE; wake_up(&pslotinfo->wait); } @@ -638,8 +650,7 @@ cmd->resp[0] = amba_readl(pinfo->regbase + SD_RSP0_OFFSET); } - if ((pslotinfo->state == AMBA_SD_STATE_CMD) && - ((pslotinfo->cmd_reg & 0x3) != SD_CMD_RSP_48BUSY)) { + if ((pslotinfo->cmd_reg & 0x3) != SD_CMD_RSP_48BUSY) { pslotinfo->state = AMBA_SD_STATE_IDLE; wake_up(&pslotinfo->wait); } @@ -651,57 +662,38 @@ struct ambarella_sd_mmc_info *pslotinfo = NULL; u16 nis; u16 eis; - u32 enabled = 0; - u32 i; + u16 nixen; pinfo = (struct ambarella_sd_controller_info *)devid; + // We can hard-code it to slot 1 (wifi). + // It is always enabled. + pslotinfo = pinfo->pslotinfo[1]; /* Read the interrupt registers */ amba_read2w(pinfo->regbase + SD_NIS_OFFSET, &nis, &eis); - - for (i = 0; i < pinfo->pcontroller->num_slots; i++) { - pslotinfo = pinfo->pslotinfo[i]; - enabled = pslotinfo->plat_info->check_owner(); - if (enabled) - break; + if (pslotinfo->state == AMBA_SD_STATE_DATA) { + // We sent a data command. + if ((nis & (SD_NIS_XFR_DONE | SD_NIS_CMD_DONE)) == SD_NIS_CMD_DONE) { + // A card IRQ brought us in, but we don't want to handle the + // command done. + nis &= ~SD_NIS_CMD_DONE; + } + // Technically XFR_DONE could also come before CMD_DONE, but this + // has never been observed. } - /* Clear interrupt */ amba_write2w(pinfo->regbase + SD_NIS_OFFSET, nis, eis); - if (enabled) { - ambsd_dbg(pslotinfo, "%s nis = 0x%x, eis = 0x%x & %u\n", - __func__, nis, eis, pslotinfo->state); - } else { - ambsd_dbg(pslotinfo, "%s[false] nis = 0x%x, eis = 0x%x\n", - __func__, nis, eis); - if (eis) { - ambsd_err(pslotinfo, - "FIO_CTR_REG = 0x%x, FIO_DMACTR_REG = 0x%x\n", - amba_readl(FIO_CTR_REG), - amba_readl(FIO_DMACTR_REG)); - ambarella_sd_reset_all(pslotinfo->mmc); - } - goto ambarella_sd_irq_exit; - } + + ambsd_dbg(pslotinfo, "%s nis = 0x%x, eis = 0x%x & %u\n", + __func__, nis, eis, pslotinfo->state); if (nis & SD_NIS_CARD) { ambsd_dbg(pslotinfo, "SD_NIS_CARD\n"); mmc_signal_sdio_irq(pslotinfo->mmc); } - if (!ambarella_is_valid_gpio_irq(&pslotinfo->plat_info->gpio_cd) && - (pslotinfo->plat_info->fixed_cd == -1)) { - if (nis & SD_NIS_REMOVAL) { - ambsd_dbg(pslotinfo, "SD_NIS_REMOVAL\n"); - mmc_detect_change(pslotinfo->mmc, - pslotinfo->plat_info->cd_delay); - } else if (nis & SD_NIS_INSERT) { - ambsd_dbg(pslotinfo, "SD_NIS_INSERT\n"); - mmc_detect_change(pslotinfo->mmc, - pslotinfo->plat_info->cd_delay); - } - } - + // SD_NIS_REMOVAL, SD_NIS_INSERT and SD_NIS_DMA are disabled and not + // handled. if (eis) { if (eis & (SD_EIS_CMD_TMOUT_ERR | SD_EIS_CMD_CRC_ERR | SD_EIS_CMD_BIT_ERR | SD_EIS_CMD_IDX_ERR | @@ -720,18 +712,12 @@ ambarella_sd_data_done(pslotinfo, nis, eis); } } else { - if (nis & SD_NIS_CMD_DONE) { + if (nis & SD_NIS_XFR_DONE) { + // Both command and data are now done. + ambarella_sd_data_done(pslotinfo, nis, eis); + } else if (nis & SD_NIS_CMD_DONE) { ambarella_sd_cmd_done(pslotinfo, nis, eis); } - if (nis & SD_NIS_XFR_DONE) { - ambarella_sd_data_done(pslotinfo, nis, eis); - } -#if 0 - if (nis & SD_NIS_DMA) { - amba_writel(pinfo->regbase + SD_DMA_ADDR_OFFSET, - amba_readl(pinfo->regbase + SD_DMA_ADDR_OFFSET)); - } -#endif } ambarella_sd_irq_exit: @@ -945,34 +931,6 @@ } } -static u32 ambarella_sd_check_cd(struct mmc_host *mmc) -{ - struct ambarella_sd_mmc_info *pslotinfo = mmc_priv(mmc); - struct ambarella_sd_controller_info *pinfo; - int cdpin; - u32 valid_cd = 0; - - pinfo = (struct ambarella_sd_controller_info *)pslotinfo->pinfo; - - if (pslotinfo->plat_info->fixed_cd == 1) { - valid_cd = 1; - } else if (pslotinfo->plat_info->fixed_cd == 0) { - valid_cd = 0; - } else { - cdpin = ambarella_sd_gpio_cd_check_val(pslotinfo); - if (cdpin == 1) { - valid_cd = 1; - } else if (cdpin == -1) { - if (amba_tstbitsl(pinfo->regbase + SD_STA_OFFSET, - SD_STA_CARD_INSERTED)) { - valid_cd = 1; - } - } - } - - return valid_cd; -} - static inline void ambarella_sd_prepare_tmo( struct ambarella_sd_mmc_info *pslotinfo, struct mmc_data *pmmcdata) @@ -1120,42 +1078,37 @@ struct ambarella_sd_mmc_info *pslotinfo) { struct ambarella_sd_controller_info *pinfo; - u32 valid_request = 0; - u32 counter = 0; u32 sta_reg; u32 tmpreg; long timeout; + u16 nixen_reg; pinfo = (struct ambarella_sd_controller_info *)pslotinfo->pinfo; ambarella_sd_request_bus(pslotinfo->mmc); - valid_request = ambarella_sd_check_cd(pslotinfo->mmc); - ambsd_dbg(pslotinfo, "cmd = %u valid_request = %u.\n", - pslotinfo->mrq->cmd->opcode, valid_request); - if (!valid_request) { - pslotinfo->mrq->cmd->error = -ENOMEDIUM; - pslotinfo->state = AMBA_SD_STATE_ERR; - goto ambarella_sd_send_cmd_exit; - } + ambsd_dbg(pslotinfo, "cmd = %u.\n", pslotinfo->mrq->cmd->opcode); ambarella_sd_check_ios(pslotinfo->mmc, &pslotinfo->mmc->ios); + + sta_reg = amba_readl(pinfo->regbase + SD_STA_OFFSET); if (pslotinfo->mrq->data) { - while (1) { - sta_reg = amba_readl(pinfo->regbase + SD_STA_OFFSET); - if ((sta_reg & SD_STA_CMD_INHIBIT_DAT) == 0) { - break; - } - counter++; - if (counter > CONFIG_SD_AMBARELLA_WAIT_COUNTER_LIMIT) { - ambsd_warn(pslotinfo, - "Wait SD_STA_CMD_INHIBIT_DAT...\n"); - pslotinfo->state = AMBA_SD_STATE_ERR; - pinfo->reset_error = 1; - goto ambarella_sd_send_cmd_exit; - } + if (sta_reg & SD_STA_CMD_INHIBIT_DAT) { + // This should not happen because we wait for commands to + // complete + ambsd_warn(pslotinfo, "SD_STA_CMD_INHIBIT_DAT...\n"); + pslotinfo->state = AMBA_SD_STATE_ERR; + pinfo->reset_error = 1; + goto ambarella_sd_send_cmd_exit; } + // We're doing blocking data transfer, and we don't want to care about + // when the command is done. The data done IRQ should come and we can + // handle both. This saves us one IRQ. + nixen_reg = amba_readw(pinfo->regbase + SD_NIXEN_OFFSET); + amba_writew(pinfo->regbase + SD_NIXEN_OFFSET, + nixen_reg & ~SD_NIXEN_CMD_DONE); + amba_writeb(pinfo->regbase + SD_TMO_OFFSET, pslotinfo->tmo); amba_writel(pinfo->regbase + SD_DMA_ADDR_OFFSET, pslotinfo->dma_address); @@ -1165,19 +1118,13 @@ amba_write2w(pinfo->regbase + SD_XFR_OFFSET, pslotinfo->xfr_reg, pslotinfo->cmd_reg); } else { - while (1) { - sta_reg = amba_readl(pinfo->regbase + SD_STA_OFFSET); - if ((sta_reg & SD_STA_CMD_INHIBIT_CMD) == 0) { - break; - } - counter++; - if (counter > CONFIG_SD_AMBARELLA_WAIT_COUNTER_LIMIT) { - ambsd_warn(pslotinfo, - "Wait SD_STA_CMD_INHIBIT_CMD...\n"); - pslotinfo->state = AMBA_SD_STATE_ERR; - pinfo->reset_error = 1; - goto ambarella_sd_send_cmd_exit; - } + if (sta_reg & SD_STA_CMD_INHIBIT_CMD) { + // This should not happen because we wait for commands to + // complete + ambsd_warn(pslotinfo, "Wait SD_STA_CMD_INHIBIT_CMD...\n"); + pslotinfo->state = AMBA_SD_STATE_ERR; + pinfo->reset_error = 1; + goto ambarella_sd_send_cmd_exit; } amba_writel(pinfo->regbase + SD_ARG_OFFSET, pslotinfo->arg_reg); @@ -1254,6 +1201,8 @@ sta_reg, pslotinfo->sta_reg); pslotinfo->mrq->data->error = -ETIMEDOUT; } + // Now that we're done, restore the cmd done IRQ. + amba_writew(pinfo->regbase + SD_NIXEN_OFFSET, nixen_reg); } } @@ -1339,14 +1288,11 @@ static int ambarella_sd_get_cd(struct mmc_host *mmc) { struct ambarella_sd_mmc_info *pslotinfo = mmc_priv(mmc); - u32 cdpin; - ambarella_sd_request_bus(mmc); - cdpin = ambarella_sd_check_cd(mmc); - ambarella_sd_release_bus(mmc); - - ambsd_dbg(pslotinfo, "CD[%u].\n", cdpin); - return cdpin ? 1 : 0; + // Slot 0 is always 0. + // Slot 1 is always 1. + // See linux-2.6.38/arch/arm/mach-ambarella/init-dropcam-quartz.c + return pslotinfo->plat_info->fixed_cd; } static void ambarella_sd_enable_sdio_irq(struct mmc_host *mmc, int enable)
diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c index 0e3763a..3b309a5 100644 --- a/drivers/mtd/nand/nand_base.c +++ b/drivers/mtd/nand/nand_base.c
@@ -3153,7 +3153,8 @@ (*maf_id == NAND_MFR_SAMSUNG || *maf_id == NAND_MFR_HYNIX || *maf_id == NAND_MFR_TOSHIBA || - *maf_id == NAND_MFR_AMD)) || + *maf_id == NAND_MFR_AMD || + *maf_id == NAND_MFR_WINBOND)) || (mtd->writesize == 2048 && *maf_id == NAND_MFR_MICRON)) chip->options |= NAND_BBT_SCAN2NDPAGE;
diff --git a/drivers/mtd/nand/nand_ids.c b/drivers/mtd/nand/nand_ids.c index 00cf1b0..b053db8 100644 --- a/drivers/mtd/nand/nand_ids.c +++ b/drivers/mtd/nand/nand_ids.c
@@ -176,6 +176,7 @@ {NAND_MFR_HYNIX, "Hynix"}, {NAND_MFR_MICRON, "Micron"}, {NAND_MFR_AMD, "AMD"}, + {NAND_MFR_WINBOND, "Winbond"}, {0x0, "Unknown"} };
diff --git a/drivers/net/wan/.gitignore b/drivers/net/wan/.gitignore new file mode 100644 index 0000000..dae3ea6 --- /dev/null +++ b/drivers/net/wan/.gitignore
@@ -0,0 +1 @@ +wanxlfw.inc
diff --git a/drivers/pci/.gitignore b/drivers/pci/.gitignore new file mode 100644 index 0000000..f297ca8 --- /dev/null +++ b/drivers/pci/.gitignore
@@ -0,0 +1,4 @@ +classlist.h +devlist.h +gen-devlist +
diff --git a/drivers/scsi/.gitignore b/drivers/scsi/.gitignore new file mode 100644 index 0000000..c89ae9a --- /dev/null +++ b/drivers/scsi/.gitignore
@@ -0,0 +1 @@ +53c700_d.h
diff --git a/drivers/scsi/aic7xxx/.gitignore b/drivers/scsi/aic7xxx/.gitignore new file mode 100644 index 0000000..b8ee24d --- /dev/null +++ b/drivers/scsi/aic7xxx/.gitignore
@@ -0,0 +1,6 @@ +aic79xx_reg.h +aic79xx_reg_print.c +aic79xx_seq.h +aic7xxx_reg.h +aic7xxx_reg_print.c +aic7xxx_seq.h
diff --git a/drivers/tty/vt/.gitignore b/drivers/tty/vt/.gitignore new file mode 100644 index 0000000..83683a2 --- /dev/null +++ b/drivers/tty/vt/.gitignore
@@ -0,0 +1,2 @@ +consolemap_deftbl.c +defkeymap.c
diff --git a/drivers/usb/gadget/dropcam_storage.c b/drivers/usb/gadget/dropcam_storage.c index 1502499..8e80069 100644 --- a/drivers/usb/gadget/dropcam_storage.c +++ b/drivers/usb/gadget/dropcam_storage.c
@@ -104,8 +104,10 @@ }; FSG_MODULE_PARAMETERS(/* no prefix */, mod_data); +static struct fsg_common common; + static unsigned long msg_registered; -static void msg_cleanup(void); +static int msg_cleanup(void); static int msg_thread_exits(struct fsg_common *common) { @@ -118,7 +120,6 @@ static const struct fsg_operations ops = { .thread_exits = msg_thread_exits, }; - static struct fsg_common common; struct fsg_common *retp; struct fsg_config config; @@ -188,12 +189,22 @@ } module_init(msg_init); -static void msg_cleanup(void) +static int msg_cleanup(void) { - if (test_and_clear_bit(0, &msg_registered)) + if (test_and_clear_bit(0, &msg_registered)) { usb_composite_unregister(&msg_driver); - fs_release_netlink(); + fs_release_netlink(); + return 0; + } + return 1; } -module_exit(msg_cleanup); + +static void module_cleanup(void) +{ + if (msg_cleanup()) { + wait_for_completion(&common.thread_notifier); + } +} +module_exit(module_cleanup); #include "dropcam_fsdrv.c"
diff --git a/drivers/video/logo/.gitignore b/drivers/video/logo/.gitignore new file mode 100644 index 0000000..e48355f --- /dev/null +++ b/drivers/video/logo/.gitignore
@@ -0,0 +1,7 @@ +# +# Generated files +# +*_mono.c +*_vga16.c +*_clut224.c +*_gray256.c
diff --git a/drivers/watchdog/dropcam_tps3813k33.c b/drivers/watchdog/dropcam_tps3813k33.c index a5061c3..5bdc03e 100644 --- a/drivers/watchdog/dropcam_tps3813k33.c +++ b/drivers/watchdog/dropcam_tps3813k33.c
@@ -40,27 +40,22 @@ #define DC_WDT_RESET_GPIO 54 #define DC_WDT_HALF_CYCLE_TIME ((HZ * 550)/1000) +#define KERNEL_HEARTBEAT_EXPIRE_TIMEOUT (HZ * 10) /* 10 seconds */ -static struct workqueue_struct *tps3813k33_wdt_kicker; +static struct workqueue_struct *tps3813k33_kernel_heartbeat; struct dropcam_tps3813k33_info { int last_toggle_value; struct timer_list * ptimer; + unsigned long last_kernel_heartbeat; struct work_struct tps3813k33_work; }; static struct timer_list dropcam_tps3813k33_timer; -static void dropcam_tps3813k33_toggle_worker(struct work_struct *work) { +static void dropcam_tps3813k33_heartbeat_worker(struct work_struct *work) { struct dropcam_tps3813k33_info *wdt_info = container_of(work, struct dropcam_tps3813k33_info, tps3813k33_work); - - wdt_info->last_toggle_value = !wdt_info->last_toggle_value; - - ambarella_gpio_set(DC_WDT_RESET_GPIO, wdt_info->last_toggle_value); - - ambarella_gpio_set(DC_WDT_ENABLE_GPIO, 1); - - mod_timer(wdt_info->ptimer, jiffies + DC_WDT_HALF_CYCLE_TIME); + wdt_info->last_kernel_heartbeat = jiffies; } static void dropcam_tps3813k33_toggle_timer_handler(unsigned long data) @@ -68,7 +63,19 @@ struct dropcam_tps3813k33_info *wdt_info = (struct dropcam_tps3813k33_info *)data; - queue_work(tps3813k33_wdt_kicker, &wdt_info->tps3813k33_work); + queue_work(tps3813k33_kernel_heartbeat, &wdt_info->tps3813k33_work); + + /* this timer interrupt handler might still fire after kernel panic + * kick the watchdog only if the kernel is alive */ + if (jiffies - wdt_info->last_kernel_heartbeat < KERNEL_HEARTBEAT_EXPIRE_TIMEOUT) { + wdt_info->last_toggle_value = !wdt_info->last_toggle_value; + + ambarella_gpio_set(DC_WDT_RESET_GPIO, wdt_info->last_toggle_value); + + ambarella_gpio_set(DC_WDT_ENABLE_GPIO, 1); + + mod_timer(wdt_info->ptimer, jiffies + DC_WDT_HALF_CYCLE_TIME); + } } static const struct file_operations dropcam_tps3813k33_fops = { @@ -105,8 +112,8 @@ pinfo->ptimer->expires = jiffies + DC_WDT_HALF_CYCLE_TIME; - tps3813k33_wdt_kicker = create_workqueue("tps3813k33_wdt_kicker"); - INIT_WORK(&pinfo->tps3813k33_work, dropcam_tps3813k33_toggle_worker); + tps3813k33_kernel_heartbeat = create_workqueue("tps3813k33_kernel_heartbeat"); + INIT_WORK(&pinfo->tps3813k33_work, dropcam_tps3813k33_heartbeat_worker); printk(KERN_INFO "Enabling TPS3813 HW WDT\n"); ambarella_gpio_config(DC_WDT_ENABLE_GPIO, GPIO_FUNC_SW_OUTPUT); @@ -116,6 +123,8 @@ add_timer(pinfo->ptimer); + pinfo->last_kernel_heartbeat = jiffies; + goto dropcam_tps3813k33_ok; dropcam_tps3813k33_no_pinfo:
diff --git a/drivers/zorro/.gitignore b/drivers/zorro/.gitignore new file mode 100644 index 0000000..34f980b --- /dev/null +++ b/drivers/zorro/.gitignore
@@ -0,0 +1,2 @@ +devlist.h +gen-devlist
diff --git a/firmware/.gitignore b/firmware/.gitignore new file mode 100644 index 0000000..d9c6901 --- /dev/null +++ b/firmware/.gitignore
@@ -0,0 +1,6 @@ +*.gen.S +*.fw +*.bin +*.csp +*.dsp +ihex2fw
diff --git a/firmware/cis/.gitignore b/firmware/cis/.gitignore new file mode 100644 index 0000000..1de3984 --- /dev/null +++ b/firmware/cis/.gitignore
@@ -0,0 +1 @@ +*.cis
diff --git a/include/linux/mtd/nand.h b/include/linux/mtd/nand.h index 1f489b2..eb14548 100644 --- a/include/linux/mtd/nand.h +++ b/include/linux/mtd/nand.h
@@ -556,6 +556,7 @@ #define NAND_MFR_HYNIX 0xad #define NAND_MFR_MICRON 0x2c #define NAND_MFR_AMD 0x01 +#define NAND_MFR_WINBOND 0xef /** * struct nand_flash_dev - NAND Flash Device ID Structure
diff --git a/kernel/.gitignore b/kernel/.gitignore new file mode 100644 index 0000000..ab4f109 --- /dev/null +++ b/kernel/.gitignore
@@ -0,0 +1,6 @@ +# +# Generated files +# +config_data.h +config_data.gz +timeconst.h
diff --git a/kernel/debug/kdb/.gitignore b/kernel/debug/kdb/.gitignore new file mode 100644 index 0000000..396d12e --- /dev/null +++ b/kernel/debug/kdb/.gitignore
@@ -0,0 +1 @@ +gen-kdb_cmds.c
diff --git a/lib/.gitignore b/lib/.gitignore new file mode 100644 index 0000000..3bef1ea --- /dev/null +++ b/lib/.gitignore
@@ -0,0 +1,6 @@ +# +# Generated files +# +gen_crc32table +crc32table.h +
diff --git a/lib/raid6/.gitignore b/lib/raid6/.gitignore new file mode 100644 index 0000000..162beca --- /dev/null +++ b/lib/raid6/.gitignore
@@ -0,0 +1,4 @@ +mktables +altivec*.c +int*.c +tables.c
diff --git a/net/wireless/.gitignore b/net/wireless/.gitignore new file mode 100644 index 0000000..c33451b --- /dev/null +++ b/net/wireless/.gitignore
@@ -0,0 +1 @@ +regdb.c
diff --git a/scripts/.gitignore b/scripts/.gitignore new file mode 100644 index 0000000..e2741d2 --- /dev/null +++ b/scripts/.gitignore
@@ -0,0 +1,10 @@ +# +# Generated files +# +conmakehash +kallsyms +pnmtologo +bin2c +unifdef +ihex2fw +recordmcount
diff --git a/scripts/basic/.gitignore b/scripts/basic/.gitignore new file mode 100644 index 0000000..bf8b199 --- /dev/null +++ b/scripts/basic/.gitignore
@@ -0,0 +1,3 @@ +hash +fixdep +docproc
diff --git a/scripts/dtc/.gitignore b/scripts/dtc/.gitignore new file mode 100644 index 0000000..095acb4 --- /dev/null +++ b/scripts/dtc/.gitignore
@@ -0,0 +1,5 @@ +dtc +dtc-lexer.lex.c +dtc-parser.tab.c +dtc-parser.tab.h +
diff --git a/scripts/genksyms/.gitignore b/scripts/genksyms/.gitignore new file mode 100644 index 0000000..be5cadb --- /dev/null +++ b/scripts/genksyms/.gitignore
@@ -0,0 +1,4 @@ +keywords.c +lex.c +parse.[ch] +genksyms
diff --git a/scripts/kconfig/.gitignore b/scripts/kconfig/.gitignore new file mode 100644 index 0000000..624f650 --- /dev/null +++ b/scripts/kconfig/.gitignore
@@ -0,0 +1,23 @@ +# +# Generated files +# +config* +lex.*.c +*.tab.c +*.tab.h +zconf.hash.c +*.moc +lkc_defs.h +gconf.glade.h +*.pot +*.mo + +# +# configuration programs +# +conf +mconf +nconf +qconf +gconf +kxgettext
diff --git a/scripts/kconfig/lxdialog/.gitignore b/scripts/kconfig/lxdialog/.gitignore new file mode 100644 index 0000000..90b08ff --- /dev/null +++ b/scripts/kconfig/lxdialog/.gitignore
@@ -0,0 +1,4 @@ +# +# Generated files +# +lxdialog
diff --git a/scripts/mod/.gitignore b/scripts/mod/.gitignore new file mode 100644 index 0000000..e9b7abe --- /dev/null +++ b/scripts/mod/.gitignore
@@ -0,0 +1,4 @@ +elfconfig.h +mk_elfconfig +modpost +
diff --git a/scripts/selinux/genheaders/.gitignore b/scripts/selinux/genheaders/.gitignore new file mode 100644 index 0000000..4c0b646 --- /dev/null +++ b/scripts/selinux/genheaders/.gitignore
@@ -0,0 +1 @@ +genheaders
diff --git a/scripts/selinux/mdp/.gitignore b/scripts/selinux/mdp/.gitignore new file mode 100644 index 0000000..654546d --- /dev/null +++ b/scripts/selinux/mdp/.gitignore
@@ -0,0 +1,2 @@ +# Generated file +mdp
diff --git a/security/apparmor/.gitignore b/security/apparmor/.gitignore new file mode 100644 index 0000000..4d995ae --- /dev/null +++ b/security/apparmor/.gitignore
@@ -0,0 +1,6 @@ +# +# Generated include files +# +af_names.h +capability_names.h +rlim_names.h
diff --git a/security/selinux/.gitignore b/security/selinux/.gitignore new file mode 100644 index 0000000..2e5040a --- /dev/null +++ b/security/selinux/.gitignore
@@ -0,0 +1,2 @@ +av_permissions.h +flask.h
diff --git a/sound/oss/.gitignore b/sound/oss/.gitignore new file mode 100644 index 0000000..7efb12b --- /dev/null +++ b/sound/oss/.gitignore
@@ -0,0 +1,4 @@ +#Ignore generated files +maui_boot.h +pss_boot.h +trix_boot.h
diff --git a/sound/soc/ambarella/ambarella_i2s.c b/sound/soc/ambarella/ambarella_i2s.c index 84738b2..d063cd3 100644 --- a/sound/soc/ambarella/ambarella_i2s.c +++ b/sound/soc/ambarella/ambarella_i2s.c
@@ -261,8 +261,12 @@ static int ambarella_i2s_prepare(struct snd_pcm_substream *substream, struct snd_soc_dai *dai) { - if(substream->stream == SNDRV_PCM_STREAM_CAPTURE) - dai_fifo_rst(); + if(substream->stream == SNDRV_PCM_STREAM_CAPTURE) { + dai_rx_disable(); + } else { + dai_tx_disable(); + } + dai_fifo_rst(); return 0; }
diff --git a/sound/soc/ambarella/ambarella_pcm.c b/sound/soc/ambarella/ambarella_pcm.c index 1f64aa0..cbb0b45 100644 --- a/sound/soc/ambarella/ambarella_pcm.c +++ b/sound/soc/ambarella/ambarella_pcm.c
@@ -100,53 +100,40 @@ return ambarella_dma_desc_stop(prtd->channel); } -static void dai_dma_handler(void *dev_id) +static void dai_dma_handler(void *dev_id, u32 status) { u32 *rpt; - int cur_descr; struct snd_pcm_substream *substream = dev_id; struct snd_pcm_runtime *runtime = substream->runtime; struct ambarella_runtime_data *prtd = runtime->private_data; - cur_descr = prtd->last_descr; + rpt = &prtd->dma_rpt_buf[prtd->last_descr]; + /* Descriptor chain done */ + /* In actual test we only see `status` has the done bit set but not the + * report buffer. The old ambarella code only checks the report buffer + * but let also check it just in case. */ + if (*rpt & 0x10000000 || (status & DMA_CHANX_STA_DD)) { + /* Don't increase the descriptor index because DMA + * is terminated. */ + *rpt &= ~0x10000000; + return; + } prtd->last_descr++; if (prtd->last_descr >= prtd->ndescr) { prtd->last_descr = 0; } snd_pcm_period_elapsed(substream); - - /* Check if stop dma chain */ - rpt = &prtd->dma_rpt_buf[cur_descr]; - if (*rpt & 0x10000000) { /* Descriptor chain done */ - *rpt &= (~0x10000000); - if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) { - /* dai_tx_disable() */ - amba_clrbitsl(I2S_INIT_REG, 0x4); - /* dai_fifo_rst() */ - if(!amba_tstbitsl(I2S_INIT_REG, 0x6)) - amba_setbitsl(I2S_INIT_REG, 0x1); - } else { - /* dai_rx_disable() */ - amba_clrbitsl(I2S_INIT_REG, 0x2); - /* dai_fifo_rst() */ - if(!amba_tstbitsl(I2S_INIT_REG, 0x6)) - amba_setbitsl(I2S_INIT_REG, 0x1); - } - } - - //if (*rpt & 0x08000000) /* Descriptor DMA operation done */ - // *rpt &= (~0x08000000); } static void dai_rx_dma_handler(void *dev_id, u32 status) { - dai_dma_handler(dev_id); + dai_dma_handler(dev_id, status); } static void dai_tx_dma_handler(void *dev_id, u32 status) { - dai_dma_handler(dev_id); + dai_dma_handler(dev_id, status); } /* this may get called several times by oss emulation */ @@ -282,6 +269,10 @@ /* Ensure dma is stopped */ ambarella_dai_dma_stop(prtd); + /* Reset ring buffer. ALSA will reset internal `hw_ptr` after + * `snd_pcm_prepare()`. If we don't reset the pointer here we will + * trigger a XRUN at start due to large `hw_ptr` delta.*/ + prtd->last_descr = 0; return 0; }
diff --git a/sound/soc/codecs/wm8974_amb.c b/sound/soc/codecs/wm8974_amb.c index 046bfa0..b3d0541 100755 --- a/sound/soc/codecs/wm8974_amb.c +++ b/sound/soc/codecs/wm8974_amb.c
@@ -222,8 +222,8 @@ SOC_SINGLE("Mono Playback Switch", WM8974_MONOMIX, 6, 1, 1), /* DAC / ADC oversampling */ -SOC_SINGLE("DAC 128x Oversampling Switch", WM8974_DAC, 8, 1, 0), -SOC_SINGLE("ADC 128x Oversampling Switch", WM8974_ADC, 8, 1, 0), +SOC_SINGLE("DAC 128x Oversampling Switch", WM8974_DAC, 3, 1, 0), +SOC_SINGLE("ADC 128x Oversampling Switch", WM8974_ADC, 3, 1, 0), }; /* Speaker Output Mixer */
diff --git a/tools/perf/.gitignore b/tools/perf/.gitignore new file mode 100644 index 0000000..cb43289 --- /dev/null +++ b/tools/perf/.gitignore
@@ -0,0 +1,22 @@ +PERF-BUILD-OPTIONS +PERF-CFLAGS +PERF-GUI-VARS +PERF-VERSION-FILE +perf +perf-help +perf-record +perf-report +perf-stat +perf-top +perf*.1 +perf*.xml +perf*.html +common-cmds.h +perf.data +perf.data.old +perf-archive +tags +TAGS +cscope* +config.mak +config.mak.autogen
diff --git a/usr/.gitignore b/usr/.gitignore new file mode 100644 index 0000000..8e48117 --- /dev/null +++ b/usr/.gitignore
@@ -0,0 +1,10 @@ +# +# Generated files +# +gen_init_cpio +initramfs_data.cpio +initramfs_data.cpio.gz +initramfs_data.cpio.bz2 +initramfs_data.cpio.lzma +initramfs_list +include