diff options
author | Luke Shumaker <LukeShu@sbcglobal.net> | 2012-05-06 21:39:39 -0400 |
---|---|---|
committer | Luke Shumaker <LukeShu@sbcglobal.net> | 2012-05-06 21:39:39 -0400 |
commit | 38dbfc58450f5064f8534435ccc7b4c005bbfa68 (patch) | |
tree | 829e9c277a024cf520db2b7bfaf7d5cb4fe5ba45 /kernels/linux-libre-aufs_friendly | |
parent | e1f7b97ab1603aea664ee3f392f6263fd7812b3c (diff) | |
parent | d48da3adb2e5eaab66403aa3f0fce2d78f3ecd12 (diff) | |
download | abslibre-38dbfc58450f5064f8534435ccc7b4c005bbfa68.tar.gz abslibre-38dbfc58450f5064f8534435ccc7b4c005bbfa68.tar.bz2 abslibre-38dbfc58450f5064f8534435ccc7b4c005bbfa68.zip |
Merge branch 'master' of ssh://parabolagnulinux.org:1863/srv/git/abslibre
Diffstat (limited to 'kernels/linux-libre-aufs_friendly')
15 files changed, 604 insertions, 2862 deletions
diff --git a/kernels/linux-libre-aufs_friendly/CVE-2012-0056.patch b/kernels/linux-libre-aufs_friendly/CVE-2012-0056.patch deleted file mode 100644 index 6a83fef1c..000000000 --- a/kernels/linux-libre-aufs_friendly/CVE-2012-0056.patch +++ /dev/null @@ -1,268 +0,0 @@ -From e268337dfe26dfc7efd422a804dbb27977a3cccc Mon Sep 17 00:00:00 2001 -From: Linus Torvalds <torvalds@linux-foundation.org> -Date: Tue, 17 Jan 2012 15:21:19 -0800 -Subject: [PATCH] proc: clean up and fix /proc/<pid>/mem handling -MIME-Version: 1.0 -Content-Type: text/plain; charset=utf8 -Content-Transfer-Encoding: 8bit - -Jüri Aedla reported that the /proc/<pid>/mem handling really isn't very -robust, and it also doesn't match the permission checking of any of the -other related files. - -This changes it to do the permission checks at open time, and instead of -tracking the process, it tracks the VM at the time of the open. That -simplifies the code a lot, but does mean that if you hold the file -descriptor open over an execve(), you'll continue to read from the _old_ -VM. - -That is different from our previous behavior, but much simpler. If -somebody actually finds a load where this matters, we'll need to revert -this commit. - -I suspect that nobody will ever notice - because the process mapping -addresses will also have changed as part of the execve. So you cannot -actually usefully access the fd across a VM change simply because all -the offsets for IO would have changed too. - -Reported-by: Jüri Aedla <asd@ut.ee> -Cc: Al Viro <viro@zeniv.linux.org.uk> -Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> ---- - fs/proc/base.c | 145 +++++++++++++++----------------------------------------- - 1 files changed, 39 insertions(+), 106 deletions(-) - -diff --git a/fs/proc/base.c b/fs/proc/base.c -index 5485a53..662ddf2 100644 ---- a/fs/proc/base.c -+++ b/fs/proc/base.c -@@ -198,65 +198,7 @@ static int proc_root_link(struct dentry *dentry, struct path *path) - return result; - } - --static struct mm_struct *__check_mem_permission(struct task_struct *task) --{ -- struct mm_struct *mm; -- -- mm = get_task_mm(task); -- if (!mm) -- return ERR_PTR(-EINVAL); -- -- /* -- * A task can always look at itself, in case it chooses -- * to use system calls instead of load instructions. -- */ -- if (task == current) -- return mm; -- -- /* -- * If current is actively ptrace'ing, and would also be -- * permitted to freshly attach with ptrace now, permit it. -- */ -- if (task_is_stopped_or_traced(task)) { -- int match; -- rcu_read_lock(); -- match = (ptrace_parent(task) == current); -- rcu_read_unlock(); -- if (match && ptrace_may_access(task, PTRACE_MODE_ATTACH)) -- return mm; -- } -- -- /* -- * No one else is allowed. -- */ -- mmput(mm); -- return ERR_PTR(-EPERM); --} -- --/* -- * If current may access user memory in @task return a reference to the -- * corresponding mm, otherwise ERR_PTR. -- */ --static struct mm_struct *check_mem_permission(struct task_struct *task) --{ -- struct mm_struct *mm; -- int err; -- -- /* -- * Avoid racing if task exec's as we might get a new mm but validate -- * against old credentials. -- */ -- err = mutex_lock_killable(&task->signal->cred_guard_mutex); -- if (err) -- return ERR_PTR(err); -- -- mm = __check_mem_permission(task); -- mutex_unlock(&task->signal->cred_guard_mutex); -- -- return mm; --} -- --struct mm_struct *mm_for_maps(struct task_struct *task) -+static struct mm_struct *mm_access(struct task_struct *task, unsigned int mode) - { - struct mm_struct *mm; - int err; -@@ -267,7 +209,7 @@ struct mm_struct *mm_for_maps(struct task_struct *task) - - mm = get_task_mm(task); - if (mm && mm != current->mm && -- !ptrace_may_access(task, PTRACE_MODE_READ)) { -+ !ptrace_may_access(task, mode)) { - mmput(mm); - mm = ERR_PTR(-EACCES); - } -@@ -276,6 +218,11 @@ struct mm_struct *mm_for_maps(struct task_struct *task) - return mm; - } - -+struct mm_struct *mm_for_maps(struct task_struct *task) -+{ -+ return mm_access(task, PTRACE_MODE_READ); -+} -+ - static int proc_pid_cmdline(struct task_struct *task, char * buffer) - { - int res = 0; -@@ -752,38 +699,39 @@ static const struct file_operations proc_single_file_operations = { - - static int mem_open(struct inode* inode, struct file* file) - { -- file->private_data = (void*)((long)current->self_exec_id); -+ struct task_struct *task = get_proc_task(file->f_path.dentry->d_inode); -+ struct mm_struct *mm; -+ -+ if (!task) -+ return -ESRCH; -+ -+ mm = mm_access(task, PTRACE_MODE_ATTACH); -+ put_task_struct(task); -+ -+ if (IS_ERR(mm)) -+ return PTR_ERR(mm); -+ - /* OK to pass negative loff_t, we can catch out-of-range */ - file->f_mode |= FMODE_UNSIGNED_OFFSET; -+ file->private_data = mm; -+ - return 0; - } - - static ssize_t mem_read(struct file * file, char __user * buf, - size_t count, loff_t *ppos) - { -- struct task_struct *task = get_proc_task(file->f_path.dentry->d_inode); -+ int ret; - char *page; - unsigned long src = *ppos; -- int ret = -ESRCH; -- struct mm_struct *mm; -+ struct mm_struct *mm = file->private_data; - -- if (!task) -- goto out_no_task; -+ if (!mm) -+ return 0; - -- ret = -ENOMEM; - page = (char *)__get_free_page(GFP_TEMPORARY); - if (!page) -- goto out; -- -- mm = check_mem_permission(task); -- ret = PTR_ERR(mm); -- if (IS_ERR(mm)) -- goto out_free; -- -- ret = -EIO; -- -- if (file->private_data != (void*)((long)current->self_exec_id)) -- goto out_put; -+ return -ENOMEM; - - ret = 0; - -@@ -810,13 +758,7 @@ static ssize_t mem_read(struct file * file, char __user * buf, - } - *ppos = src; - --out_put: -- mmput(mm); --out_free: - free_page((unsigned long) page); --out: -- put_task_struct(task); --out_no_task: - return ret; - } - -@@ -825,27 +767,15 @@ static ssize_t mem_write(struct file * file, const char __user *buf, - { - int copied; - char *page; -- struct task_struct *task = get_proc_task(file->f_path.dentry->d_inode); - unsigned long dst = *ppos; -- struct mm_struct *mm; -+ struct mm_struct *mm = file->private_data; - -- copied = -ESRCH; -- if (!task) -- goto out_no_task; -+ if (!mm) -+ return 0; - -- copied = -ENOMEM; - page = (char *)__get_free_page(GFP_TEMPORARY); - if (!page) -- goto out_task; -- -- mm = check_mem_permission(task); -- copied = PTR_ERR(mm); -- if (IS_ERR(mm)) -- goto out_free; -- -- copied = -EIO; -- if (file->private_data != (void *)((long)current->self_exec_id)) -- goto out_mm; -+ return -ENOMEM; - - copied = 0; - while (count > 0) { -@@ -869,13 +799,7 @@ static ssize_t mem_write(struct file * file, const char __user *buf, - } - *ppos = dst; - --out_mm: -- mmput(mm); --out_free: - free_page((unsigned long) page); --out_task: -- put_task_struct(task); --out_no_task: - return copied; - } - -@@ -895,11 +819,20 @@ loff_t mem_lseek(struct file *file, loff_t offset, int orig) - return file->f_pos; - } - -+static int mem_release(struct inode *inode, struct file *file) -+{ -+ struct mm_struct *mm = file->private_data; -+ -+ mmput(mm); -+ return 0; -+} -+ - static const struct file_operations proc_mem_operations = { - .llseek = mem_lseek, - .read = mem_read, - .write = mem_write, - .open = mem_open, -+ .release = mem_release, - }; - - static ssize_t environ_read(struct file *file, char __user *buf, --- -1.7.6.5 - diff --git a/kernels/linux-libre-aufs_friendly/PKGBUILD b/kernels/linux-libre-aufs_friendly/PKGBUILD index 41ccc96bb..8c82d07cd 100644 --- a/kernels/linux-libre-aufs_friendly/PKGBUILD +++ b/kernels/linux-libre-aufs_friendly/PKGBUILD @@ -8,29 +8,22 @@ # Maintainer (Parabola): Michał Masłowski <mtjm@mtjm.eu> # Contributor (Parabola): Márcio Silva <coadde@adinet.com.uy> -# In order to just get linux-libre as it used to be, with the exported symbols for AUFS-libre: - -# Uncomment these lines -# pkgname=('linux-libre' 'linux-libre-headers' 'linux-libre-docs') # Build stock -LIBRE kernel -# pkgname=linux-custom # Build kernel with a different name -# pkgbase=linux-libre - -# Comment this line +pkgbase=linux-libre-aufs_friendly pkgname=('linux-libre-aufs_friendly' 'linux-libre-aufs_friendly-headers') # Build stock -LIBRE kernel with AUFS-libre support - +# pkgname=linux-custom # Build kernel with a different name _kernelname=-LIBRE-AUFS_FRIENDLY -_basekernel=3.2 -_sublevel=9 +_basekernel=3.3 +_sublevel=4 pkgver=${_basekernel}.${_sublevel} -_lxopkgver=${_basekernel}.7 # nearly always the same as pkgver -pkgrel=2 +_lxopkgver=${_basekernel}.4 # nearly always the same as pkgver +pkgrel=1 arch=('i686' 'x86_64' 'mips64el') url="http://linux-libre.fsfla.org/" license=('GPL2') makedepends=('xmlto' 'docbook-xsl') options=('!strip') -source=("http://linux-libre.fsfla.org/pub/linux-libre/releases/${_basekernel}-libre/linux-${_basekernel}-libre.tar.xz" - "http://linux-libre.fsfla.org/pub/linux-libre/releases/${pkgver}-libre/patch-${_basekernel}-libre-${pkgver}-libre.xz" +source=("http://linux-libre.fsfla.org/pub/linux-libre/releases/${_basekernel}-gnu/linux-libre-${_basekernel}-gnu.tar.xz" + "http://linux-libre.fsfla.org/pub/linux-libre/releases/${pkgver}-gnu/patch-${_basekernel}-gnu-${pkgver}-gnu.xz" # the main kernel config files 'config.i686' 'config.x86_64' # patches exporting symbols for the aufs module (reason for this package) @@ -42,24 +35,22 @@ source=("http://linux-libre.fsfla.org/pub/linux-libre/releases/${_basekernel}-li 'boot-logo.patch' 'change-default-console-loglevel.patch' 'i915-fix-ghost-tv-output.patch' - 'i915-gpu-finish.patch' 'ext4-options.patch' - "http://www.linux-libre.fsfla.org/pub/linux-libre/lemote/gnewsense/pool/linux-patches-${_lxopkgver}-libre-lemote_0lxo_mipsel.tar.bz2") -md5sums=('27c641c4f6785fc647cdd3e44963a55c' - '8e601878ccdd37111cc84500ebd81387' - '1e5dd328dbf4e68072a22c05c18813c7' - '6f9df3879268e0f07f535db2b6197475' - '44a5461daf301a46adf20c475069aaa7' - '9c1d9e47a0991b9d3d1f1ede01171c04' + "http://www.linux-libre.fsfla.org/pub/linux-libre/lemote/gnewsense/pool/linux-patches-${_lxopkgver}-gnu_0loongsonlibre_mipsel.tar.bz2") +md5sums=('5487da14ca81715a469c7594d39722fa' + 'ce7d959667b9f158b1fb814b5806950a' + '9824d09d2a659db17a6468e27ccc29ad' + '2ffd4a4dbd5dbc16c378befd6917b7f5' + '753713a00d3150ee1e03f33d97326100' + 'f78455bd6fabaae14bc98d83baf8bfa9' '318ce8b3b64e4923a840817b91035753' '2967cecc3af9f954ccc822fd63dca6ff' '8267264d9a8966e57fdacd1fa1fc65c4' '04b21c79df0a952c22d681dd4f4562df' '9d3c56a4b999c8bfbd4018089a62f662' '263725f20c0b9eb9c353040792d644e5' - '4cd79aa147825837dc8bc9f6b736c0a0' - 'f36222e7ce20c8e4dc27376f9be60f6c' - '690e6201d219638544d2fba3996dc822') + 'bb7fd1aa23016c8057046b84fd4eb528' + 'c22b03a6351698b07cd08767d8ddeacd') if [ "$CARCH" != "mips64el" ]; then # Don't use the Loongson-specific patches on non-mips64el arches. unset source[${#source[@]}-1] @@ -70,16 +61,12 @@ build() { cd "${srcdir}/linux-${_basekernel}" if [ "${_basekernel}" != "${pkgver}" ]; then - patch -Np1 -i "${srcdir}/patch-${_basekernel}-libre-${pkgver}-libre" + patch -Np1 -i "${srcdir}/patch-${_basekernel}-gnu-${pkgver}-gnu" fi # Add freedo as boot logo patch -Np1 -i "${srcdir}/boot-logo.patch" - # fix FS#27883 - # drm/i915: Only clear the GPU domains upon a successful finish - patch -Np1 -i "${srcdir}/i915-gpu-finish.patch" - # Some chips detect a ghost TV output # mailing list discussion: http://lists.freedesktop.org/archives/intel-gfx/2011-April/010371.html # Arch Linux bug report: FS#19234 @@ -89,19 +76,20 @@ build() { # needed. patch -Np1 -i "${srcdir}/i915-fix-ghost-tv-output.patch" + # Patch submitted upstream, waiting for inclusion: # set DEFAULT_CONSOLE_LOGLEVEL to 4 (same value as the 'quiet' kernel param) # remove this when a Kconfig knob is made available by upstream # (relevant patch sent upstream: https://lkml.org/lkml/2011/7/26/227) patch -Np1 -i "${srcdir}/change-default-console-loglevel.patch" - msg 'AUFS3-libre patches' - patch -p1 -i "${srcdir}/aufs3-libre-base.patch" - patch -p1 -i "${srcdir}/aufs3-libre-standalone.patch" - # fix ext4 module to mount ext3/2 correct # https://bugs.archlinux.org/task/28653 patch -Np1 -i "${srcdir}/ext4-options.patch" + msg 'AUFS3-libre patches' + patch -p1 -i "${srcdir}/aufs3-libre-base.patch" + patch -p1 -i "${srcdir}/aufs3-libre-standalone.patch" + if [ "$CARCH" == "mips64el" ]; then sed -i "s|^EXTRAVERSION.*|EXTRAVERSION =-libre|" Makefile sed -r "s|^( SUBLEVEL = ).*|\1$_sublevel|" \ @@ -117,7 +105,7 @@ build() { sed -ri -e "s|CONFIG_MIPS32_N32=.*|CONFIG_MIPS32_N32=y|g" \ -e "s|CONFIG_MIPS32_N32=.*|CONFIG_MIPS32_N32=y|g" \ -e "s|CONFIG_UEVENT_HELPER_PATH=.*|CONFIG_UEVENT_HELPER_PATH=\"\"|g" \ - -e "s|CONFIG_LOCALVERSION=.*|CONFIG_LOCALVERSION=\"-LIBRE\"|g" \ + -e "s|CONFIG_LOCALVERSION=.*|CONFIG_LOCALVERSION=\"${_kernelname}\"|g" \ -e "s;(CONFIG_USB(_COMMON|_EHCI_HCD|_OHCI_HCD|_STORAGE.*|_UAS)?)=.*;\1=y;g" \ ./.config else @@ -261,7 +249,7 @@ package_linux-libre-aufs_friendly-headers() { mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/include" for i in acpi asm-generic config crypto drm generated linux math-emu \ - media net pcmcia scsi sound trace video xen; do + media mtd net pcmcia scsi sound trace video xen; do cp -a include/${i} "${pkgdir}/usr/src/linux-${_kernver}/include/" done diff --git a/kernels/linux-libre-aufs_friendly/aufs3-libre-base.patch b/kernels/linux-libre-aufs_friendly/aufs3-libre-base.patch index ac30c8db9..99a63d024 100644 --- a/kernels/linux-libre-aufs_friendly/aufs3-libre-base.patch +++ b/kernels/linux-libre-aufs_friendly/aufs3-libre-base.patch @@ -1,10 +1,10 @@ -aufs3.2 base patch +aufs3.3 base patch diff --git a/fs/namei.c b/fs/namei.c -index 5008f01..4cc94cf 100644 +index 46ea9cc..f2dcf8d 100644 --- a/fs/namei.c +++ b/fs/namei.c -@@ -1753,7 +1753,7 @@ static struct dentry *__lookup_hash(struct qstr *name, +@@ -1781,7 +1781,7 @@ static struct dentry *__lookup_hash(struct qstr *name, * needs parent already locked. Doesn't follow mounts. * SMP-safe. */ @@ -14,10 +14,10 @@ index 5008f01..4cc94cf 100644 return __lookup_hash(&nd->last, nd->path.dentry, nd); } diff --git a/fs/splice.c b/fs/splice.c -index fa2defa..e3569b0 100644 +index 1ec0493..c599f73 100644 --- a/fs/splice.c +++ b/fs/splice.c -@@ -1085,8 +1085,8 @@ EXPORT_SYMBOL(generic_splice_sendpage); +@@ -1084,8 +1084,8 @@ EXPORT_SYMBOL(generic_splice_sendpage); /* * Attempt to initiate a splice from pipe to file. */ @@ -28,7 +28,7 @@ index fa2defa..e3569b0 100644 { ssize_t (*splice_write)(struct pipe_inode_info *, struct file *, loff_t *, size_t, unsigned int); -@@ -1113,9 +1113,9 @@ static long do_splice_from(struct pipe_inode_info *pipe, struct file *out, +@@ -1112,9 +1112,9 @@ static long do_splice_from(struct pipe_inode_info *pipe, struct file *out, /* * Attempt to initiate a splice from a file to a pipe. */ diff --git a/kernels/linux-libre-aufs_friendly/aufs3-libre-standalone.patch b/kernels/linux-libre-aufs_friendly/aufs3-libre-standalone.patch index ae897f388..584d592ef 100644 --- a/kernels/linux-libre-aufs_friendly/aufs3-libre-standalone.patch +++ b/kernels/linux-libre-aufs_friendly/aufs3-libre-standalone.patch @@ -1,7 +1,7 @@ -aufs3.2 standalone patch +aufs3.3 standalone patch diff --git a/fs/file_table.c b/fs/file_table.c -index c322794..2aad244 100644 +index 20002e3..6d792ad 100644 --- a/fs/file_table.c +++ b/fs/file_table.c @@ -443,6 +443,8 @@ void file_sb_list_del(struct file *file) @@ -14,10 +14,10 @@ index c322794..2aad244 100644 /* diff --git a/fs/inode.c b/fs/inode.c -index ee4e66b..728042b 100644 +index 83ab215..45242cd 100644 --- a/fs/inode.c +++ b/fs/inode.c -@@ -65,6 +65,7 @@ static struct hlist_head *inode_hashtable __read_mostly; +@@ -66,6 +66,7 @@ static struct hlist_head *inode_hashtable __read_mostly; static __cacheline_aligned_in_smp DEFINE_SPINLOCK(inode_hash_lock); __cacheline_aligned_in_smp DEFINE_SPINLOCK(inode_sb_list_lock); @@ -26,10 +26,10 @@ index ee4e66b..728042b 100644 /* * Empty aops. Can be used for the cases where the user does not diff --git a/fs/namei.c b/fs/namei.c -index 4cc94cf..af19e30 100644 +index f2dcf8d..bcccefd 100644 --- a/fs/namei.c +++ b/fs/namei.c -@@ -1757,6 +1757,7 @@ struct dentry *lookup_hash(struct nameidata *nd) +@@ -1785,6 +1785,7 @@ struct dentry *lookup_hash(struct nameidata *nd) { return __lookup_hash(&nd->last, nd->path.dentry, nd); } @@ -38,16 +38,16 @@ index 4cc94cf..af19e30 100644 /** * lookup_one_len - filesystem helper to lookup single pathname component diff --git a/fs/namespace.c b/fs/namespace.c -index cfc6d44..173d15a 100644 +index e608199..38fcc2e 100644 --- a/fs/namespace.c +++ b/fs/namespace.c -@@ -1506,6 +1506,7 @@ int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg, +@@ -1339,6 +1339,7 @@ int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg, } return 0; } +EXPORT_SYMBOL(iterate_mounts); - static void cleanup_group_ids(struct vfsmount *mnt, struct vfsmount *end) + static void cleanup_group_ids(struct mount *mnt, struct mount *end) { diff --git a/fs/notify/group.c b/fs/notify/group.c index 63fc294..6f4adca 100644 @@ -75,7 +75,7 @@ index 63fc294..6f4adca 100644 } +EXPORT_SYMBOL(fsnotify_alloc_group); diff --git a/fs/notify/mark.c b/fs/notify/mark.c -index e14587d..be6533b 100644 +index f104d56..54f36db 100644 --- a/fs/notify/mark.c +++ b/fs/notify/mark.c @@ -112,6 +112,7 @@ void fsnotify_put_mark(struct fsnotify_mark *mark) @@ -86,7 +86,7 @@ index e14587d..be6533b 100644 /* * Any time a mark is getting freed we end up here. -@@ -189,6 +190,7 @@ void fsnotify_destroy_mark(struct fsnotify_mark *mark) +@@ -191,6 +192,7 @@ void fsnotify_destroy_mark(struct fsnotify_mark *mark) if (unlikely(atomic_dec_and_test(&group->num_marks))) fsnotify_final_destroy_group(group); } @@ -94,7 +94,7 @@ index e14587d..be6533b 100644 void fsnotify_set_mark_mask_locked(struct fsnotify_mark *mark, __u32 mask) { -@@ -276,6 +278,7 @@ err: +@@ -278,6 +280,7 @@ err: return ret; } @@ -102,7 +102,7 @@ index e14587d..be6533b 100644 /* * clear any marks in a group in which mark->flags & flags is true -@@ -331,6 +334,7 @@ void fsnotify_init_mark(struct fsnotify_mark *mark, +@@ -333,6 +336,7 @@ void fsnotify_init_mark(struct fsnotify_mark *mark, atomic_set(&mark->refcnt, 1); mark->free_mark = free_mark; } @@ -111,7 +111,7 @@ index e14587d..be6533b 100644 static int fsnotify_mark_destroy(void *ignored) { diff --git a/fs/open.c b/fs/open.c -index 22c41b5..33b4033 100644 +index 77becc0..f634f02 100644 --- a/fs/open.c +++ b/fs/open.c @@ -60,6 +60,7 @@ int do_truncate(struct dentry *dentry, loff_t length, unsigned int time_attrs, @@ -123,10 +123,10 @@ index 22c41b5..33b4033 100644 static long do_sys_truncate(const char __user *pathname, loff_t length) { diff --git a/fs/splice.c b/fs/splice.c -index e3569b0..9dc07b7 100644 +index c599f73..00303ba 100644 --- a/fs/splice.c +++ b/fs/splice.c -@@ -1109,6 +1109,7 @@ long do_splice_from(struct pipe_inode_info *pipe, struct file *out, +@@ -1108,6 +1108,7 @@ long do_splice_from(struct pipe_inode_info *pipe, struct file *out, return splice_write(pipe, out, ppos, len, flags); } @@ -134,7 +134,7 @@ index e3569b0..9dc07b7 100644 /* * Attempt to initiate a splice from a file to a pipe. -@@ -1135,6 +1136,7 @@ long do_splice_to(struct file *in, loff_t *ppos, +@@ -1134,6 +1135,7 @@ long do_splice_to(struct file *in, loff_t *ppos, return splice_read(in, ppos, pipe, len, flags); } @@ -143,16 +143,16 @@ index e3569b0..9dc07b7 100644 /** * splice_direct_to_actor - splices data directly between two non-pipes diff --git a/security/commoncap.c b/security/commoncap.c -index ee4f848..611fd70 100644 +index 7ce191e..19a95be 100644 --- a/security/commoncap.c +++ b/security/commoncap.c -@@ -975,3 +975,4 @@ int cap_file_mmap(struct file *file, unsigned long reqprot, +@@ -965,3 +965,4 @@ int cap_file_mmap(struct file *file, unsigned long reqprot, } return ret; } +EXPORT_SYMBOL(cap_file_mmap); diff --git a/security/device_cgroup.c b/security/device_cgroup.c -index 4450fbe..bc94175 100644 +index 8b5b5d8..911850c 100644 --- a/security/device_cgroup.c +++ b/security/device_cgroup.c @@ -7,6 +7,7 @@ @@ -163,7 +163,7 @@ index 4450fbe..bc94175 100644 #include <linux/list.h> #include <linux/uaccess.h> #include <linux/seq_file.h> -@@ -500,6 +501,7 @@ found: +@@ -501,6 +502,7 @@ found: return -EPERM; } @@ -172,10 +172,10 @@ index 4450fbe..bc94175 100644 int devcgroup_inode_mknod(int mode, dev_t dev) { diff --git a/security/security.c b/security/security.c -index e2f684a..892000c 100644 +index d754249..1aa6154 100644 --- a/security/security.c +++ b/security/security.c -@@ -411,6 +411,7 @@ int security_path_rmdir(struct path *dir, struct dentry *dentry) +@@ -392,6 +392,7 @@ int security_path_rmdir(struct path *dir, struct dentry *dentry) return 0; return security_ops->path_rmdir(dir, dentry); } @@ -183,7 +183,7 @@ index e2f684a..892000c 100644 int security_path_unlink(struct path *dir, struct dentry *dentry) { -@@ -427,6 +428,7 @@ int security_path_symlink(struct path *dir, struct dentry *dentry, +@@ -408,6 +409,7 @@ int security_path_symlink(struct path *dir, struct dentry *dentry, return 0; return security_ops->path_symlink(dir, dentry, old_name); } @@ -191,7 +191,7 @@ index e2f684a..892000c 100644 int security_path_link(struct dentry *old_dentry, struct path *new_dir, struct dentry *new_dentry) -@@ -435,6 +437,7 @@ int security_path_link(struct dentry *old_dentry, struct path *new_dir, +@@ -416,6 +418,7 @@ int security_path_link(struct dentry *old_dentry, struct path *new_dir, return 0; return security_ops->path_link(old_dentry, new_dir, new_dentry); } @@ -199,23 +199,23 @@ index e2f684a..892000c 100644 int security_path_rename(struct path *old_dir, struct dentry *old_dentry, struct path *new_dir, struct dentry *new_dentry) -@@ -453,6 +456,7 @@ int security_path_truncate(struct path *path) +@@ -434,6 +437,7 @@ int security_path_truncate(struct path *path) return 0; return security_ops->path_truncate(path); } +EXPORT_SYMBOL(security_path_truncate); - int security_path_chmod(struct dentry *dentry, struct vfsmount *mnt, - mode_t mode) -@@ -461,6 +465,7 @@ int security_path_chmod(struct dentry *dentry, struct vfsmount *mnt, + int security_path_chmod(struct path *path, umode_t mode) + { +@@ -441,6 +445,7 @@ int security_path_chmod(struct path *path, umode_t mode) return 0; - return security_ops->path_chmod(dentry, mnt, mode); + return security_ops->path_chmod(path, mode); } +EXPORT_SYMBOL(security_path_chmod); int security_path_chown(struct path *path, uid_t uid, gid_t gid) { -@@ -468,6 +473,7 @@ int security_path_chown(struct path *path, uid_t uid, gid_t gid) +@@ -448,6 +453,7 @@ int security_path_chown(struct path *path, uid_t uid, gid_t gid) return 0; return security_ops->path_chown(path, uid, gid); } @@ -223,7 +223,7 @@ index e2f684a..892000c 100644 int security_path_chroot(struct path *path) { -@@ -544,6 +550,7 @@ int security_inode_readlink(struct dentry *dentry) +@@ -524,6 +530,7 @@ int security_inode_readlink(struct dentry *dentry) return 0; return security_ops->inode_readlink(dentry); } @@ -231,7 +231,7 @@ index e2f684a..892000c 100644 int security_inode_follow_link(struct dentry *dentry, struct nameidata *nd) { -@@ -558,6 +565,7 @@ int security_inode_permission(struct inode *inode, int mask) +@@ -538,6 +545,7 @@ int security_inode_permission(struct inode *inode, int mask) return 0; return security_ops->inode_permission(inode, mask); } @@ -239,7 +239,7 @@ index e2f684a..892000c 100644 int security_inode_setattr(struct dentry *dentry, struct iattr *attr) { -@@ -673,6 +681,7 @@ int security_file_permission(struct file *file, int mask) +@@ -653,6 +661,7 @@ int security_file_permission(struct file *file, int mask) return fsnotify_perm(file, mask); } @@ -247,7 +247,7 @@ index e2f684a..892000c 100644 int security_file_alloc(struct file *file) { -@@ -700,6 +709,7 @@ int security_file_mmap(struct file *file, unsigned long reqprot, +@@ -680,6 +689,7 @@ int security_file_mmap(struct file *file, unsigned long reqprot, return ret; return ima_file_mmap(file, prot); } diff --git a/kernels/linux-libre-aufs_friendly/config.i686 b/kernels/linux-libre-aufs_friendly/config.i686 index 220956bb0..7ef304fb7 100644 --- a/kernels/linux-libre-aufs_friendly/config.i686 +++ b/kernels/linux-libre-aufs_friendly/config.i686 @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/i386 3.2.6-1 Kernel Configuration +# Linux/i386 3.3.3-1 Kernel Configuration # # CONFIG_64BIT is not set CONFIG_X86_32=y @@ -17,11 +17,9 @@ CONFIG_LOCKDEP_SUPPORT=y CONFIG_STACKTRACE_SUPPORT=y CONFIG_HAVE_LATENCYTOP_SUPPORT=y CONFIG_MMU=y -CONFIG_ZONE_DMA=y CONFIG_NEED_DMA_MAP_STATE=y CONFIG_NEED_SG_DMA_LENGTH=y CONFIG_GENERIC_ISA_DMA=y -CONFIG_GENERIC_IOMAP=y CONFIG_GENERIC_BUG=y CONFIG_GENERIC_HWEIGHT=y CONFIG_GENERIC_GPIO=y @@ -40,7 +38,6 @@ CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y CONFIG_ARCH_HIBERNATION_POSSIBLE=y CONFIG_ARCH_SUSPEND_POSSIBLE=y # CONFIG_ZONE_DMA32 is not set -CONFIG_ARCH_POPULATES_NODE_MAP=y # CONFIG_AUDIT_ARCH is not set CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y @@ -89,6 +86,7 @@ CONFIG_AUDIT=y CONFIG_AUDITSYSCALL=y CONFIG_AUDIT_WATCH=y CONFIG_AUDIT_TREE=y +# CONFIG_AUDIT_LOGINUID_IMMUTABLE is not set CONFIG_HAVE_GENERIC_HARDIRQS=y # @@ -99,7 +97,6 @@ CONFIG_HAVE_SPARSE_IRQ=y CONFIG_GENERIC_IRQ_PROBE=y CONFIG_GENERIC_IRQ_SHOW=y CONFIG_GENERIC_PENDING_IRQ=y -CONFIG_GENERIC_IRQ_CHIP=y CONFIG_IRQ_FORCED_THREADING=y CONFIG_SPARSE_IRQ=y @@ -111,6 +108,7 @@ CONFIG_PREEMPT_RCU=y # CONFIG_RCU_TRACE is not set CONFIG_RCU_FANOUT=32 # CONFIG_RCU_FANOUT_EXACT is not set +CONFIG_RCU_FAST_NO_HZ=y # CONFIG_TREE_RCU_TRACE is not set # CONFIG_RCU_BOOST is not set CONFIG_IKCONFIG=y @@ -128,6 +126,7 @@ CONFIG_RESOURCE_COUNTERS=y CONFIG_CGROUP_MEM_RES_CTLR=y CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y # CONFIG_CGROUP_MEM_RES_CTLR_SWAP_ENABLED is not set +CONFIG_CGROUP_MEM_RES_CTLR_KMEM=y # CONFIG_CGROUP_PERF is not set CONFIG_CGROUP_SCHED=y CONFIG_FAIR_GROUP_SCHED=y @@ -135,6 +134,7 @@ CONFIG_CFS_BANDWIDTH=y CONFIG_RT_GROUP_SCHED=y CONFIG_BLK_CGROUP=y # CONFIG_DEBUG_BLK_CGROUP is not set +# CONFIG_CHECKPOINT_RESTORE is not set CONFIG_NAMESPACES=y CONFIG_UTS_NS=y CONFIG_IPC_NS=y @@ -194,6 +194,7 @@ CONFIG_TRACEPOINTS=y CONFIG_OPROFILE=m # CONFIG_OPROFILE_EVENT_MULTIPLEX is not set CONFIG_HAVE_OPROFILE=y +CONFIG_OPROFILE_NMI_TIMER=y # CONFIG_KPROBES is not set CONFIG_JUMP_LABEL=y CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y @@ -213,6 +214,9 @@ CONFIG_HAVE_USER_RETURN_NOTIFIER=y CONFIG_HAVE_PERF_EVENTS_NMI=y CONFIG_HAVE_ARCH_JUMP_LABEL=y CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y +CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y +CONFIG_HAVE_CMPXCHG_LOCAL=y +CONFIG_HAVE_CMPXCHG_DOUBLE=y # # GCOV-based kernel profiling @@ -237,6 +241,29 @@ CONFIG_BLK_DEV_BSGLIB=y CONFIG_BLK_DEV_THROTTLING=y # +# Partition Types +# +CONFIG_PARTITION_ADVANCED=y +# CONFIG_ACORN_PARTITION is not set +# CONFIG_OSF_PARTITION is not set +# CONFIG_AMIGA_PARTITION is not set +# CONFIG_ATARI_PARTITION is not set +CONFIG_MAC_PARTITION=y +CONFIG_MSDOS_PARTITION=y +CONFIG_BSD_DISKLABEL=y +CONFIG_MINIX_SUBPARTITION=y +CONFIG_SOLARIS_X86_PARTITION=y +# CONFIG_UNIXWARE_DISKLABEL is not set +CONFIG_LDM_PARTITION=y +# CONFIG_LDM_DEBUG is not set +# CONFIG_SGI_PARTITION is not set +# CONFIG_ULTRIX_PARTITION is not set +# CONFIG_SUN_PARTITION is not set +CONFIG_KARMA_PARTITION=y +CONFIG_EFI_PARTITION=y +# CONFIG_SYSV68_PARTITION is not set + +# # IO Schedulers # CONFIG_IOSCHED_NOOP=y @@ -283,6 +310,7 @@ CONFIG_FREEZER=y # # Processor type and features # +CONFIG_ZONE_DMA=y CONFIG_TICK_ONESHOT=y CONFIG_NO_HZ=y CONFIG_HIGH_RES_TIMERS=y @@ -335,8 +363,6 @@ CONFIG_M686=y CONFIG_X86_GENERIC=y CONFIG_X86_INTERNODE_CACHE_SHIFT=6 CONFIG_X86_CMPXCHG=y -CONFIG_CMPXCHG_LOCAL=y -CONFIG_CMPXCHG_DOUBLE=y CONFIG_X86_L1_CACHE_SHIFT=6 CONFIG_X86_XADD=y # CONFIG_X86_PPRO_FENCE is not set @@ -407,6 +433,8 @@ CONFIG_FLATMEM=y CONFIG_FLAT_NODE_MEM_MAP=y CONFIG_SPARSEMEM_STATIC=y CONFIG_HAVE_MEMBLOCK=y +CONFIG_HAVE_MEMBLOCK_NODE_MAP=y +CONFIG_ARCH_DISCARD_MEMBLOCK=y CONFIG_PAGEFLAGS_EXTENDED=y CONFIG_SPLIT_PTLOCK_CPUS=4 CONFIG_COMPACTION=y @@ -422,8 +450,8 @@ CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y CONFIG_MEMORY_FAILURE=y CONFIG_HWPOISON_INJECT=m CONFIG_TRANSPARENT_HUGEPAGE=y -# CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS is not set -CONFIG_TRANSPARENT_HUGEPAGE_MADVISE=y +CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y +# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set CONFIG_CLEANCACHE=y # CONFIG_HIGHPTE is not set CONFIG_X86_CHECK_BIOS_CORRUPTION=y @@ -438,6 +466,7 @@ CONFIG_X86_PAT=y CONFIG_ARCH_USES_PG_UNCACHED=y CONFIG_ARCH_RANDOM=y CONFIG_EFI=y +CONFIG_EFI_STUB=y CONFIG_SECCOMP=y CONFIG_CC_STACKPROTECTOR=y # CONFIG_HZ_100 is not set @@ -520,17 +549,17 @@ CONFIG_APM_DO_ENABLE=y # CPU Frequency scaling # CONFIG_CPU_FREQ=y -CONFIG_CPU_FREQ_TABLE=m +CONFIG_CPU_FREQ_TABLE=y CONFIG_CPU_FREQ_STAT=m CONFIG_CPU_FREQ_STAT_DETAILS=y -CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set -# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y # CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set CONFIG_CPU_FREQ_GOV_PERFORMANCE=y CONFIG_CPU_FREQ_GOV_POWERSAVE=m CONFIG_CPU_FREQ_GOV_USERSPACE=m -CONFIG_CPU_FREQ_GOV_ONDEMAND=m +CONFIG_CPU_FREQ_GOV_ONDEMAND=y CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m # @@ -606,7 +635,7 @@ CONFIG_OLPC_XO1_PM=y CONFIG_OLPC_XO1_RTC=y CONFIG_OLPC_XO1_SCI=y CONFIG_OLPC_XO15_SCI=y -CONFIG_ALIX=y +# CONFIG_ALIX is not set CONFIG_AMD_NB=y CONFIG_PCCARD=m CONFIG_PCMCIA=m @@ -654,6 +683,7 @@ CONFIG_RAPIDIO_TSI500=y # Executable file formats / Emulations # CONFIG_BINFMT_ELF=y +CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set CONFIG_HAVE_AOUT=y CONFIG_BINFMT_AOUT=m @@ -667,6 +697,7 @@ CONFIG_NET=y # CONFIG_PACKET=y CONFIG_UNIX=y +CONFIG_UNIX_DIAG=m CONFIG_XFRM=y CONFIG_XFRM_USER=m # CONFIG_XFRM_SUB_POLICY is not set @@ -705,6 +736,7 @@ CONFIG_INET_XFRM_MODE_BEET=m CONFIG_INET_LRO=y CONFIG_INET_DIAG=y CONFIG_INET_TCP_DIAG=y +CONFIG_INET_UDP_DIAG=m CONFIG_TCP_CONG_ADVANCED=y CONFIG_TCP_CONG_BIC=m CONFIG_TCP_CONG_CUBIC=y @@ -756,12 +788,15 @@ CONFIG_BRIDGE_NETFILTER=y # Core Netfilter Configuration # CONFIG_NETFILTER_NETLINK=m +CONFIG_NETFILTER_NETLINK_ACCT=m CONFIG_NETFILTER_NETLINK_QUEUE=m CONFIG_NETFILTER_NETLINK_LOG=m CONFIG_NF_CONNTRACK=m CONFIG_NF_CONNTRACK_MARK=y CONFIG_NF_CONNTRACK_SECMARK=y CONFIG_NF_CONNTRACK_ZONES=y +CONFIG_NF_CONNTRACK_PROCFS=y +# CONFIG_NF_CONNTRACK_PROC_COMPAT is not set CONFIG_NF_CONNTRACK_EVENTS=y CONFIG_NF_CONNTRACK_TIMESTAMP=y CONFIG_NF_CT_PROTO_DCCP=m @@ -829,6 +864,7 @@ CONFIG_NETFILTER_XT_MATCH_CPU=m CONFIG_NETFILTER_XT_MATCH_DCCP=m CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m CONFIG_NETFILTER_XT_MATCH_DSCP=m +CONFIG_NETFILTER_XT_MATCH_ECN=m CONFIG_NETFILTER_XT_MATCH_ESP=m CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m CONFIG_NETFILTER_XT_MATCH_HELPER=m @@ -840,6 +876,7 @@ CONFIG_NETFILTER_XT_MATCH_LIMIT=m CONFIG_NETFILTER_XT_MATCH_MAC=m CONFIG_NETFILTER_XT_MATCH_MARK=m CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m +CONFIG_NETFILTER_XT_MATCH_NFACCT=m CONFIG_NETFILTER_XT_MATCH_OSF=m CONFIG_NETFILTER_XT_MATCH_OWNER=m CONFIG_NETFILTER_XT_MATCH_POLICY=m @@ -900,6 +937,11 @@ CONFIG_IP_VS_SED=m CONFIG_IP_VS_NQ=m # +# IPVS SH scheduler +# +CONFIG_IP_VS_SH_TAB_BITS=8 + +# # IPVS application helper # CONFIG_IP_VS_FTP=m @@ -911,11 +953,11 @@ CONFIG_IP_VS_PE_SIP=m # CONFIG_NF_DEFRAG_IPV4=m CONFIG_NF_CONNTRACK_IPV4=m -CONFIG_NF_CONNTRACK_PROC_COMPAT=y CONFIG_IP_NF_QUEUE=m CONFIG_IP_NF_IPTABLES=m CONFIG_IP_NF_MATCH_AH=m CONFIG_IP_NF_MATCH_ECN=m +CONFIG_IP_NF_MATCH_RPFILTER=m CONFIG_IP_NF_MATCH_TTL=m CONFIG_IP_NF_FILTER=m CONFIG_IP_NF_TARGET_REJECT=m @@ -962,6 +1004,7 @@ CONFIG_IP6_NF_MATCH_OPTS=m CONFIG_IP6_NF_MATCH_HL=m CONFIG_IP6_NF_MATCH_IPV6HEADER=m CONFIG_IP6_NF_MATCH_MH=m +CONFIG_IP6_NF_MATCH_RPFILTER=m CONFIG_IP6_NF_MATCH_RT=m CONFIG_IP6_NF_TARGET_HL=m CONFIG_IP6_NF_TARGET_LOG=m @@ -1112,16 +1155,42 @@ CONFIG_NET_SCH_FIFO=y CONFIG_DNS_RESOLVER=y CONFIG_BATMAN_ADV=m # CONFIG_BATMAN_ADV_DEBUG is not set +CONFIG_OPENVSWITCH=m CONFIG_RPS=y CONFIG_RFS_ACCEL=y CONFIG_XPS=y +CONFIG_NETPRIO_CGROUP=m +CONFIG_BQL=y # # Network testing # CONFIG_NET_PKTGEN=m CONFIG_NET_DROP_MONITOR=y -# CONFIG_HAMRADIO is not set +CONFIG_HAMRADIO=y + +# +# Packet Radio protocols +# +CONFIG_AX25=m +CONFIG_AX25_DAMA_SLAVE=y +CONFIG_NETROM=m +CONFIG_ROSE=m + +# +# AX.25 network device drivers +# +CONFIG_MKISS=m +CONFIG_6PACK=m +CONFIG_BPQETHER=m +CONFIG_SCC=m +# CONFIG_SCC_DELAY is not set +# CONFIG_SCC_TRXECHO is not set +CONFIG_BAYCOM_SER_FDX=m +CONFIG_BAYCOM_SER_HDX=m +CONFIG_BAYCOM_PAR=m +CONFIG_BAYCOM_EPP=m +CONFIG_YAM=m # CONFIG_CAN is not set CONFIG_IRDA=m @@ -1181,8 +1250,6 @@ CONFIG_VLSI_FIR=m CONFIG_VIA_FIR=m CONFIG_MCS_FIR=m CONFIG_BT=m -CONFIG_BT_L2CAP=y -CONFIG_BT_SCO=y CONFIG_BT_RFCOMM=m CONFIG_BT_RFCOMM_TTY=y CONFIG_BT_BNEP=m @@ -1252,18 +1319,19 @@ CONFIG_WIMAX_DEBUG_LEVEL=8 CONFIG_RFKILL=m CONFIG_RFKILL_LEDS=y CONFIG_RFKILL_INPUT=y -CONFIG_RFKILL_REGULATOR=m CONFIG_NET_9P=m CONFIG_NET_9P_VIRTIO=m # CONFIG_NET_9P_DEBUG is not set CONFIG_CAIF=m # CONFIG_CAIF_DEBUG is not set CONFIG_CAIF_NETDEV=m +CONFIG_CAIF_USB=m CONFIG_CEPH_LIB=m # CONFIG_CEPH_LIB_PRETTYDEBUG is not set # CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set CONFIG_NFC=m CONFIG_NFC_NCI=m +# CONFIG_NFC_LLCP is not set # # Near Field Communication (NFC) devices @@ -1290,9 +1358,10 @@ CONFIG_EXTRA_FIRMWARE="" # CONFIG_DEBUG_DRIVER is not set # CONFIG_DEBUG_DEVRES is not set # CONFIG_SYS_HYPERVISOR is not set +# CONFIG_GENERIC_CPU_DEVICES is not set CONFIG_REGMAP=y CONFIG_REGMAP_I2C=m -CONFIG_REGMAP_SPI=y +# CONFIG_DMA_SHARED_BUFFER is not set CONFIG_CONNECTOR=y CONFIG_PROC_EVENTS=y CONFIG_MTD=m @@ -1376,9 +1445,6 @@ CONFIG_MTD_PLATRAM=m CONFIG_MTD_PMC551=m # CONFIG_MTD_PMC551_BUGFIX is not set # CONFIG_MTD_PMC551_DEBUG is not set -# CONFIG_MTD_DATAFLASH is not set -# CONFIG_MTD_M25P80 is not set -# CONFIG_MTD_SST25L is not set # CONFIG_MTD_SLRAM is not set CONFIG_MTD_PHRAM=m CONFIG_MTD_MTDRAM=m @@ -1393,6 +1459,8 @@ CONFIG_MTD_BLOCK2MTD=m # CONFIG_MTD_DOC2001 is not set # CONFIG_MTD_DOC2001PLUS is not set CONFIG_MTD_DOCG3=m +CONFIG_BCH_CONST_M=14 +CONFIG_BCH_CONST_T=4 CONFIG_MTD_NAND_ECC=m CONFIG_MTD_NAND_ECC_SMC=y CONFIG_MTD_NAND=m @@ -1430,6 +1498,7 @@ CONFIG_OF=y # Device Tree and Open Firmware support # CONFIG_PROC_DEVICETREE=y +# CONFIG_OF_SELFTEST is not set CONFIG_OF_PROMTREE=y CONFIG_OF_ADDRESS=y CONFIG_OF_IRQ=y @@ -1437,7 +1506,6 @@ CONFIG_OF_DEVICE=y CONFIG_OF_GPIO=y CONFIG_OF_I2C=m CONFIG_OF_NET=y -CONFIG_OF_SPI=y CONFIG_OF_MDIO=m CONFIG_OF_PCI=y CONFIG_OF_PCI_IRQ=y @@ -1464,6 +1532,7 @@ CONFIG_BLK_DEV=y CONFIG_BLK_DEV_FD=m # CONFIG_BLK_DEV_XD is not set # CONFIG_PARIDE is not set +CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m CONFIG_BLK_CPQ_DA=m CONFIG_BLK_CPQ_CISS_DA=m # CONFIG_CISS_SCSI_TAPE is not set @@ -1476,6 +1545,7 @@ CONFIG_BLK_DEV_CRYPTOLOOP=m CONFIG_BLK_DEV_DRBD=m # CONFIG_DRBD_FAULT_INJECTION is not set CONFIG_BLK_DEV_NBD=m +CONFIG_BLK_DEV_NVME=m CONFIG_BLK_DEV_OSD=m CONFIG_BLK_DEV_SX8=m # CONFIG_BLK_DEV_UB is not set @@ -1490,11 +1560,13 @@ CONFIG_ATA_OVER_ETH=m CONFIG_VIRTIO_BLK=m # CONFIG_BLK_DEV_HD is not set CONFIG_BLK_DEV_RBD=m + +# +# Misc devices +# CONFIG_SENSORS_LIS3LV02D=m -CONFIG_MISC_DEVICES=y CONFIG_AD525X_DPOT=m CONFIG_AD525X_DPOT_I2C=m -CONFIG_AD525X_DPOT_SPI=m # CONFIG_IBM_ASM is not set CONFIG_PHANTOM=m CONFIG_INTEL_MID_PTI=m @@ -1516,7 +1588,6 @@ CONFIG_SENSORS_BH1770=m CONFIG_SENSORS_APDS990X=m CONFIG_HMC6352=m CONFIG_DS1682=m -CONFIG_TI_DAC7512=m CONFIG_VMWARE_BALLOON=m CONFIG_BMP085=m # CONFIG_PCH_PHUB is not set @@ -1528,11 +1599,9 @@ CONFIG_C2PORT_DURAMAR_2150=m # EEPROM support # CONFIG_EEPROM_AT24=m -CONFIG_EEPROM_AT25=m CONFIG_EEPROM_LEGACY=m CONFIG_EEPROM_MAX6875=m CONFIG_EEPROM_93CX6=m -CONFIG_EEPROM_93XX46=m CONFIG_CB710_CORE=m # CONFIG_CB710_DEBUG is not set CONFIG_CB710_DEBUG_ASSUMPTIONS=y @@ -1891,6 +1960,9 @@ CONFIG_MII=m CONFIG_IEEE802154_DRIVERS=m CONFIG_IEEE802154_FAKEHARD=m CONFIG_IFB=m +CONFIG_NET_TEAM=m +CONFIG_NET_TEAM_MODE_ROUNDROBIN=m +CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m CONFIG_MACVLAN=m CONFIG_MACVTAP=m CONFIG_NETCONSOLE=m @@ -1982,6 +2054,7 @@ CONFIG_TIGON3=m CONFIG_BNX2X=m CONFIG_NET_VENDOR_BROCADE=y CONFIG_BNA=m +CONFIG_NET_CALXEDA_XGMAC=m CONFIG_NET_VENDOR_CHELSIO=y CONFIG_CHELSIO_T1=m CONFIG_CHELSIO_T1_1G=y @@ -2059,12 +2132,8 @@ CONFIG_MLX4_CORE=m CONFIG_MLX4_DEBUG=y CONFIG_NET_VENDOR_MICREL=y CONFIG_KS8842=m -CONFIG_KS8851=m CONFIG_KS8851_MLL=m CONFIG_KSZ884X_PCI=m -CONFIG_NET_VENDOR_MICROCHIP=y -CONFIG_ENC28J60=m -# CONFIG_ENC28J60_WRITEVERIFY is not set CONFIG_NET_VENDOR_MYRI=y CONFIG_MYRI10GE=m CONFIG_MYRI10GE_DCA=y @@ -2125,6 +2194,8 @@ CONFIG_EPIC100=m CONFIG_SMSC9420=m CONFIG_NET_VENDOR_STMICRO=y CONFIG_STMMAC_ETH=m +CONFIG_STMMAC_PLATFORM=m +CONFIG_STMMAC_PCI=m # CONFIG_STMMAC_DEBUG_FS is not set # CONFIG_STMMAC_DA is not set CONFIG_STMMAC_RING=y @@ -2257,6 +2328,7 @@ CONFIG_ATH9K_PCI=y CONFIG_ATH9K_AHB=y # CONFIG_ATH9K_DEBUGFS is not set CONFIG_ATH9K_RATE_CONTROL=y +CONFIG_ATH9K_BTCOEX_SUPPORT=y CONFIG_ATH9K_HTC=m # CONFIG_ATH9K_HTC_DEBUGFS is not set CONFIG_CARL9170=m @@ -2266,11 +2338,14 @@ CONFIG_CARL9170_WPC=y CONFIG_ATH6KL=m # CONFIG_ATH6KL_DEBUG is not set CONFIG_B43=m +CONFIG_B43_BCMA=y +# CONFIG_B43_BCMA_EXTRA is not set CONFIG_B43_SSB=y CONFIG_B43_PCI_AUTOSELECT=y CONFIG_B43_PCICORE_AUTOSELECT=y CONFIG_B43_PCMCIA=y CONFIG_B43_SDIO=y +CONFIG_B43_BCMA_PIO=y CONFIG_B43_PIO=y CONFIG_B43_PHY_N=y CONFIG_B43_PHY_LP=y @@ -2292,6 +2367,7 @@ CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y CONFIG_BRCMUTIL=m CONFIG_BRCMSMAC=m CONFIG_BRCMFMAC=m +CONFIG_BRCMFMAC_SDIO=y # CONFIG_BRCMDBG is not set CONFIG_HOSTAP=m CONFIG_HOSTAP_FIRMWARE=y @@ -2317,14 +2393,14 @@ CONFIG_IWLWIFI=m # # CONFIG_IWLWIFI_DEBUG is not set CONFIG_IWLWIFI_DEVICE_TRACING=y -CONFIG_IWLWIFI_DEVICE_SVTOOL=y -CONFIG_IWLWIFI_LEGACY=m +CONFIG_IWLWIFI_DEVICE_TESTMODE=y +# CONFIG_IWLWIFI_P2P is not set +CONFIG_IWLEGACY=m # # Debugging Options # -# CONFIG_IWLWIFI_LEGACY_DEBUG is not set -# CONFIG_IWLWIFI_LEGACY_DEVICE_TRACING is not set +# CONFIG_IWLEGACY_DEBUG is not set CONFIG_IWL4965=m CONFIG_IWL3945=m CONFIG_IWM=m @@ -2334,7 +2410,6 @@ CONFIG_LIBERTAS=m CONFIG_LIBERTAS_USB=m CONFIG_LIBERTAS_CS=m CONFIG_LIBERTAS_SDIO=m -CONFIG_LIBERTAS_SPI=m # CONFIG_LIBERTAS_DEBUG is not set CONFIG_LIBERTAS_MESH=y CONFIG_HERMES=m @@ -2350,8 +2425,6 @@ CONFIG_ORINOCO_USB=m CONFIG_P54_COMMON=m CONFIG_P54_USB=m CONFIG_P54_PCI=m -CONFIG_P54_SPI=m -CONFIG_P54_SPI_DEFAULT_EEPROM=y CONFIG_P54_LEDS=y CONFIG_RT2X00=m CONFIG_RT2400PCI=m @@ -2383,13 +2456,10 @@ CONFIG_RTL8192CU=m CONFIG_RTLWIFI=m CONFIG_RTL8192C_COMMON=m CONFIG_WL1251=m -CONFIG_WL1251_SPI=m CONFIG_WL1251_SDIO=m CONFIG_WL12XX_MENU=m CONFIG_WL12XX=m -CONFIG_WL12XX_SPI=m CONFIG_WL12XX_SDIO=m -CONFIG_WL12XX_SDIO_TEST=m CONFIG_WL12XX_PLATFORM_DATA=y CONFIG_ZD1211RW=m # CONFIG_ZD1211RW_DEBUG is not set @@ -2407,6 +2477,7 @@ CONFIG_WIMAX_I2400M_SDIO=m CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8 # CONFIG_WAN is not set CONFIG_VMXNET3=m +CONFIG_HYPERV_NET=m CONFIG_ISDN=y CONFIG_ISDN_I4L=m CONFIG_ISDN_PPP=y @@ -2584,9 +2655,10 @@ CONFIG_KEYBOARD_ATKBD=y CONFIG_KEYBOARD_QT1070=m CONFIG_KEYBOARD_QT2160=m # CONFIG_KEYBOARD_LKKBD is not set -CONFIG_KEYBOARD_GPIO=m -CONFIG_KEYBOARD_GPIO_POLLED=m +# CONFIG_KEYBOARD_GPIO is not set +# CONFIG_KEYBOARD_GPIO_POLLED is not set CONFIG_KEYBOARD_TCA6416=m +CONFIG_KEYBOARD_TCA8418=m CONFIG_KEYBOARD_MATRIX=m # CONFIG_KEYBOARD_LM8323 is not set # CONFIG_KEYBOARD_MAX7359 is not set @@ -2616,7 +2688,7 @@ CONFIG_MOUSE_INPORT=m CONFIG_MOUSE_LOGIBM=m CONFIG_MOUSE_PC110PAD=m CONFIG_MOUSE_VSXXXAA=m -CONFIG_MOUSE_GPIO=m +# CONFIG_MOUSE_GPIO is not set CONFIG_MOUSE_SYNAPTICS_I2C=m CONFIG_INPUT_JOYSTICK=y CONFIG_JOYSTICK_ANALOG=m @@ -2657,17 +2729,16 @@ CONFIG_TABLET_USB_HANWANG=m CONFIG_TABLET_USB_KBTAB=m CONFIG_TABLET_USB_WACOM=m CONFIG_INPUT_TOUCHSCREEN=y -CONFIG_TOUCHSCREEN_ADS7846=m -CONFIG_TOUCHSCREEN_AD7877=m CONFIG_TOUCHSCREEN_AD7879=m CONFIG_TOUCHSCREEN_AD7879_I2C=m -CONFIG_TOUCHSCREEN_AD7879_SPI=m CONFIG_TOUCHSCREEN_ATMEL_MXT=m +CONFIG_TOUCHSCREEN_AUO_PIXCIR=m CONFIG_TOUCHSCREEN_BU21013=m CONFIG_TOUCHSCREEN_CY8CTMG110=m CONFIG_TOUCHSCREEN_DYNAPRO=m CONFIG_TOUCHSCREEN_HAMPSHIRE=m CONFIG_TOUCHSCREEN_EETI=m +CONFIG_TOUCHSCREEN_EGALAX=m CONFIG_TOUCHSCREEN_FUJITSU=m CONFIG_TOUCHSCREEN_GUNZE=m CONFIG_TOUCHSCREEN_ELO=m @@ -2682,13 +2753,12 @@ CONFIG_TOUCHSCREEN_PENMOUNT=m CONFIG_TOUCHSCREEN_TOUCHRIGHT=m CONFIG_TOUCHSCREEN_TOUCHWIN=m CONFIG_TOUCHSCREEN_UCB1400=m -CONFIG_TOUCHSCREEN_WM831X=m +CONFIG_TOUCHSCREEN_PIXCIR=m CONFIG_TOUCHSCREEN_WM97XX=m CONFIG_TOUCHSCREEN_WM9705=y CONFIG_TOUCHSCREEN_WM9712=y CONFIG_TOUCHSCREEN_WM9713=y CONFIG_TOUCHSCREEN_USB_COMPOSITE=m -CONFIG_TOUCHSCREEN_MC13783=m CONFIG_TOUCHSCREEN_USB_EGALAX=y CONFIG_TOUCHSCREEN_USB_PANJIT=y CONFIG_TOUCHSCREEN_USB_3M=y @@ -2701,28 +2771,27 @@ CONFIG_TOUCHSCREEN_USB_IDEALTEK=y CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y CONFIG_TOUCHSCREEN_USB_GOTOP=y CONFIG_TOUCHSCREEN_USB_JASTEC=y +CONFIG_TOUCHSCREEN_USB_ELO=y CONFIG_TOUCHSCREEN_USB_E2I=y CONFIG_TOUCHSCREEN_USB_ZYTRONIC=y CONFIG_TOUCHSCREEN_USB_ETT_TC45USB=y CONFIG_TOUCHSCREEN_USB_NEXIO=y CONFIG_TOUCHSCREEN_TOUCHIT213=m CONFIG_TOUCHSCREEN_TSC_SERIO=m -CONFIG_TOUCHSCREEN_TSC2005=m CONFIG_TOUCHSCREEN_TSC2007=m -CONFIG_TOUCHSCREEN_PCAP=m CONFIG_TOUCHSCREEN_ST1232=m CONFIG_TOUCHSCREEN_TPS6507X=m CONFIG_INPUT_MISC=y CONFIG_INPUT_AB8500_PONKEY=m CONFIG_INPUT_AD714X=m CONFIG_INPUT_AD714X_I2C=m -CONFIG_INPUT_AD714X_SPI=m CONFIG_INPUT_BMA150=m CONFIG_INPUT_PCSPKR=m -CONFIG_INPUT_MC13783_PWRBUTTON=m CONFIG_INPUT_MMA8450=m CONFIG_INPUT_MPU3050=m CONFIG_INPUT_APANEL=m +CONFIG_INPUT_GP2A=m +# CONFIG_INPUT_GPIO_TILT_POLLED is not set CONFIG_INPUT_WISTRON_BTNS=m CONFIG_INPUT_ATLAS_BTNS=m CONFIG_INPUT_ATI_REMOTE2=m @@ -2736,11 +2805,8 @@ CONFIG_INPUT_UINPUT=m CONFIG_INPUT_PCF50633_PMU=m CONFIG_INPUT_PCF8574=m CONFIG_INPUT_GPIO_ROTARY_ENCODER=m -CONFIG_INPUT_WM831X_ON=m -# CONFIG_INPUT_PCAP is not set CONFIG_INPUT_ADXL34X=m CONFIG_INPUT_ADXL34X_I2C=m -CONFIG_INPUT_ADXL34X_SPI=m CONFIG_INPUT_CMA3000=m CONFIG_INPUT_CMA3000_I2C=m @@ -2810,20 +2876,16 @@ CONFIG_SERIAL_8250_DW=m # # Non-8250 serial port support # -CONFIG_SERIAL_MAX3100=m -CONFIG_SERIAL_MAX3107=m CONFIG_SERIAL_MFD_HSU=m -CONFIG_SERIAL_UARTLITE=m CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE_CONSOLE=y CONFIG_SERIAL_JSM=m CONFIG_SERIAL_OF_PLATFORM=m -CONFIG_SERIAL_TIMBERDALE=m +# CONFIG_SERIAL_TIMBERDALE is not set CONFIG_SERIAL_ALTERA_JTAGUART=m CONFIG_SERIAL_ALTERA_UART=m CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4 CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200 -CONFIG_SERIAL_IFX6X60=m CONFIG_SERIAL_PCH_UART=m CONFIG_SERIAL_XILINX_PS_UART=m CONFIG_PRINTER=m @@ -2876,14 +2938,7 @@ CONFIG_I2C=m CONFIG_I2C_BOARDINFO=y CONFIG_I2C_COMPAT=y CONFIG_I2C_CHARDEV=m -CONFIG_I2C_MUX=m - -# -# Multiplexer I2C Chip support -# -CONFIG_I2C_MUX_GPIO=m -CONFIG_I2C_MUX_PCA9541=m -CONFIG_I2C_MUX_PCA954x=m +# CONFIG_I2C_MUX is not set CONFIG_I2C_HELPER_AUTO=y CONFIG_I2C_SMBUS=m CONFIG_I2C_ALGOBIT=m @@ -2922,7 +2977,7 @@ CONFIG_I2C_SCMI=m # I2C system bus drivers (mostly embedded / system-on-chip) # CONFIG_I2C_DESIGNWARE_PCI=m -CONFIG_I2C_GPIO=m +# CONFIG_I2C_GPIO is not set CONFIG_I2C_INTEL_MID=m CONFIG_I2C_OCORES=m CONFIG_I2C_PCA_PLATFORM=m @@ -2950,30 +3005,7 @@ CONFIG_SCx200_ACB=m # CONFIG_I2C_DEBUG_CORE is not set # CONFIG_I2C_DEBUG_ALGO is not set # CONFIG_I2C_DEBUG_BUS is not set -CONFIG_SPI=y -# CONFIG_SPI_DEBUG is not set -CONFIG_SPI_MASTER=y - -# -# SPI Master Controller Drivers -# -CONFIG_SPI_ALTERA=m -CONFIG_SPI_BITBANG=m -CONFIG_SPI_BUTTERFLY=m -CONFIG_SPI_GPIO=m -CONFIG_SPI_LM70_LLP=m -CONFIG_SPI_OC_TINY=m -CONFIG_SPI_PXA2XX=m -CONFIG_SPI_PXA2XX_PCI=y -CONFIG_SPI_TOPCLIFF_PCH=m -CONFIG_SPI_XILINX=m -# CONFIG_SPI_DESIGNWARE is not set - -# -# SPI Protocol Masters -# -CONFIG_SPI_SPIDEV=m -CONFIG_SPI_TLE62X0=m +# CONFIG_SPI is not set # # PPS support @@ -3002,45 +3034,37 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y CONFIG_GPIOLIB=y # CONFIG_DEBUG_GPIO is not set CONFIG_GPIO_SYSFS=y -CONFIG_GPIO_GENERIC=m -CONFIG_GPIO_MAX730X=m # # Memory mapped GPIO drivers: # -CONFIG_GPIO_GENERIC_PLATFORM=m -CONFIG_GPIO_IT8761E=m +# CONFIG_GPIO_GENERIC_PLATFORM is not set +# CONFIG_GPIO_IT8761E is not set CONFIG_GPIO_SCH=m -CONFIG_GPIO_VX855=m +# CONFIG_GPIO_VX855 is not set # # I2C GPIO expanders: # -CONFIG_GPIO_MAX7300=m -CONFIG_GPIO_MAX732X=m -CONFIG_GPIO_PCA953X=m -CONFIG_GPIO_PCF857X=m -CONFIG_GPIO_TPS65912=m -CONFIG_GPIO_WM831X=m -CONFIG_GPIO_ADP5588=m +# CONFIG_GPIO_MAX7300 is not set +# CONFIG_GPIO_MAX732X is not set +# CONFIG_GPIO_PCA953X is not set +# CONFIG_GPIO_PCF857X is not set +# CONFIG_GPIO_ADP5588 is not set # # PCI GPIO expanders: # CONFIG_GPIO_CS5535=y -CONFIG_GPIO_LANGWELL=y -CONFIG_GPIO_PCH=m -CONFIG_GPIO_ML_IOH=m -CONFIG_GPIO_TIMBERDALE=y -CONFIG_GPIO_RDC321X=m +# CONFIG_GPIO_LANGWELL is not set +# CONFIG_GPIO_PCH is not set +# CONFIG_GPIO_ML_IOH is not set +# CONFIG_GPIO_RDC321X is not set # # SPI GPIO expanders: # -CONFIG_GPIO_MAX7301=m -CONFIG_GPIO_MCP23S08=m -CONFIG_GPIO_MC33880=m -CONFIG_GPIO_74X164=m +# CONFIG_GPIO_MCP23S08 is not set # # AC97 GPIO expanders: @@ -3050,52 +3074,23 @@ CONFIG_GPIO_UCB1400=y # # MODULbus GPIO expanders: # -CONFIG_GPIO_JANZ_TTL=m -CONFIG_W1=m -CONFIG_W1_CON=y - -# -# 1-wire Bus Masters -# -CONFIG_W1_MASTER_MATROX=m -CONFIG_W1_MASTER_DS2490=m -CONFIG_W1_MASTER_DS2482=m -CONFIG_W1_MASTER_DS1WM=m -CONFIG_W1_MASTER_GPIO=m - -# -# 1-wire Slaves -# -CONFIG_W1_SLAVE_THERM=m -CONFIG_W1_SLAVE_SMEM=m -CONFIG_W1_SLAVE_DS2408=m -CONFIG_W1_SLAVE_DS2423=m -CONFIG_W1_SLAVE_DS2431=m -CONFIG_W1_SLAVE_DS2433=m -# CONFIG_W1_SLAVE_DS2433_CRC is not set -CONFIG_W1_SLAVE_DS2760=m -CONFIG_W1_SLAVE_DS2780=m -CONFIG_W1_SLAVE_BQ27000=m +# CONFIG_W1 is not set CONFIG_POWER_SUPPLY=y # CONFIG_POWER_SUPPLY_DEBUG is not set CONFIG_PDA_POWER=m -CONFIG_WM831X_BACKUP=m -CONFIG_WM831X_POWER=m CONFIG_TEST_POWER=m -CONFIG_BATTERY_DS2760=m -CONFIG_BATTERY_DS2780=m -CONFIG_BATTERY_DS2782=m +# CONFIG_BATTERY_DS2780 is not set +# CONFIG_BATTERY_DS2782 is not set CONFIG_BATTERY_OLPC=m -CONFIG_BATTERY_BQ20Z75=m -CONFIG_BATTERY_BQ27x00=m -CONFIG_BATTERY_BQ27X00_I2C=y -CONFIG_BATTERY_BQ27X00_PLATFORM=y -CONFIG_BATTERY_MAX17040=m -CONFIG_BATTERY_MAX17042=m -CONFIG_CHARGER_PCF50633=m -CONFIG_CHARGER_ISP1704=m -CONFIG_CHARGER_MAX8903=m -CONFIG_CHARGER_GPIO=m +# CONFIG_BATTERY_SBS is not set +# CONFIG_BATTERY_BQ27x00 is not set +# CONFIG_BATTERY_MAX17040 is not set +# CONFIG_BATTERY_MAX17042 is not set +# CONFIG_CHARGER_PCF50633 is not set +# CONFIG_CHARGER_ISP1704 is not set +# CONFIG_CHARGER_MAX8903 is not set +# CONFIG_CHARGER_LP8727 is not set +# CONFIG_CHARGER_GPIO is not set CONFIG_HWMON=y CONFIG_HWMON_VID=m # CONFIG_HWMON_DEBUG_CHIP is not set @@ -3105,10 +3100,8 @@ CONFIG_HWMON_VID=m # CONFIG_SENSORS_ABITUGURU=m CONFIG_SENSORS_ABITUGURU3=m -CONFIG_SENSORS_AD7314=m CONFIG_SENSORS_AD7414=m CONFIG_SENSORS_AD7418=m -CONFIG_SENSORS_ADCXX=m CONFIG_SENSORS_ADM1021=m CONFIG_SENSORS_ADM1025=m CONFIG_SENSORS_ADM1026=m @@ -3135,7 +3128,7 @@ CONFIG_SENSORS_FSCHMD=m CONFIG_SENSORS_G760A=m CONFIG_SENSORS_GL518SM=m CONFIG_SENSORS_GL520SM=m -CONFIG_SENSORS_GPIO_FAN=m +# CONFIG_SENSORS_GPIO_FAN is not set CONFIG_SENSORS_CORETEMP=m CONFIG_SENSORS_IBMAEM=m CONFIG_SENSORS_IBMPEX=m @@ -3143,7 +3136,6 @@ CONFIG_SENSORS_IT87=m CONFIG_SENSORS_JC42=m CONFIG_SENSORS_LINEAGE=m CONFIG_SENSORS_LM63=m -CONFIG_SENSORS_LM70=m CONFIG_SENSORS_LM73=m CONFIG_SENSORS_LM75=m CONFIG_SENSORS_LM77=m @@ -3161,7 +3153,6 @@ CONFIG_SENSORS_LTC4245=m CONFIG_SENSORS_LTC4261=m CONFIG_SENSORS_LM95241=m CONFIG_SENSORS_LM95245=m -CONFIG_SENSORS_MAX1111=m CONFIG_SENSORS_MAX16065=m CONFIG_SENSORS_MAX1619=m CONFIG_SENSORS_MAX1668=m @@ -3199,7 +3190,6 @@ CONFIG_SENSORS_SCH5627=m CONFIG_SENSORS_SCH5636=m CONFIG_SENSORS_ADS1015=m CONFIG_SENSORS_ADS7828=m -CONFIG_SENSORS_ADS7871=m CONFIG_SENSORS_AMC6821=m CONFIG_SENSORS_THMC50=m CONFIG_SENSORS_TMP102=m @@ -3219,9 +3209,7 @@ CONFIG_SENSORS_W83L785TS=m CONFIG_SENSORS_W83L786NG=m CONFIG_SENSORS_W83627HF=m CONFIG_SENSORS_W83627EHF=m -CONFIG_SENSORS_WM831X=m CONFIG_SENSORS_APPLESMC=m -CONFIG_SENSORS_MC13783_ADC=m # # ACPI drivers @@ -3238,7 +3226,6 @@ CONFIG_WATCHDOG_CORE=y # Watchdog Device Drivers # CONFIG_SOFT_WATCHDOG=m -CONFIG_WM831X_WATCHDOG=m CONFIG_ACQUIRE_WDT=m CONFIG_ADVANTECH_WDT=m CONFIG_ALIM1535_WDT=m @@ -3268,6 +3255,7 @@ CONFIG_SBC7240_WDT=m CONFIG_CPU5_WDT=m CONFIG_SMSC_SCH311X_WDT=m CONFIG_SMSC37B787_WDT=m +CONFIG_VIA_WDT=m CONFIG_W83627HF_WDT=m CONFIG_W83697HF_WDT=m CONFIG_W83697UG_WDT=m @@ -3316,7 +3304,11 @@ CONFIG_BCMA_POSSIBLE=y # # Broadcom specific AMBA # -# CONFIG_BCMA is not set +CONFIG_BCMA=m +CONFIG_BCMA_BLOCKIO=y +CONFIG_BCMA_HOST_PCI_POSSIBLE=y +CONFIG_BCMA_HOST_PCI=y +# CONFIG_BCMA_DEBUG is not set # # Multifunction device drivers @@ -3326,61 +3318,25 @@ CONFIG_MFD_SM501=m CONFIG_MFD_SM501_GPIO=y CONFIG_HTC_PASIC3=m CONFIG_UCB1400_CORE=m -CONFIG_TPS6105X=m +# CONFIG_TPS6105X is not set CONFIG_TPS65010=m CONFIG_TPS6507X=m -CONFIG_MFD_TPS65912=y -CONFIG_MFD_TPS65912_SPI=y # CONFIG_MFD_TMIO is not set CONFIG_MFD_WM8400=m -CONFIG_MFD_WM831X=y -CONFIG_MFD_WM831X_SPI=y CONFIG_MFD_PCF50633=m CONFIG_PCF50633_ADC=m CONFIG_PCF50633_GPIO=m -CONFIG_MFD_MC13783=m -CONFIG_MFD_MC13XXX=m CONFIG_ABX500_CORE=y -CONFIG_EZX_PCAP=y CONFIG_AB8500_CORE=y # CONFIG_AB8500_DEBUG is not set -CONFIG_AB8500_GPADC=y CONFIG_MFD_CS5535=m -CONFIG_MFD_TIMBERDALE=m +# CONFIG_MFD_TIMBERDALE is not set CONFIG_LPC_SCH=m CONFIG_MFD_RDC321X=m -CONFIG_MFD_JANZ_CMODIO=m +# CONFIG_MFD_JANZ_CMODIO is not set CONFIG_MFD_VX855=m CONFIG_MFD_WL1273_CORE=m -CONFIG_REGULATOR=y -# CONFIG_REGULATOR_DEBUG is not set -CONFIG_REGULATOR_DUMMY=y -CONFIG_REGULATOR_FIXED_VOLTAGE=m -CONFIG_REGULATOR_VIRTUAL_CONSUMER=m -CONFIG_REGULATOR_USERSPACE_CONSUMER=m -CONFIG_REGULATOR_GPIO=m -CONFIG_REGULATOR_BQ24022=m -CONFIG_REGULATOR_MAX1586=m -CONFIG_REGULATOR_MAX8649=m -CONFIG_REGULATOR_MAX8660=m -CONFIG_REGULATOR_MAX8952=m -CONFIG_REGULATOR_WM831X=m -CONFIG_REGULATOR_WM8400=m -CONFIG_REGULATOR_PCF50633=m -CONFIG_REGULATOR_LP3971=m -CONFIG_REGULATOR_LP3972=m -CONFIG_REGULATOR_PCAP=m -CONFIG_REGULATOR_MC13XXX_CORE=m -CONFIG_REGULATOR_MC13783=m -CONFIG_REGULATOR_MC13892=m -CONFIG_REGULATOR_TPS6105X=m -CONFIG_REGULATOR_TPS65023=m -CONFIG_REGULATOR_TPS6507X=m -CONFIG_REGULATOR_TPS65912=m -CONFIG_REGULATOR_ISL6271A=m -CONFIG_REGULATOR_AD5398=m -CONFIG_REGULATOR_AB8500=y -CONFIG_REGULATOR_TPS6524X=m +# CONFIG_REGULATOR is not set CONFIG_MEDIA_SUPPORT=m # @@ -3408,6 +3364,7 @@ CONFIG_IR_RC6_DECODER=m CONFIG_IR_JVC_DECODER=m CONFIG_IR_SONY_DECODER=m CONFIG_IR_RC5_SZ_DECODER=m +CONFIG_IR_SANYO_DECODER=m CONFIG_IR_MCE_KBD_DECODER=m CONFIG_IR_LIRC_CODEC=m CONFIG_RC_ATI_REMOTE=m @@ -3449,7 +3406,6 @@ CONFIG_VIDEO_V4L2=m CONFIG_VIDEOBUF_GEN=m CONFIG_VIDEOBUF_DMA_SG=m CONFIG_VIDEOBUF_VMALLOC=m -CONFIG_VIDEOBUF_DMA_CONTIG=m CONFIG_VIDEOBUF_DVB=m CONFIG_VIDEO_BTCX=m CONFIG_VIDEO_TVEEPROM=m @@ -3545,6 +3501,7 @@ CONFIG_VIDEO_S5K6AA=m # Flash devices # CONFIG_VIDEO_ADP1653=m +CONFIG_VIDEO_AS3645A=m # # Video improvement chips @@ -3558,63 +3515,6 @@ CONFIG_VIDEO_UPD64083=m CONFIG_VIDEO_THS7303=m CONFIG_VIDEO_M52790=m CONFIG_VIDEO_VIVI=m -CONFIG_VIDEO_BT848=m -CONFIG_VIDEO_BT848_DVB=y -CONFIG_VIDEO_PMS=m -CONFIG_VIDEO_BWQCAM=m -CONFIG_VIDEO_CQCAM=m -CONFIG_VIDEO_W9966=m -CONFIG_VIDEO_CPIA2=m -CONFIG_VIDEO_ZORAN=m -CONFIG_VIDEO_ZORAN_DC30=m -CONFIG_VIDEO_ZORAN_ZR36060=m -CONFIG_VIDEO_ZORAN_BUZ=m -CONFIG_VIDEO_ZORAN_DC10=m -CONFIG_VIDEO_ZORAN_LML33=m -CONFIG_VIDEO_ZORAN_LML33R10=m -CONFIG_VIDEO_ZORAN_AVS6EYES=m -CONFIG_VIDEO_MEYE=m -CONFIG_VIDEO_SAA7134=m -CONFIG_VIDEO_SAA7134_ALSA=m -CONFIG_VIDEO_SAA7134_RC=y -CONFIG_VIDEO_SAA7134_DVB=m -CONFIG_VIDEO_MXB=m -CONFIG_VIDEO_HEXIUM_ORION=m -CONFIG_VIDEO_HEXIUM_GEMINI=m -CONFIG_VIDEO_TIMBERDALE=m -CONFIG_VIDEO_CX88=m -CONFIG_VIDEO_CX88_ALSA=m -CONFIG_VIDEO_CX88_BLACKBIRD=m -CONFIG_VIDEO_CX88_DVB=m -CONFIG_VIDEO_CX88_MPEG=m -CONFIG_VIDEO_CX88_VP3054=m -CONFIG_VIDEO_CX23885=m -CONFIG_MEDIA_ALTERA_CI=m -CONFIG_VIDEO_CX25821=m -CONFIG_VIDEO_CX25821_ALSA=m -CONFIG_VIDEO_AU0828=m -CONFIG_VIDEO_IVTV=m -CONFIG_VIDEO_FB_IVTV=m -CONFIG_VIDEO_CX18=m -CONFIG_VIDEO_CX18_ALSA=m -CONFIG_VIDEO_SAA7164=m -CONFIG_VIDEO_CAFE_CCIC=m -CONFIG_SOC_CAMERA=m -CONFIG_SOC_CAMERA_IMX074=m -CONFIG_SOC_CAMERA_MT9M001=m -CONFIG_SOC_CAMERA_MT9M111=m -CONFIG_SOC_CAMERA_MT9T031=m -CONFIG_SOC_CAMERA_MT9T112=m -CONFIG_SOC_CAMERA_MT9V022=m -CONFIG_SOC_CAMERA_RJ54N1=m -CONFIG_SOC_CAMERA_TW9910=m -CONFIG_SOC_CAMERA_PLATFORM=m -CONFIG_SOC_CAMERA_OV2640=m -CONFIG_SOC_CAMERA_OV5642=m -CONFIG_SOC_CAMERA_OV6650=m -CONFIG_SOC_CAMERA_OV772X=m -CONFIG_SOC_CAMERA_OV9640=m -CONFIG_SOC_CAMERA_OV9740=m CONFIG_V4L_USB_DRIVERS=y CONFIG_USB_VIDEO_CLASS=m CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y @@ -3628,6 +3528,7 @@ CONFIG_USB_GSPCA_CPIA1=m CONFIG_USB_GSPCA_ETOMS=m CONFIG_USB_GSPCA_FINEPIX=m CONFIG_USB_GSPCA_JEILINJ=m +CONFIG_USB_GSPCA_JL2005BCD=m CONFIG_USB_GSPCA_KINECT=m CONFIG_USB_GSPCA_KONICA=m CONFIG_USB_GSPCA_MARS=m @@ -3687,42 +3588,68 @@ CONFIG_USB_SN9C102=m CONFIG_USB_PWC=m # CONFIG_USB_PWC_DEBUG is not set CONFIG_USB_PWC_INPUT_EVDEV=y +CONFIG_VIDEO_CPIA2=m CONFIG_USB_ZR364XX=m CONFIG_USB_STKWEBCAM=m CONFIG_USB_S2255=m +CONFIG_V4L_PCI_DRIVERS=y +CONFIG_VIDEO_AU0828=m +CONFIG_VIDEO_BT848=m +CONFIG_VIDEO_BT848_DVB=y +CONFIG_VIDEO_CX18=m +CONFIG_VIDEO_CX18_ALSA=m +CONFIG_VIDEO_CX23885=m +CONFIG_MEDIA_ALTERA_CI=m +CONFIG_VIDEO_CX25821=m +CONFIG_VIDEO_CX25821_ALSA=m +CONFIG_VIDEO_CX88=m +CONFIG_VIDEO_CX88_ALSA=m +CONFIG_VIDEO_CX88_BLACKBIRD=m +CONFIG_VIDEO_CX88_DVB=m +CONFIG_VIDEO_CX88_VP3054=m +CONFIG_VIDEO_CX88_MPEG=m +CONFIG_VIDEO_HEXIUM_GEMINI=m +CONFIG_VIDEO_HEXIUM_ORION=m +CONFIG_VIDEO_IVTV=m +CONFIG_VIDEO_FB_IVTV=m +CONFIG_VIDEO_MEYE=m +CONFIG_VIDEO_MXB=m +CONFIG_VIDEO_SAA7134=m +CONFIG_VIDEO_SAA7134_ALSA=m +CONFIG_VIDEO_SAA7134_RC=y +CONFIG_VIDEO_SAA7134_DVB=m +CONFIG_VIDEO_SAA7164=m +CONFIG_VIDEO_ZORAN=m +CONFIG_VIDEO_ZORAN_DC30=m +CONFIG_VIDEO_ZORAN_ZR36060=m +CONFIG_VIDEO_ZORAN_BUZ=m +CONFIG_VIDEO_ZORAN_DC10=m +CONFIG_VIDEO_ZORAN_LML33=m +CONFIG_VIDEO_ZORAN_LML33R10=m +CONFIG_VIDEO_ZORAN_AVS6EYES=m +# CONFIG_V4L_ISA_PARPORT_DRIVERS is not set +# CONFIG_V4L_PLATFORM_DRIVERS is not set CONFIG_V4L_MEM2MEM_DRIVERS=y CONFIG_VIDEO_MEM2MEM_TESTDEV=m CONFIG_RADIO_ADAPTERS=y -CONFIG_RADIO_CADET=m -CONFIG_RADIO_RTRACK=m -CONFIG_RADIO_RTRACK2=m -CONFIG_RADIO_AZTECH=m -CONFIG_RADIO_GEMTEK=m -CONFIG_RADIO_MAXIRADIO=m -CONFIG_RADIO_MIROPCM20=m -CONFIG_RADIO_SF16FMI=m -CONFIG_RADIO_SF16FMR2=m -CONFIG_RADIO_TERRATEC=m -CONFIG_RADIO_TRUST=m -CONFIG_RADIO_TYPHOON=m -CONFIG_RADIO_ZOLTRIX=m -CONFIG_I2C_SI4713=m -CONFIG_RADIO_SI4713=m -CONFIG_USB_DSBR=m CONFIG_RADIO_SI470X=y CONFIG_USB_SI470X=m CONFIG_I2C_SI470X=m CONFIG_USB_MR800=m +CONFIG_USB_DSBR=m +CONFIG_RADIO_MAXIRADIO=m +CONFIG_I2C_SI4713=m +CONFIG_RADIO_SI4713=m CONFIG_RADIO_TEA5764=m CONFIG_RADIO_SAA7706H=m CONFIG_RADIO_TEF6862=m -CONFIG_RADIO_TIMBERDALE=m CONFIG_RADIO_WL1273=m # # Texas Instruments WL128x FM driver (ST based) # CONFIG_RADIO_WL128X=m +# CONFIG_V4L_RADIO_ISA_DRIVERS is not set CONFIG_DVB_MAX_ADAPTERS=8 # CONFIG_DVB_DYNAMIC_MINORS is not set CONFIG_DVB_CAPTURE_DRIVERS=y @@ -3995,6 +3922,9 @@ CONFIG_DRM_SIS=m CONFIG_DRM_VIA=m CONFIG_DRM_SAVAGE=m CONFIG_DRM_VMWGFX=m +CONFIG_DRM_GMA500=m +CONFIG_DRM_GMA600=y +CONFIG_DRM_GMA3600=y CONFIG_STUB_POULSBO=m CONFIG_VGASTATE=m CONFIG_VIDEO_OUTPUT_CONTROL=m @@ -4053,7 +3983,7 @@ CONFIG_FB_I810_I2C=y # CONFIG_FB_KYRO is not set # CONFIG_FB_3DFX is not set CONFIG_FB_VOODOO1=m -CONFIG_FB_VT8623=m +# CONFIG_FB_VT8623 is not set # CONFIG_FB_TRIDENT is not set # CONFIG_FB_ARK is not set # CONFIG_FB_PM3 is not set @@ -4069,36 +3999,17 @@ CONFIG_FB_VIRTUAL=m # CONFIG_FB_BROADSHEET is not set CONFIG_BACKLIGHT_LCD_SUPPORT=y CONFIG_LCD_CLASS_DEVICE=m -CONFIG_LCD_L4F00242T03=m -CONFIG_LCD_LMS283GF05=m -CONFIG_LCD_LTV350QV=m -CONFIG_LCD_ILI9320=m -CONFIG_LCD_TDO24M=m -CONFIG_LCD_VGG2432A4=m CONFIG_LCD_PLATFORM=m -CONFIG_LCD_S6E63M0=m -CONFIG_LCD_LD9040=m -CONFIG_LCD_AMS369FG06=m CONFIG_BACKLIGHT_CLASS_DEVICE=y -CONFIG_BACKLIGHT_GENERIC=m +# CONFIG_BACKLIGHT_GENERIC is not set CONFIG_BACKLIGHT_PROGEAR=m CONFIG_BACKLIGHT_APPLE=m -CONFIG_BACKLIGHT_SAHARA=m -CONFIG_BACKLIGHT_WM831X=m -CONFIG_BACKLIGHT_ADP8860=m -CONFIG_BACKLIGHT_ADP8870=m +# CONFIG_BACKLIGHT_SAHARA is not set +# CONFIG_BACKLIGHT_ADP8860 is not set +# CONFIG_BACKLIGHT_ADP8870 is not set CONFIG_BACKLIGHT_PCF50633=m # -# Display device support -# -CONFIG_DISPLAY_SUPPORT=m - -# -# Display hardware drivers -# - -# # Console display driver support # CONFIG_VGA_CONSOLE=y @@ -4144,6 +4055,7 @@ CONFIG_SND_VERBOSE_PROCFS=y # CONFIG_SND_VERBOSE_PRINTK is not set # CONFIG_SND_DEBUG is not set CONFIG_SND_VMASTER=y +CONFIG_SND_KCTL_JACK=y CONFIG_SND_DMA_SGBUF=y CONFIG_SND_RAWMIDI_SEQ=m CONFIG_SND_OPL3_LIB_SEQ=m @@ -4303,7 +4215,6 @@ CONFIG_SND_VIA82XX_MODEM=m CONFIG_SND_VIRTUOSO=m CONFIG_SND_VX222=m CONFIG_SND_YMFPCI=m -CONFIG_SND_SPI=y CONFIG_SND_USB=y CONFIG_SND_USB_AUDIO=m CONFIG_SND_USB_UA101=m @@ -4319,10 +4230,7 @@ CONFIG_SND_ISIGHT=m CONFIG_SND_PCMCIA=y CONFIG_SND_VXPOCKET=m CONFIG_SND_PDAUDIOCF=m -CONFIG_SND_SOC=m -CONFIG_SND_SOC_CACHE_LZO=y -CONFIG_SND_SOC_I2C_AND_SPI=m -# CONFIG_SND_SOC_ALL_CODECS is not set +# CONFIG_SND_SOC is not set # CONFIG_SOUND_PRIME is not set CONFIG_AC97_BUS=m CONFIG_HID_SUPPORT=y @@ -4384,10 +4292,10 @@ CONFIG_HID_PICOLCD_BACKLIGHT=y CONFIG_HID_PICOLCD_LCD=y CONFIG_HID_PICOLCD_LEDS=y CONFIG_HID_PRIMAX=m -CONFIG_HID_QUANTA=m CONFIG_HID_ROCCAT=m CONFIG_HID_ROCCAT_COMMON=m CONFIG_HID_ROCCAT_ARVO=m +CONFIG_HID_ROCCAT_ISKU=m CONFIG_HID_ROCCAT_KONE=m CONFIG_HID_ROCCAT_KONEPLUS=m CONFIG_HID_ROCCAT_KOVAPLUS=m @@ -4398,6 +4306,7 @@ CONFIG_HID_SPEEDLINK=m CONFIG_HID_SUNPLUS=m CONFIG_HID_GREENASIA=m CONFIG_GREENASIA_FF=y +CONFIG_HID_HYPERV_MOUSE=m CONFIG_HID_SMARTJOYPLUS=m CONFIG_SMARTJOYPLUS_FF=y CONFIG_HID_TOPSEED=m @@ -4406,6 +4315,7 @@ CONFIG_THRUSTMASTER_FF=y CONFIG_HID_WACOM=m CONFIG_HID_WACOM_POWER_SUPPLY=y CONFIG_HID_WIIMOTE=m +CONFIG_HID_WIIMOTE_EXT=y CONFIG_HID_ZEROPLUS=m CONFIG_ZEROPLUS_FF=y CONFIG_HID_ZYDACRON=m @@ -4427,8 +4337,7 @@ CONFIG_USB_DEVICEFS=y CONFIG_USB_DYNAMIC_MINORS=y CONFIG_USB_SUSPEND=y # CONFIG_USB_OTG is not set -CONFIG_USB_DWC3=m -# CONFIG_USB_DWC3_DEBUG is not set +# CONFIG_USB_DWC3 is not set CONFIG_USB_MON=m CONFIG_USB_WUSB=m CONFIG_USB_WUSB_CBAF=m @@ -4443,6 +4352,7 @@ CONFIG_USB_XHCI_HCD=m CONFIG_USB_EHCI_HCD=m CONFIG_USB_EHCI_ROOT_HUB_TT=y CONFIG_USB_EHCI_TT_NEWSCHED=y +CONFIG_USB_EHCI_MV=y CONFIG_USB_OXU210HP_HCD=m CONFIG_USB_ISP116X_HCD=m CONFIG_USB_ISP1760_HCD=m @@ -4461,6 +4371,9 @@ CONFIG_USB_R8A66597_HCD=m CONFIG_USB_RENESAS_USBHS_HCD=m CONFIG_USB_WHCI_HCD=m CONFIG_USB_HWA_HCD=m +CONFIG_USB_MUSB_HDRC=m +CONFIG_USB_MUSB_TUSB6010=m +CONFIG_MUSB_PIO_ONLY=y CONFIG_USB_RENESAS_USBHS=m # @@ -4611,7 +4524,9 @@ CONFIG_USB_GADGET_VBUS_DRAW=2 CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2 CONFIG_USB_FUSB300=m CONFIG_USB_R8A66597=m -CONFIG_USB_GADGET_DWC3=m +CONFIG_USB_RENESAS_USBHS_UDC=m +CONFIG_USB_MV_UDC=m +CONFIG_USB_GADGET_MUSB_HDRC=m CONFIG_USB_M66592=m CONFIG_USB_AMD5536UDC=m CONFIG_USB_CI13XXX_PCI=m @@ -4655,9 +4570,10 @@ CONFIG_USB_G_WEBCAM=m # OTG and related infrastructure # CONFIG_USB_OTG_UTILS=y -CONFIG_USB_GPIO_VBUS=m +# CONFIG_USB_GPIO_VBUS is not set CONFIG_NOP_USB_XCEIV=m -CONFIG_AB8500_USB=m +# CONFIG_AB8500_USB is not set +# CONFIG_USB_MV_OTG is not set CONFIG_UWB=m CONFIG_UWB_HWA=m CONFIG_UWB_WHCI=m @@ -4665,7 +4581,7 @@ CONFIG_UWB_I1480U=m CONFIG_MMC=m # CONFIG_MMC_DEBUG is not set # CONFIG_MMC_UNSAFE_RESUME is not set -CONFIG_MMC_CLKGATE=y +# CONFIG_MMC_CLKGATE is not set # # MMC/SD/SDIO Card Drivers @@ -4714,21 +4630,19 @@ CONFIG_LEDS_CLASS=y CONFIG_LEDS_LM3530=m CONFIG_LEDS_NET5501=m CONFIG_LEDS_PCA9532=m -CONFIG_LEDS_PCA9532_GPIO=y -CONFIG_LEDS_GPIO=m +# CONFIG_LEDS_PCA9532_GPIO is not set +# CONFIG_LEDS_GPIO is not set CONFIG_LEDS_LP3944=m CONFIG_LEDS_LP5521=m CONFIG_LEDS_LP5523=m CONFIG_LEDS_CLEVO_MAIL=m CONFIG_LEDS_PCA955X=m -CONFIG_LEDS_WM831X_STATUS=m -CONFIG_LEDS_DAC124S085=m -CONFIG_LEDS_REGULATOR=m CONFIG_LEDS_BD2802=m CONFIG_LEDS_INTEL_SS4200=m CONFIG_LEDS_LT3593=m CONFIG_LEDS_DELL_NETBOOKS=m -CONFIG_LEDS_MC13783=m +CONFIG_LEDS_TCA6507=m +CONFIG_LEDS_OT200=m CONFIG_LEDS_TRIGGERS=y # @@ -4812,15 +4726,6 @@ CONFIG_RTC_DRV_RV3029C2=m # # SPI RTC drivers # -CONFIG_RTC_DRV_M41T93=m -CONFIG_RTC_DRV_M41T94=m -CONFIG_RTC_DRV_DS1305=m -CONFIG_RTC_DRV_DS1390=m -CONFIG_RTC_DRV_MAX6902=m -CONFIG_RTC_DRV_R9701=m -CONFIG_RTC_DRV_RS5C348=m -CONFIG_RTC_DRV_DS3234=m -CONFIG_RTC_DRV_PCF2123=m # # Platform RTC drivers @@ -4838,15 +4743,12 @@ CONFIG_RTC_DRV_MSM6242=m CONFIG_RTC_DRV_BQ4802=m CONFIG_RTC_DRV_RP5C01=m CONFIG_RTC_DRV_V3020=m -CONFIG_RTC_DRV_WM831X=m CONFIG_RTC_DRV_PCF50633=m CONFIG_RTC_DRV_AB8500=m # # on-CPU RTC drivers # -# CONFIG_RTC_DRV_PCAP is not set -CONFIG_RTC_DRV_MC13XXX=m CONFIG_DMADEVICES=y # CONFIG_DMADEVICES_DEBUG is not set @@ -4889,6 +4791,12 @@ CONFIG_VIRTIO_RING=y CONFIG_VIRTIO_PCI=m CONFIG_VIRTIO_BALLOON=m CONFIG_VIRTIO_MMIO=m + +# +# Microsoft Hyper-V guest support +# +CONFIG_HYPERV=m +CONFIG_HYPERV_UTILS=m CONFIG_STAGING=y CONFIG_ET131X=m CONFIG_SLICOSS=m @@ -5028,23 +4936,22 @@ CONFIG_COMEDI_NI_LABPC=m CONFIG_COMEDI_8255=m CONFIG_COMEDI_DAS08=m CONFIG_COMEDI_FC=m -CONFIG_FB_OLPC_DCON=m -CONFIG_FB_OLPC_DCON_1=y -CONFIG_FB_OLPC_DCON_1_5=y +# CONFIG_FB_OLPC_DCON is not set CONFIG_ASUS_OLED=m # CONFIG_PANEL is not set CONFIG_R8187SE=m CONFIG_RTL8192U=m +CONFIG_RTLLIB=m +CONFIG_RTLLIB_CRYPTO_CCMP=m +CONFIG_RTLLIB_CRYPTO_TKIP=m +CONFIG_RTLLIB_CRYPTO_WEP=m CONFIG_RTL8192E=m CONFIG_R8712U=m -CONFIG_R8712_AP=y CONFIG_RTS_PSTOR=m # CONFIG_RTS_PSTOR_DEBUG is not set CONFIG_RTS5139=m # CONFIG_RTS5139_DEBUG is not set # CONFIG_TRANZPORT is not set -CONFIG_POHMELFS=m -# CONFIG_POHMELFS_DEBUG is not set CONFIG_IDE_PHISON=m CONFIG_LINE6_USB=m # CONFIG_LINE6_USB_DEBUG is not set @@ -5067,8 +4974,6 @@ CONFIG_USB_SERIAL_QUATECH_USB2=m CONFIG_VT6655=m CONFIG_VT6656=m CONFIG_HYPERV_STORAGE=m -CONFIG_HYPERV_NET=m -CONFIG_HYPERV_MOUSE=m # CONFIG_VME_BUS is not set CONFIG_DX_SEP=m # CONFIG_IIO is not set @@ -5109,10 +5014,6 @@ CONFIG_SPEAKUP_SYNTH_TXPRT=m CONFIG_SPEAKUP_SYNTH_DUMMY=m CONFIG_TOUCHSCREEN_CLEARPAD_TM1217=m CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4=m -CONFIG_DRM_PSB=m -CONFIG_DRM_PSB_MRST=y -CONFIG_DRM_PSB_MFLD=y -CONFIG_DRM_PSB_CDV=y CONFIG_INTEL_MEI=m CONFIG_STAGING_MEDIA=y CONFIG_DVB_AS102=m @@ -5144,6 +5045,11 @@ CONFIG_LIRC_SERIAL_TRANSMITTER=y CONFIG_LIRC_SIR=m CONFIG_LIRC_TTUSBIR=m CONFIG_LIRC_ZILOG=m + +# +# Android +# +# CONFIG_ANDROID is not set CONFIG_X86_PLATFORM_DEVICES=y CONFIG_ACER_WMI=m CONFIG_ACERHDF=m @@ -5153,6 +5059,8 @@ CONFIG_DELL_WMI=m CONFIG_DELL_WMI_AIO=m CONFIG_FUJITSU_LAPTOP=m # CONFIG_FUJITSU_LAPTOP_DEBUG is not set +CONFIG_FUJITSU_TABLET=m +CONFIG_AMILO_RFKILL=m CONFIG_TC1100_WMI=m CONFIG_HP_ACCEL=m CONFIG_HP_WMI=m @@ -5205,8 +5113,6 @@ CONFIG_INTEL_IOMMU=y # CONFIG_INTEL_IOMMU_DEFAULT_ON is not set CONFIG_INTEL_IOMMU_FLOPPY_WA=y CONFIG_VIRT_DRIVERS=y -CONFIG_HYPERV=m -CONFIG_HYPERV_UTILS=m # CONFIG_PM_DEVFREQ is not set # @@ -5221,7 +5127,6 @@ CONFIG_DCDBAS=m CONFIG_DMIID=y CONFIG_DMI_SYSFS=m # CONFIG_ISCSI_IBFT_FIND is not set -CONFIG_SIGMA=m # CONFIG_GOOGLE_FIRMWARE is not set # @@ -5235,8 +5140,6 @@ CONFIG_EXT4_FS_XATTR=y CONFIG_EXT4_FS_POSIX_ACL=y CONFIG_EXT4_FS_SECURITY=y # CONFIG_EXT4_DEBUG is not set -CONFIG_JBD=m -# CONFIG_JBD_DEBUG is not set CONFIG_JBD2=m # CONFIG_JBD2_DEBUG is not set CONFIG_FS_MBCACHE=m @@ -5266,6 +5169,7 @@ CONFIG_OCFS2_FS_STATS=y # CONFIG_OCFS2_DEBUG_FS is not set CONFIG_BTRFS_FS=m CONFIG_BTRFS_FS_POSIX_ACL=y +# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set CONFIG_NILFS2_FS=m CONFIG_FS_POSIX_ACL=y CONFIG_EXPORTFS=m @@ -5401,6 +5305,7 @@ CONFIG_NFSD_V2_ACL=y CONFIG_NFSD_V3=y CONFIG_NFSD_V3_ACL=y CONFIG_NFSD_V4=y +# CONFIG_NFSD_FAULT_INJECTION is not set CONFIG_LOCKD=m CONFIG_LOCKD_V4=y CONFIG_NFS_ACL_SUPPORT=m @@ -5436,29 +5341,6 @@ CONFIG_AFS_FSCACHE=y CONFIG_9P_FS=m CONFIG_9P_FSCACHE=y CONFIG_9P_FS_POSIX_ACL=y - -# -# Partition Types -# -CONFIG_PARTITION_ADVANCED=y -# CONFIG_ACORN_PARTITION is not set -# CONFIG_OSF_PARTITION is not set -# CONFIG_AMIGA_PARTITION is not set -# CONFIG_ATARI_PARTITION is not set -CONFIG_MAC_PARTITION=y -CONFIG_MSDOS_PARTITION=y -CONFIG_BSD_DISKLABEL=y -CONFIG_MINIX_SUBPARTITION=y -CONFIG_SOLARIS_X86_PARTITION=y -# CONFIG_UNIXWARE_DISKLABEL is not set -CONFIG_LDM_PARTITION=y -# CONFIG_LDM_DEBUG is not set -# CONFIG_SGI_PARTITION is not set -# CONFIG_ULTRIX_PARTITION is not set -# CONFIG_SUN_PARTITION is not set -CONFIG_KARMA_PARTITION=y -CONFIG_EFI_PARTITION=y -# CONFIG_SYSV68_PARTITION is not set CONFIG_NLS=y CONFIG_NLS_DEFAULT="utf8" CONFIG_NLS_CODEPAGE_437=m @@ -5530,7 +5412,7 @@ CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 # CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 CONFIG_SCHED_DEBUG=y -# CONFIG_SCHEDSTATS is not set +CONFIG_SCHEDSTATS=y CONFIG_TIMER_STATS=y # CONFIG_DEBUG_OBJECTS is not set # CONFIG_SLUB_DEBUG_ON is not set @@ -5655,6 +5537,7 @@ CONFIG_DEFAULT_IO_DELAY_TYPE=0 # CONFIG_CPA_DEBUG is not set # CONFIG_OPTIMIZE_INLINING is not set # CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set +# CONFIG_DEBUG_NMI_SELFTEST is not set # # Security options @@ -5786,6 +5669,7 @@ CONFIG_CRYPTO_SALSA20=m CONFIG_CRYPTO_SALSA20_586=m CONFIG_CRYPTO_SEED=m CONFIG_CRYPTO_SERPENT=m +CONFIG_CRYPTO_SERPENT_SSE2_586=m CONFIG_CRYPTO_TEA=m CONFIG_CRYPTO_TWOFISH=m CONFIG_CRYPTO_TWOFISH_COMMON=m @@ -5833,6 +5717,8 @@ CONFIG_BINARY_PRINTF=y CONFIG_RAID6_PQ=m CONFIG_BITREVERSE=y CONFIG_GENERIC_FIND_FIRST_BIT=y +CONFIG_GENERIC_PCI_IOMAP=y +CONFIG_GENERIC_IOMAP=y CONFIG_CRC_CCITT=m CONFIG_CRC16=m CONFIG_CRC_T10DIF=m @@ -5863,6 +5749,8 @@ CONFIG_DECOMPRESS_LZO=y CONFIG_GENERIC_ALLOCATOR=y CONFIG_REED_SOLOMON=m CONFIG_REED_SOLOMON_DEC16=y +CONFIG_BCH=m +CONFIG_BCH_CONST_PARAMS=y CONFIG_TEXTSEARCH=y CONFIG_TEXTSEARCH_KMP=m CONFIG_TEXTSEARCH_BM=m @@ -5873,6 +5761,7 @@ CONFIG_HAS_IOPORT=y CONFIG_HAS_DMA=y CONFIG_CHECK_SIGNATURE=y CONFIG_CPU_RMAP=y +CONFIG_DQL=y CONFIG_NLATTR=y CONFIG_LRU_CACHE=m CONFIG_AVERAGE=y diff --git a/kernels/linux-libre-aufs_friendly/config.x86_64 b/kernels/linux-libre-aufs_friendly/config.x86_64 index 6fe3c37d0..1a687faf0 100644 --- a/kernels/linux-libre-aufs_friendly/config.x86_64 +++ b/kernels/linux-libre-aufs_friendly/config.x86_64 @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86_64 3.2.6-1 Kernel Configuration +# Linux/x86_64 3.3.4-1 Kernel Configuration # CONFIG_64BIT=y # CONFIG_X86_32 is not set @@ -18,11 +18,9 @@ CONFIG_LOCKDEP_SUPPORT=y CONFIG_STACKTRACE_SUPPORT=y CONFIG_HAVE_LATENCYTOP_SUPPORT=y CONFIG_MMU=y -CONFIG_ZONE_DMA=y CONFIG_NEED_DMA_MAP_STATE=y CONFIG_NEED_SG_DMA_LENGTH=y CONFIG_GENERIC_ISA_DMA=y -CONFIG_GENERIC_IOMAP=y CONFIG_GENERIC_BUG=y CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y CONFIG_GENERIC_HWEIGHT=y @@ -42,7 +40,6 @@ CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y CONFIG_ARCH_HIBERNATION_POSSIBLE=y CONFIG_ARCH_SUSPEND_POSSIBLE=y CONFIG_ZONE_DMA32=y -CONFIG_ARCH_POPULATES_NODE_MAP=y CONFIG_AUDIT_ARCH=y CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y @@ -91,6 +88,7 @@ CONFIG_AUDIT=y CONFIG_AUDITSYSCALL=y CONFIG_AUDIT_WATCH=y CONFIG_AUDIT_TREE=y +# CONFIG_AUDIT_LOGINUID_IMMUTABLE is not set CONFIG_HAVE_GENERIC_HARDIRQS=y # @@ -101,7 +99,6 @@ CONFIG_HAVE_SPARSE_IRQ=y CONFIG_GENERIC_IRQ_PROBE=y CONFIG_GENERIC_IRQ_SHOW=y CONFIG_GENERIC_PENDING_IRQ=y -CONFIG_GENERIC_IRQ_CHIP=y CONFIG_IRQ_FORCED_THREADING=y CONFIG_SPARSE_IRQ=y @@ -113,6 +110,7 @@ CONFIG_PREEMPT_RCU=y # CONFIG_RCU_TRACE is not set CONFIG_RCU_FANOUT=64 # CONFIG_RCU_FANOUT_EXACT is not set +CONFIG_RCU_FAST_NO_HZ=y # CONFIG_TREE_RCU_TRACE is not set # CONFIG_RCU_BOOST is not set CONFIG_IKCONFIG=y @@ -130,6 +128,7 @@ CONFIG_RESOURCE_COUNTERS=y CONFIG_CGROUP_MEM_RES_CTLR=y CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y # CONFIG_CGROUP_MEM_RES_CTLR_SWAP_ENABLED is not set +CONFIG_CGROUP_MEM_RES_CTLR_KMEM=y # CONFIG_CGROUP_PERF is not set CONFIG_CGROUP_SCHED=y CONFIG_FAIR_GROUP_SCHED=y @@ -137,6 +136,7 @@ CONFIG_CFS_BANDWIDTH=y CONFIG_RT_GROUP_SCHED=y CONFIG_BLK_CGROUP=y # CONFIG_DEBUG_BLK_CGROUP is not set +# CONFIG_CHECKPOINT_RESTORE is not set CONFIG_NAMESPACES=y CONFIG_UTS_NS=y CONFIG_IPC_NS=y @@ -196,6 +196,7 @@ CONFIG_TRACEPOINTS=y CONFIG_OPROFILE=m # CONFIG_OPROFILE_EVENT_MULTIPLEX is not set CONFIG_HAVE_OPROFILE=y +CONFIG_OPROFILE_NMI_TIMER=y # CONFIG_KPROBES is not set CONFIG_JUMP_LABEL=y CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y @@ -215,6 +216,9 @@ CONFIG_HAVE_USER_RETURN_NOTIFIER=y CONFIG_HAVE_PERF_EVENTS_NMI=y CONFIG_HAVE_ARCH_JUMP_LABEL=y CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y +CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y +CONFIG_HAVE_CMPXCHG_LOCAL=y +CONFIG_HAVE_CMPXCHG_DOUBLE=y # # GCOV-based kernel profiling @@ -236,6 +240,29 @@ CONFIG_BLK_DEV_BSG=y CONFIG_BLK_DEV_BSGLIB=y # CONFIG_BLK_DEV_INTEGRITY is not set CONFIG_BLK_DEV_THROTTLING=y + +# +# Partition Types +# +CONFIG_PARTITION_ADVANCED=y +# CONFIG_ACORN_PARTITION is not set +# CONFIG_OSF_PARTITION is not set +# CONFIG_AMIGA_PARTITION is not set +# CONFIG_ATARI_PARTITION is not set +CONFIG_MAC_PARTITION=y +CONFIG_MSDOS_PARTITION=y +CONFIG_BSD_DISKLABEL=y +CONFIG_MINIX_SUBPARTITION=y +CONFIG_SOLARIS_X86_PARTITION=y +# CONFIG_UNIXWARE_DISKLABEL is not set +CONFIG_LDM_PARTITION=y +# CONFIG_LDM_DEBUG is not set +# CONFIG_SGI_PARTITION is not set +# CONFIG_ULTRIX_PARTITION is not set +# CONFIG_SUN_PARTITION is not set +CONFIG_KARMA_PARTITION=y +CONFIG_EFI_PARTITION=y +# CONFIG_SYSV68_PARTITION is not set CONFIG_BLOCK_COMPAT=y # @@ -285,6 +312,7 @@ CONFIG_FREEZER=y # # Processor type and features # +CONFIG_ZONE_DMA=y CONFIG_TICK_ONESHOT=y CONFIG_NO_HZ=y CONFIG_HIGH_RES_TIMERS=y @@ -302,7 +330,7 @@ CONFIG_XEN=y CONFIG_XEN_DOM0=y CONFIG_XEN_PRIVILEGED_GUEST=y CONFIG_XEN_PVHVM=y -CONFIG_XEN_MAX_DOMAIN_MEMORY=128 +CONFIG_XEN_MAX_DOMAIN_MEMORY=500 CONFIG_XEN_SAVE_RESTORE=y # CONFIG_XEN_DEBUG_FS is not set CONFIG_KVM_CLOCK=y @@ -320,8 +348,6 @@ CONFIG_NO_BOOTMEM=y CONFIG_GENERIC_CPU=y CONFIG_X86_INTERNODE_CACHE_SHIFT=7 CONFIG_X86_CMPXCHG=y -CONFIG_CMPXCHG_LOCAL=y -CONFIG_CMPXCHG_DOUBLE=y CONFIG_X86_L1_CACHE_SHIFT=6 CONFIG_X86_XADD=y CONFIG_X86_WP_WORKS_OK=y @@ -391,6 +417,8 @@ CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y CONFIG_SPARSEMEM_ALLOC_MEM_MAP_TOGETHER=y CONFIG_SPARSEMEM_VMEMMAP=y CONFIG_HAVE_MEMBLOCK=y +CONFIG_HAVE_MEMBLOCK_NODE_MAP=y +CONFIG_ARCH_DISCARD_MEMBLOCK=y CONFIG_MEMORY_HOTPLUG=y CONFIG_MEMORY_HOTPLUG_SPARSE=y CONFIG_MEMORY_HOTREMOVE=y @@ -409,8 +437,8 @@ CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y CONFIG_MEMORY_FAILURE=y CONFIG_HWPOISON_INJECT=m CONFIG_TRANSPARENT_HUGEPAGE=y -# CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS is not set -CONFIG_TRANSPARENT_HUGEPAGE_MADVISE=y +CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y +# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set CONFIG_CLEANCACHE=y CONFIG_X86_CHECK_BIOS_CORRUPTION=y CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y @@ -423,6 +451,7 @@ CONFIG_X86_PAT=y CONFIG_ARCH_USES_PG_UNCACHED=y CONFIG_ARCH_RANDOM=y CONFIG_EFI=y +CONFIG_EFI_STUB=y CONFIG_SECCOMP=y CONFIG_CC_STACKPROTECTOR=y # CONFIG_HZ_100 is not set @@ -502,17 +531,17 @@ CONFIG_SFI=y # CPU Frequency scaling # CONFIG_CPU_FREQ=y -CONFIG_CPU_FREQ_TABLE=m +CONFIG_CPU_FREQ_TABLE=y CONFIG_CPU_FREQ_STAT=m CONFIG_CPU_FREQ_STAT_DETAILS=y -CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set -# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y # CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set CONFIG_CPU_FREQ_GOV_PERFORMANCE=y CONFIG_CPU_FREQ_GOV_POWERSAVE=m CONFIG_CPU_FREQ_GOV_USERSPACE=m -CONFIG_CPU_FREQ_GOV_ONDEMAND=m +CONFIG_CPU_FREQ_GOV_ONDEMAND=y CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m # @@ -611,6 +640,7 @@ CONFIG_RAPIDIO_TSI500=y # CONFIG_BINFMT_ELF=y CONFIG_COMPAT_BINFMT_ELF=y +CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set # CONFIG_HAVE_AOUT is not set CONFIG_BINFMT_MISC=y @@ -629,6 +659,7 @@ CONFIG_COMPAT_NETLINK_MESSAGES=y # CONFIG_PACKET=y CONFIG_UNIX=y +CONFIG_UNIX_DIAG=m CONFIG_XFRM=y CONFIG_XFRM_USER=m # CONFIG_XFRM_SUB_POLICY is not set @@ -667,6 +698,7 @@ CONFIG_INET_XFRM_MODE_BEET=m CONFIG_INET_LRO=y CONFIG_INET_DIAG=y CONFIG_INET_TCP_DIAG=y +CONFIG_INET_UDP_DIAG=m CONFIG_TCP_CONG_ADVANCED=y CONFIG_TCP_CONG_BIC=m CONFIG_TCP_CONG_CUBIC=y @@ -718,12 +750,14 @@ CONFIG_BRIDGE_NETFILTER=y # Core Netfilter Configuration # CONFIG_NETFILTER_NETLINK=m +CONFIG_NETFILTER_NETLINK_ACCT=m CONFIG_NETFILTER_NETLINK_QUEUE=m CONFIG_NETFILTER_NETLINK_LOG=m CONFIG_NF_CONNTRACK=m CONFIG_NF_CONNTRACK_MARK=y CONFIG_NF_CONNTRACK_SECMARK=y CONFIG_NF_CONNTRACK_ZONES=y +CONFIG_NF_CONNTRACK_PROCFS=y CONFIG_NF_CONNTRACK_EVENTS=y CONFIG_NF_CONNTRACK_TIMESTAMP=y CONFIG_NF_CT_PROTO_DCCP=m @@ -791,6 +825,7 @@ CONFIG_NETFILTER_XT_MATCH_CPU=m CONFIG_NETFILTER_XT_MATCH_DCCP=m CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m CONFIG_NETFILTER_XT_MATCH_DSCP=m +CONFIG_NETFILTER_XT_MATCH_ECN=m CONFIG_NETFILTER_XT_MATCH_ESP=m CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m CONFIG_NETFILTER_XT_MATCH_HELPER=m @@ -802,6 +837,7 @@ CONFIG_NETFILTER_XT_MATCH_LIMIT=m CONFIG_NETFILTER_XT_MATCH_MAC=m CONFIG_NETFILTER_XT_MATCH_MARK=m CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m +CONFIG_NETFILTER_XT_MATCH_NFACCT=m CONFIG_NETFILTER_XT_MATCH_OSF=m CONFIG_NETFILTER_XT_MATCH_OWNER=m CONFIG_NETFILTER_XT_MATCH_POLICY=m @@ -862,6 +898,11 @@ CONFIG_IP_VS_SED=m CONFIG_IP_VS_NQ=m # +# IPVS SH scheduler +# +CONFIG_IP_VS_SH_TAB_BITS=8 + +# # IPVS application helper # CONFIG_IP_VS_FTP=m @@ -873,11 +914,12 @@ CONFIG_IP_VS_PE_SIP=m # CONFIG_NF_DEFRAG_IPV4=m CONFIG_NF_CONNTRACK_IPV4=m -CONFIG_NF_CONNTRACK_PROC_COMPAT=y +# CONFIG_NF_CONNTRACK_PROC_COMPAT is not set CONFIG_IP_NF_QUEUE=m CONFIG_IP_NF_IPTABLES=m CONFIG_IP_NF_MATCH_AH=m CONFIG_IP_NF_MATCH_ECN=m +CONFIG_IP_NF_MATCH_RPFILTER=m CONFIG_IP_NF_MATCH_TTL=m CONFIG_IP_NF_FILTER=m CONFIG_IP_NF_TARGET_REJECT=m @@ -924,6 +966,7 @@ CONFIG_IP6_NF_MATCH_OPTS=m CONFIG_IP6_NF_MATCH_HL=m CONFIG_IP6_NF_MATCH_IPV6HEADER=m CONFIG_IP6_NF_MATCH_MH=m +CONFIG_IP6_NF_MATCH_RPFILTER=m CONFIG_IP6_NF_MATCH_RT=m CONFIG_IP6_NF_TARGET_HL=m CONFIG_IP6_NF_TARGET_LOG=m @@ -1070,9 +1113,12 @@ CONFIG_NET_SCH_FIFO=y CONFIG_DNS_RESOLVER=y CONFIG_BATMAN_ADV=m # CONFIG_BATMAN_ADV_DEBUG is not set +CONFIG_OPENVSWITCH=m CONFIG_RPS=y CONFIG_RFS_ACCEL=y CONFIG_XPS=y +CONFIG_NETPRIO_CGROUP=m +CONFIG_BQL=y CONFIG_HAVE_BPF_JIT=y CONFIG_BPF_JIT=y @@ -1081,7 +1127,26 @@ CONFIG_BPF_JIT=y # CONFIG_NET_PKTGEN=m CONFIG_NET_DROP_MONITOR=y -# CONFIG_HAMRADIO is not set +CONFIG_HAMRADIO=y + +# +# Packet Radio protocols +# +CONFIG_AX25=m +CONFIG_AX25_DAMA_SLAVE=y +CONFIG_NETROM=m +CONFIG_ROSE=m + +# +# AX.25 network device drivers +# +CONFIG_MKISS=m +CONFIG_6PACK=m +CONFIG_BPQETHER=m +CONFIG_BAYCOM_SER_FDX=m +CONFIG_BAYCOM_SER_HDX=m +CONFIG_BAYCOM_PAR=m +CONFIG_YAM=m # CONFIG_CAN is not set CONFIG_IRDA=m @@ -1140,8 +1205,6 @@ CONFIG_VLSI_FIR=m CONFIG_VIA_FIR=m CONFIG_MCS_FIR=m CONFIG_BT=m -CONFIG_BT_L2CAP=y -CONFIG_BT_SCO=y CONFIG_BT_RFCOMM=m CONFIG_BT_RFCOMM_TTY=y CONFIG_BT_BNEP=m @@ -1211,18 +1274,19 @@ CONFIG_WIMAX_DEBUG_LEVEL=8 CONFIG_RFKILL=m CONFIG_RFKILL_LEDS=y CONFIG_RFKILL_INPUT=y -CONFIG_RFKILL_REGULATOR=m CONFIG_NET_9P=m CONFIG_NET_9P_VIRTIO=m # CONFIG_NET_9P_DEBUG is not set CONFIG_CAIF=m # CONFIG_CAIF_DEBUG is not set CONFIG_CAIF_NETDEV=m +CONFIG_CAIF_USB=m CONFIG_CEPH_LIB=m # CONFIG_CEPH_LIB_PRETTYDEBUG is not set # CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set CONFIG_NFC=m CONFIG_NFC_NCI=m +# CONFIG_NFC_LLCP is not set # # Near Field Communication (NFC) devices @@ -1249,9 +1313,10 @@ CONFIG_EXTRA_FIRMWARE="" # CONFIG_DEBUG_DRIVER is not set # CONFIG_DEBUG_DEVRES is not set CONFIG_SYS_HYPERVISOR=y +# CONFIG_GENERIC_CPU_DEVICES is not set CONFIG_REGMAP=y CONFIG_REGMAP_I2C=m -CONFIG_REGMAP_SPI=y +# CONFIG_DMA_SHARED_BUFFER is not set CONFIG_CONNECTOR=y CONFIG_PROC_EVENTS=y CONFIG_MTD=m @@ -1333,9 +1398,6 @@ CONFIG_MTD_PLATRAM=m CONFIG_MTD_PMC551=m # CONFIG_MTD_PMC551_BUGFIX is not set # CONFIG_MTD_PMC551_DEBUG is not set -# CONFIG_MTD_DATAFLASH is not set -# CONFIG_MTD_M25P80 is not set -# CONFIG_MTD_SST25L is not set # CONFIG_MTD_SLRAM is not set CONFIG_MTD_PHRAM=m CONFIG_MTD_MTDRAM=m @@ -1350,6 +1412,8 @@ CONFIG_MTD_BLOCK2MTD=m # CONFIG_MTD_DOC2001 is not set # CONFIG_MTD_DOC2001PLUS is not set CONFIG_MTD_DOCG3=m +CONFIG_BCH_CONST_M=14 +CONFIG_BCH_CONST_T=4 CONFIG_MTD_NAND_ECC=m CONFIG_MTD_NAND_ECC_SMC=y CONFIG_MTD_NAND=m @@ -1400,6 +1464,7 @@ CONFIG_PNPACPI=y CONFIG_BLK_DEV=y CONFIG_BLK_DEV_FD=m # CONFIG_PARIDE is not set +CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m CONFIG_BLK_CPQ_DA=m CONFIG_BLK_CPQ_CISS_DA=m # CONFIG_CISS_SCSI_TAPE is not set @@ -1412,6 +1477,7 @@ CONFIG_BLK_DEV_CRYPTOLOOP=m CONFIG_BLK_DEV_DRBD=m # CONFIG_DRBD_FAULT_INJECTION is not set CONFIG_BLK_DEV_NBD=m +CONFIG_BLK_DEV_NVME=m CONFIG_BLK_DEV_OSD=m CONFIG_BLK_DEV_SX8=m # CONFIG_BLK_DEV_UB is not set @@ -1428,11 +1494,13 @@ CONFIG_XEN_BLKDEV_BACKEND=m CONFIG_VIRTIO_BLK=m # CONFIG_BLK_DEV_HD is not set CONFIG_BLK_DEV_RBD=m + +# +# Misc devices +# CONFIG_SENSORS_LIS3LV02D=m -CONFIG_MISC_DEVICES=y CONFIG_AD525X_DPOT=m CONFIG_AD525X_DPOT_I2C=m -CONFIG_AD525X_DPOT_SPI=m # CONFIG_IBM_ASM is not set CONFIG_PHANTOM=m CONFIG_INTEL_MID_PTI=m @@ -1454,7 +1522,6 @@ CONFIG_SENSORS_BH1770=m CONFIG_SENSORS_APDS990X=m CONFIG_HMC6352=m CONFIG_DS1682=m -CONFIG_TI_DAC7512=m CONFIG_VMWARE_BALLOON=m CONFIG_BMP085=m CONFIG_PCH_PHUB=m @@ -1466,11 +1533,9 @@ CONFIG_C2PORT_DURAMAR_2150=m # EEPROM support # CONFIG_EEPROM_AT24=m -CONFIG_EEPROM_AT25=m CONFIG_EEPROM_LEGACY=m CONFIG_EEPROM_MAX6875=m CONFIG_EEPROM_93CX6=m -CONFIG_EEPROM_93XX46=m CONFIG_CB710_CORE=m # CONFIG_CB710_DEBUG is not set CONFIG_CB710_DEBUG_ASSUMPTIONS=y @@ -1805,6 +1870,9 @@ CONFIG_MII=m CONFIG_IEEE802154_DRIVERS=m CONFIG_IEEE802154_FAKEHARD=m CONFIG_IFB=m +CONFIG_NET_TEAM=m +CONFIG_NET_TEAM_MODE_ROUNDROBIN=m +CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m CONFIG_MACVLAN=m CONFIG_MACVTAP=m CONFIG_NETCONSOLE=m @@ -1890,6 +1958,7 @@ CONFIG_TIGON3=m CONFIG_BNX2X=m CONFIG_NET_VENDOR_BROCADE=y CONFIG_BNA=m +CONFIG_NET_CALXEDA_XGMAC=m CONFIG_NET_VENDOR_CHELSIO=y CONFIG_CHELSIO_T1=m CONFIG_CHELSIO_T1_1G=y @@ -1955,12 +2024,8 @@ CONFIG_MLX4_CORE=m CONFIG_MLX4_DEBUG=y CONFIG_NET_VENDOR_MICREL=y CONFIG_KS8842=m -CONFIG_KS8851=m CONFIG_KS8851_MLL=m CONFIG_KSZ884X_PCI=m -CONFIG_NET_VENDOR_MICROCHIP=y -CONFIG_ENC28J60=m -# CONFIG_ENC28J60_WRITEVERIFY is not set CONFIG_NET_VENDOR_MYRI=y CONFIG_MYRI10GE=m CONFIG_MYRI10GE_DCA=y @@ -2011,6 +2076,8 @@ CONFIG_EPIC100=m CONFIG_SMSC9420=m CONFIG_NET_VENDOR_STMICRO=y CONFIG_STMMAC_ETH=m +CONFIG_STMMAC_PLATFORM=m +CONFIG_STMMAC_PCI=m # CONFIG_STMMAC_DEBUG_FS is not set # CONFIG_STMMAC_DA is not set CONFIG_STMMAC_RING=y @@ -2143,6 +2210,7 @@ CONFIG_ATH9K_PCI=y CONFIG_ATH9K_AHB=y # CONFIG_ATH9K_DEBUGFS is not set CONFIG_ATH9K_RATE_CONTROL=y +CONFIG_ATH9K_BTCOEX_SUPPORT=y CONFIG_ATH9K_HTC=m # CONFIG_ATH9K_HTC_DEBUGFS is not set CONFIG_CARL9170=m @@ -2152,11 +2220,14 @@ CONFIG_CARL9170_WPC=y CONFIG_ATH6KL=m # CONFIG_ATH6KL_DEBUG is not set CONFIG_B43=m +CONFIG_B43_BCMA=y +# CONFIG_B43_BCMA_EXTRA is not set CONFIG_B43_SSB=y CONFIG_B43_PCI_AUTOSELECT=y CONFIG_B43_PCICORE_AUTOSELECT=y CONFIG_B43_PCMCIA=y CONFIG_B43_SDIO=y +CONFIG_B43_BCMA_PIO=y CONFIG_B43_PIO=y CONFIG_B43_PHY_N=y CONFIG_B43_PHY_LP=y @@ -2178,6 +2249,7 @@ CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y CONFIG_BRCMUTIL=m CONFIG_BRCMSMAC=m CONFIG_BRCMFMAC=m +CONFIG_BRCMFMAC_SDIO=y # CONFIG_BRCMDBG is not set CONFIG_HOSTAP=m CONFIG_HOSTAP_FIRMWARE=y @@ -2203,14 +2275,14 @@ CONFIG_IWLWIFI=m # # CONFIG_IWLWIFI_DEBUG is not set CONFIG_IWLWIFI_DEVICE_TRACING=y -CONFIG_IWLWIFI_DEVICE_SVTOOL=y -CONFIG_IWLWIFI_LEGACY=m +CONFIG_IWLWIFI_DEVICE_TESTMODE=y +# CONFIG_IWLWIFI_P2P is not set +CONFIG_IWLEGACY=m # # Debugging Options # -# CONFIG_IWLWIFI_LEGACY_DEBUG is not set -# CONFIG_IWLWIFI_LEGACY_DEVICE_TRACING is not set +# CONFIG_IWLEGACY_DEBUG is not set CONFIG_IWL4965=m CONFIG_IWL3945=m CONFIG_IWM=m @@ -2220,7 +2292,6 @@ CONFIG_LIBERTAS=m CONFIG_LIBERTAS_USB=m CONFIG_LIBERTAS_CS=m CONFIG_LIBERTAS_SDIO=m -CONFIG_LIBERTAS_SPI=m # CONFIG_LIBERTAS_DEBUG is not set CONFIG_LIBERTAS_MESH=y CONFIG_HERMES=m @@ -2236,8 +2307,6 @@ CONFIG_ORINOCO_USB=m CONFIG_P54_COMMON=m CONFIG_P54_USB=m CONFIG_P54_PCI=m -CONFIG_P54_SPI=m -CONFIG_P54_SPI_DEFAULT_EEPROM=y CONFIG_P54_LEDS=y CONFIG_RT2X00=m CONFIG_RT2400PCI=m @@ -2269,13 +2338,10 @@ CONFIG_RTL8192CU=m CONFIG_RTLWIFI=m CONFIG_RTL8192C_COMMON=m CONFIG_WL1251=m -CONFIG_WL1251_SPI=m CONFIG_WL1251_SDIO=m CONFIG_WL12XX_MENU=m CONFIG_WL12XX=m -CONFIG_WL12XX_SPI=m CONFIG_WL12XX_SDIO=m -CONFIG_WL12XX_SDIO_TEST=m CONFIG_WL12XX_PLATFORM_DATA=y CONFIG_ZD1211RW=m # CONFIG_ZD1211RW_DEBUG is not set @@ -2295,6 +2361,7 @@ CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8 CONFIG_XEN_NETDEV_FRONTEND=m CONFIG_XEN_NETDEV_BACKEND=m CONFIG_VMXNET3=m +CONFIG_HYPERV_NET=m CONFIG_ISDN=y CONFIG_ISDN_I4L=m CONFIG_ISDN_PPP=y @@ -2456,9 +2523,10 @@ CONFIG_KEYBOARD_ATKBD=y CONFIG_KEYBOARD_QT1070=m CONFIG_KEYBOARD_QT2160=m # CONFIG_KEYBOARD_LKKBD is not set -CONFIG_KEYBOARD_GPIO=m -CONFIG_KEYBOARD_GPIO_POLLED=m +# CONFIG_KEYBOARD_GPIO is not set +# CONFIG_KEYBOARD_GPIO_POLLED is not set CONFIG_KEYBOARD_TCA6416=m +CONFIG_KEYBOARD_TCA8418=m CONFIG_KEYBOARD_MATRIX=m # CONFIG_KEYBOARD_LM8323 is not set # CONFIG_KEYBOARD_MAX7359 is not set @@ -2483,7 +2551,7 @@ CONFIG_MOUSE_SERIAL=y CONFIG_MOUSE_APPLETOUCH=m CONFIG_MOUSE_BCM5974=m CONFIG_MOUSE_VSXXXAA=m -CONFIG_MOUSE_GPIO=m +# CONFIG_MOUSE_GPIO is not set CONFIG_MOUSE_SYNAPTICS_I2C=m CONFIG_INPUT_JOYSTICK=y CONFIG_JOYSTICK_ANALOG=m @@ -2524,17 +2592,16 @@ CONFIG_TABLET_USB_HANWANG=m CONFIG_TABLET_USB_KBTAB=m CONFIG_TABLET_USB_WACOM=m CONFIG_INPUT_TOUCHSCREEN=y -CONFIG_TOUCHSCREEN_ADS7846=m -CONFIG_TOUCHSCREEN_AD7877=m CONFIG_TOUCHSCREEN_AD7879=m CONFIG_TOUCHSCREEN_AD7879_I2C=m -CONFIG_TOUCHSCREEN_AD7879_SPI=m CONFIG_TOUCHSCREEN_ATMEL_MXT=m +CONFIG_TOUCHSCREEN_AUO_PIXCIR=m CONFIG_TOUCHSCREEN_BU21013=m CONFIG_TOUCHSCREEN_CY8CTMG110=m CONFIG_TOUCHSCREEN_DYNAPRO=m CONFIG_TOUCHSCREEN_HAMPSHIRE=m CONFIG_TOUCHSCREEN_EETI=m +CONFIG_TOUCHSCREEN_EGALAX=m CONFIG_TOUCHSCREEN_FUJITSU=m CONFIG_TOUCHSCREEN_GUNZE=m CONFIG_TOUCHSCREEN_ELO=m @@ -2548,13 +2615,12 @@ CONFIG_TOUCHSCREEN_PENMOUNT=m CONFIG_TOUCHSCREEN_TOUCHRIGHT=m CONFIG_TOUCHSCREEN_TOUCHWIN=m CONFIG_TOUCHSCREEN_UCB1400=m -CONFIG_TOUCHSCREEN_WM831X=m +CONFIG_TOUCHSCREEN_PIXCIR=m CONFIG_TOUCHSCREEN_WM97XX=m CONFIG_TOUCHSCREEN_WM9705=y CONFIG_TOUCHSCREEN_WM9712=y CONFIG_TOUCHSCREEN_WM9713=y CONFIG_TOUCHSCREEN_USB_COMPOSITE=m -CONFIG_TOUCHSCREEN_MC13783=m CONFIG_TOUCHSCREEN_USB_EGALAX=y CONFIG_TOUCHSCREEN_USB_PANJIT=y CONFIG_TOUCHSCREEN_USB_3M=y @@ -2567,28 +2633,27 @@ CONFIG_TOUCHSCREEN_USB_IDEALTEK=y CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y CONFIG_TOUCHSCREEN_USB_GOTOP=y CONFIG_TOUCHSCREEN_USB_JASTEC=y +CONFIG_TOUCHSCREEN_USB_ELO=y CONFIG_TOUCHSCREEN_USB_E2I=y CONFIG_TOUCHSCREEN_USB_ZYTRONIC=y CONFIG_TOUCHSCREEN_USB_ETT_TC45USB=y CONFIG_TOUCHSCREEN_USB_NEXIO=y CONFIG_TOUCHSCREEN_TOUCHIT213=m CONFIG_TOUCHSCREEN_TSC_SERIO=m -CONFIG_TOUCHSCREEN_TSC2005=m CONFIG_TOUCHSCREEN_TSC2007=m -CONFIG_TOUCHSCREEN_PCAP=m CONFIG_TOUCHSCREEN_ST1232=m CONFIG_TOUCHSCREEN_TPS6507X=m CONFIG_INPUT_MISC=y CONFIG_INPUT_AB8500_PONKEY=m CONFIG_INPUT_AD714X=m CONFIG_INPUT_AD714X_I2C=m -CONFIG_INPUT_AD714X_SPI=m CONFIG_INPUT_BMA150=m CONFIG_INPUT_PCSPKR=m -CONFIG_INPUT_MC13783_PWRBUTTON=m CONFIG_INPUT_MMA8450=m CONFIG_INPUT_MPU3050=m CONFIG_INPUT_APANEL=m +CONFIG_INPUT_GP2A=m +# CONFIG_INPUT_GPIO_TILT_POLLED is not set CONFIG_INPUT_ATLAS_BTNS=m CONFIG_INPUT_ATI_REMOTE2=m CONFIG_INPUT_KEYSPAN_REMOTE=m @@ -2601,11 +2666,8 @@ CONFIG_INPUT_UINPUT=m CONFIG_INPUT_PCF50633_PMU=m CONFIG_INPUT_PCF8574=m CONFIG_INPUT_GPIO_ROTARY_ENCODER=m -CONFIG_INPUT_WM831X_ON=m -# CONFIG_INPUT_PCAP is not set CONFIG_INPUT_ADXL34X=m CONFIG_INPUT_ADXL34X_I2C=m -CONFIG_INPUT_ADXL34X_SPI=m CONFIG_INPUT_CMA3000=m CONFIG_INPUT_CMA3000_I2C=m CONFIG_INPUT_XEN_KBDDEV_FRONTEND=m @@ -2675,19 +2737,15 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4 # # Non-8250 serial port support # -CONFIG_SERIAL_MAX3100=m -CONFIG_SERIAL_MAX3107=m CONFIG_SERIAL_MFD_HSU=m -CONFIG_SERIAL_UARTLITE=m CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE_CONSOLE=y CONFIG_SERIAL_JSM=m -CONFIG_SERIAL_TIMBERDALE=m +# CONFIG_SERIAL_TIMBERDALE is not set CONFIG_SERIAL_ALTERA_JTAGUART=m CONFIG_SERIAL_ALTERA_UART=m CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4 CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200 -CONFIG_SERIAL_IFX6X60=m CONFIG_SERIAL_PCH_UART=m CONFIG_SERIAL_XILINX_PS_UART=m CONFIG_PRINTER=m @@ -2737,14 +2795,7 @@ CONFIG_I2C=m CONFIG_I2C_BOARDINFO=y CONFIG_I2C_COMPAT=y CONFIG_I2C_CHARDEV=m -CONFIG_I2C_MUX=m - -# -# Multiplexer I2C Chip support -# -CONFIG_I2C_MUX_GPIO=m -CONFIG_I2C_MUX_PCA9541=m -CONFIG_I2C_MUX_PCA954x=m +# CONFIG_I2C_MUX is not set CONFIG_I2C_HELPER_AUTO=y CONFIG_I2C_SMBUS=m CONFIG_I2C_ALGOBIT=m @@ -2783,7 +2834,7 @@ CONFIG_I2C_SCMI=m # I2C system bus drivers (mostly embedded / system-on-chip) # CONFIG_I2C_DESIGNWARE_PCI=m -CONFIG_I2C_GPIO=m +# CONFIG_I2C_GPIO is not set CONFIG_I2C_INTEL_MID=m CONFIG_I2C_OCORES=m CONFIG_I2C_PCA_PLATFORM=m @@ -2808,29 +2859,7 @@ CONFIG_I2C_TINY_USB=m # CONFIG_I2C_DEBUG_CORE is not set # CONFIG_I2C_DEBUG_ALGO is not set # CONFIG_I2C_DEBUG_BUS is not set -CONFIG_SPI=y -# CONFIG_SPI_DEBUG is not set -CONFIG_SPI_MASTER=y - -# -# SPI Master Controller Drivers -# -CONFIG_SPI_ALTERA=m -CONFIG_SPI_BITBANG=m -CONFIG_SPI_BUTTERFLY=m -CONFIG_SPI_GPIO=m -CONFIG_SPI_LM70_LLP=m -CONFIG_SPI_OC_TINY=m -# CONFIG_SPI_PXA2XX_PCI is not set -CONFIG_SPI_TOPCLIFF_PCH=m -CONFIG_SPI_XILINX=m -# CONFIG_SPI_DESIGNWARE is not set - -# -# SPI Protocol Masters -# -CONFIG_SPI_SPIDEV=m -CONFIG_SPI_TLE62X0=m +# CONFIG_SPI is not set # # PPS support @@ -2859,45 +2888,37 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y CONFIG_GPIOLIB=y # CONFIG_DEBUG_GPIO is not set CONFIG_GPIO_SYSFS=y -CONFIG_GPIO_GENERIC=m -CONFIG_GPIO_MAX730X=m # # Memory mapped GPIO drivers: # -CONFIG_GPIO_GENERIC_PLATFORM=m -CONFIG_GPIO_IT8761E=m +# CONFIG_GPIO_GENERIC_PLATFORM is not set +# CONFIG_GPIO_IT8761E is not set CONFIG_GPIO_SCH=m -CONFIG_GPIO_VX855=m +# CONFIG_GPIO_VX855 is not set # # I2C GPIO expanders: # -CONFIG_GPIO_MAX7300=m -CONFIG_GPIO_MAX732X=m -CONFIG_GPIO_PCA953X=m -CONFIG_GPIO_PCF857X=m -CONFIG_GPIO_TPS65912=m -CONFIG_GPIO_WM831X=m -CONFIG_GPIO_ADP5588=m +# CONFIG_GPIO_MAX7300 is not set +# CONFIG_GPIO_MAX732X is not set +# CONFIG_GPIO_PCA953X is not set +# CONFIG_GPIO_PCF857X is not set +# CONFIG_GPIO_ADP5588 is not set # # PCI GPIO expanders: # CONFIG_GPIO_CS5535=m CONFIG_GPIO_LANGWELL=y -CONFIG_GPIO_PCH=m -CONFIG_GPIO_ML_IOH=m -CONFIG_GPIO_TIMBERDALE=y -CONFIG_GPIO_RDC321X=m +# CONFIG_GPIO_PCH is not set +# CONFIG_GPIO_ML_IOH is not set +# CONFIG_GPIO_RDC321X is not set # # SPI GPIO expanders: # -CONFIG_GPIO_MAX7301=m -CONFIG_GPIO_MCP23S08=m -CONFIG_GPIO_MC33880=m -CONFIG_GPIO_74X164=m +# CONFIG_GPIO_MCP23S08 is not set # # AC97 GPIO expanders: @@ -2907,51 +2928,22 @@ CONFIG_GPIO_UCB1400=y # # MODULbus GPIO expanders: # -CONFIG_GPIO_JANZ_TTL=m -CONFIG_W1=m -CONFIG_W1_CON=y - -# -# 1-wire Bus Masters -# -CONFIG_W1_MASTER_MATROX=m -CONFIG_W1_MASTER_DS2490=m -CONFIG_W1_MASTER_DS2482=m -CONFIG_W1_MASTER_DS1WM=m -CONFIG_W1_MASTER_GPIO=m - -# -# 1-wire Slaves -# -CONFIG_W1_SLAVE_THERM=m -CONFIG_W1_SLAVE_SMEM=m -CONFIG_W1_SLAVE_DS2408=m -CONFIG_W1_SLAVE_DS2423=m -CONFIG_W1_SLAVE_DS2431=m -CONFIG_W1_SLAVE_DS2433=m -# CONFIG_W1_SLAVE_DS2433_CRC is not set -CONFIG_W1_SLAVE_DS2760=m -CONFIG_W1_SLAVE_DS2780=m -CONFIG_W1_SLAVE_BQ27000=m +# CONFIG_W1 is not set CONFIG_POWER_SUPPLY=y # CONFIG_POWER_SUPPLY_DEBUG is not set CONFIG_PDA_POWER=m -CONFIG_WM831X_BACKUP=m -CONFIG_WM831X_POWER=m CONFIG_TEST_POWER=m -CONFIG_BATTERY_DS2760=m -CONFIG_BATTERY_DS2780=m -CONFIG_BATTERY_DS2782=m -CONFIG_BATTERY_BQ20Z75=m -CONFIG_BATTERY_BQ27x00=m -CONFIG_BATTERY_BQ27X00_I2C=y -CONFIG_BATTERY_BQ27X00_PLATFORM=y -CONFIG_BATTERY_MAX17040=m -CONFIG_BATTERY_MAX17042=m -CONFIG_CHARGER_PCF50633=m -CONFIG_CHARGER_ISP1704=m -CONFIG_CHARGER_MAX8903=m -CONFIG_CHARGER_GPIO=m +# CONFIG_BATTERY_DS2780 is not set +# CONFIG_BATTERY_DS2782 is not set +# CONFIG_BATTERY_SBS is not set +# CONFIG_BATTERY_BQ27x00 is not set +# CONFIG_BATTERY_MAX17040 is not set +# CONFIG_BATTERY_MAX17042 is not set +# CONFIG_CHARGER_PCF50633 is not set +# CONFIG_CHARGER_ISP1704 is not set +# CONFIG_CHARGER_MAX8903 is not set +# CONFIG_CHARGER_LP8727 is not set +# CONFIG_CHARGER_GPIO is not set CONFIG_HWMON=y CONFIG_HWMON_VID=m # CONFIG_HWMON_DEBUG_CHIP is not set @@ -2961,10 +2953,8 @@ CONFIG_HWMON_VID=m # CONFIG_SENSORS_ABITUGURU=m CONFIG_SENSORS_ABITUGURU3=m -CONFIG_SENSORS_AD7314=m CONFIG_SENSORS_AD7414=m CONFIG_SENSORS_AD7418=m -CONFIG_SENSORS_ADCXX=m CONFIG_SENSORS_ADM1021=m CONFIG_SENSORS_ADM1025=m CONFIG_SENSORS_ADM1026=m @@ -2991,7 +2981,7 @@ CONFIG_SENSORS_FSCHMD=m CONFIG_SENSORS_G760A=m CONFIG_SENSORS_GL518SM=m CONFIG_SENSORS_GL520SM=m -CONFIG_SENSORS_GPIO_FAN=m +# CONFIG_SENSORS_GPIO_FAN is not set CONFIG_SENSORS_CORETEMP=m CONFIG_SENSORS_IBMAEM=m CONFIG_SENSORS_IBMPEX=m @@ -2999,7 +2989,6 @@ CONFIG_SENSORS_IT87=m CONFIG_SENSORS_JC42=m CONFIG_SENSORS_LINEAGE=m CONFIG_SENSORS_LM63=m -CONFIG_SENSORS_LM70=m CONFIG_SENSORS_LM73=m CONFIG_SENSORS_LM75=m CONFIG_SENSORS_LM77=m @@ -3017,7 +3006,6 @@ CONFIG_SENSORS_LTC4245=m CONFIG_SENSORS_LTC4261=m CONFIG_SENSORS_LM95241=m CONFIG_SENSORS_LM95245=m -CONFIG_SENSORS_MAX1111=m CONFIG_SENSORS_MAX16065=m CONFIG_SENSORS_MAX1619=m CONFIG_SENSORS_MAX1668=m @@ -3055,7 +3043,6 @@ CONFIG_SENSORS_SCH5627=m CONFIG_SENSORS_SCH5636=m CONFIG_SENSORS_ADS1015=m CONFIG_SENSORS_ADS7828=m -CONFIG_SENSORS_ADS7871=m CONFIG_SENSORS_AMC6821=m CONFIG_SENSORS_THMC50=m CONFIG_SENSORS_TMP102=m @@ -3075,9 +3062,7 @@ CONFIG_SENSORS_W83L785TS=m CONFIG_SENSORS_W83L786NG=m CONFIG_SENSORS_W83627HF=m CONFIG_SENSORS_W83627EHF=m -CONFIG_SENSORS_WM831X=m CONFIG_SENSORS_APPLESMC=m -CONFIG_SENSORS_MC13783_ADC=m # # ACPI drivers @@ -3094,7 +3079,6 @@ CONFIG_WATCHDOG_CORE=y # Watchdog Device Drivers # CONFIG_SOFT_WATCHDOG=m -CONFIG_WM831X_WATCHDOG=m CONFIG_ACQUIRE_WDT=m CONFIG_ADVANTECH_WDT=m CONFIG_ALIM1535_WDT=m @@ -3123,6 +3107,7 @@ CONFIG_SBC8360_WDT=m CONFIG_CPU5_WDT=m CONFIG_SMSC_SCH311X_WDT=m CONFIG_SMSC37B787_WDT=m +CONFIG_VIA_WDT=m CONFIG_W83627HF_WDT=m CONFIG_W83697HF_WDT=m CONFIG_W83697UG_WDT=m @@ -3165,7 +3150,11 @@ CONFIG_BCMA_POSSIBLE=y # # Broadcom specific AMBA # -# CONFIG_BCMA is not set +CONFIG_BCMA=m +CONFIG_BCMA_BLOCKIO=y +CONFIG_BCMA_HOST_PCI_POSSIBLE=y +CONFIG_BCMA_HOST_PCI=y +# CONFIG_BCMA_DEBUG is not set # # Multifunction device drivers @@ -3175,61 +3164,25 @@ CONFIG_MFD_SM501=m CONFIG_MFD_SM501_GPIO=y CONFIG_HTC_PASIC3=m CONFIG_UCB1400_CORE=m -CONFIG_TPS6105X=m +# CONFIG_TPS6105X is not set CONFIG_TPS65010=m CONFIG_TPS6507X=m -CONFIG_MFD_TPS65912=y -CONFIG_MFD_TPS65912_SPI=y # CONFIG_MFD_TMIO is not set CONFIG_MFD_WM8400=m -CONFIG_MFD_WM831X=y -CONFIG_MFD_WM831X_SPI=y CONFIG_MFD_PCF50633=m CONFIG_PCF50633_ADC=m CONFIG_PCF50633_GPIO=m -CONFIG_MFD_MC13783=m -CONFIG_MFD_MC13XXX=m CONFIG_ABX500_CORE=y -CONFIG_EZX_PCAP=y CONFIG_AB8500_CORE=y # CONFIG_AB8500_DEBUG is not set -CONFIG_AB8500_GPADC=y CONFIG_MFD_CS5535=m -CONFIG_MFD_TIMBERDALE=m +# CONFIG_MFD_TIMBERDALE is not set CONFIG_LPC_SCH=m CONFIG_MFD_RDC321X=m -CONFIG_MFD_JANZ_CMODIO=m +# CONFIG_MFD_JANZ_CMODIO is not set CONFIG_MFD_VX855=m CONFIG_MFD_WL1273_CORE=m -CONFIG_REGULATOR=y -# CONFIG_REGULATOR_DEBUG is not set -CONFIG_REGULATOR_DUMMY=y -CONFIG_REGULATOR_FIXED_VOLTAGE=m -CONFIG_REGULATOR_VIRTUAL_CONSUMER=m -CONFIG_REGULATOR_USERSPACE_CONSUMER=m -CONFIG_REGULATOR_GPIO=m -CONFIG_REGULATOR_BQ24022=m -CONFIG_REGULATOR_MAX1586=m -CONFIG_REGULATOR_MAX8649=m -CONFIG_REGULATOR_MAX8660=m -CONFIG_REGULATOR_MAX8952=m -CONFIG_REGULATOR_WM831X=m -CONFIG_REGULATOR_WM8400=m -CONFIG_REGULATOR_PCF50633=m -CONFIG_REGULATOR_LP3971=m -CONFIG_REGULATOR_LP3972=m -CONFIG_REGULATOR_PCAP=m -CONFIG_REGULATOR_MC13XXX_CORE=m -CONFIG_REGULATOR_MC13783=m -CONFIG_REGULATOR_MC13892=m -CONFIG_REGULATOR_TPS6105X=m -CONFIG_REGULATOR_TPS65023=m -CONFIG_REGULATOR_TPS6507X=m -CONFIG_REGULATOR_TPS65912=m -CONFIG_REGULATOR_ISL6271A=m -CONFIG_REGULATOR_AD5398=m -CONFIG_REGULATOR_AB8500=y -CONFIG_REGULATOR_TPS6524X=m +# CONFIG_REGULATOR is not set CONFIG_MEDIA_SUPPORT=m # @@ -3257,6 +3210,7 @@ CONFIG_IR_RC6_DECODER=m CONFIG_IR_JVC_DECODER=m CONFIG_IR_SONY_DECODER=m CONFIG_IR_RC5_SZ_DECODER=m +CONFIG_IR_SANYO_DECODER=m CONFIG_IR_MCE_KBD_DECODER=m CONFIG_IR_LIRC_CODEC=m CONFIG_RC_ATI_REMOTE=m @@ -3298,7 +3252,6 @@ CONFIG_VIDEO_V4L2=m CONFIG_VIDEOBUF_GEN=m CONFIG_VIDEOBUF_DMA_SG=m CONFIG_VIDEOBUF_VMALLOC=m -CONFIG_VIDEOBUF_DMA_CONTIG=m CONFIG_VIDEOBUF_DVB=m CONFIG_VIDEO_BTCX=m CONFIG_VIDEO_TVEEPROM=m @@ -3394,6 +3347,7 @@ CONFIG_VIDEO_S5K6AA=m # Flash devices # CONFIG_VIDEO_ADP1653=m +CONFIG_VIDEO_AS3645A=m # # Video improvement chips @@ -3407,62 +3361,6 @@ CONFIG_VIDEO_UPD64083=m CONFIG_VIDEO_THS7303=m CONFIG_VIDEO_M52790=m CONFIG_VIDEO_VIVI=m -CONFIG_VIDEO_BT848=m -CONFIG_VIDEO_BT848_DVB=y -CONFIG_VIDEO_BWQCAM=m -CONFIG_VIDEO_CQCAM=m -CONFIG_VIDEO_W9966=m -CONFIG_VIDEO_CPIA2=m -CONFIG_VIDEO_ZORAN=m -CONFIG_VIDEO_ZORAN_DC30=m -CONFIG_VIDEO_ZORAN_ZR36060=m -CONFIG_VIDEO_ZORAN_BUZ=m -CONFIG_VIDEO_ZORAN_DC10=m -CONFIG_VIDEO_ZORAN_LML33=m -CONFIG_VIDEO_ZORAN_LML33R10=m -CONFIG_VIDEO_ZORAN_AVS6EYES=m -CONFIG_VIDEO_MEYE=m -CONFIG_VIDEO_SAA7134=m -CONFIG_VIDEO_SAA7134_ALSA=m -CONFIG_VIDEO_SAA7134_RC=y -CONFIG_VIDEO_SAA7134_DVB=m -CONFIG_VIDEO_MXB=m -CONFIG_VIDEO_HEXIUM_ORION=m -CONFIG_VIDEO_HEXIUM_GEMINI=m -CONFIG_VIDEO_TIMBERDALE=m -CONFIG_VIDEO_CX88=m -CONFIG_VIDEO_CX88_ALSA=m -CONFIG_VIDEO_CX88_BLACKBIRD=m -CONFIG_VIDEO_CX88_DVB=m -CONFIG_VIDEO_CX88_MPEG=m -CONFIG_VIDEO_CX88_VP3054=m -CONFIG_VIDEO_CX23885=m -CONFIG_MEDIA_ALTERA_CI=m -CONFIG_VIDEO_CX25821=m -CONFIG_VIDEO_CX25821_ALSA=m -CONFIG_VIDEO_AU0828=m -CONFIG_VIDEO_IVTV=m -CONFIG_VIDEO_FB_IVTV=m -CONFIG_VIDEO_CX18=m -CONFIG_VIDEO_CX18_ALSA=m -CONFIG_VIDEO_SAA7164=m -CONFIG_VIDEO_CAFE_CCIC=m -CONFIG_SOC_CAMERA=m -CONFIG_SOC_CAMERA_IMX074=m -CONFIG_SOC_CAMERA_MT9M001=m -CONFIG_SOC_CAMERA_MT9M111=m -CONFIG_SOC_CAMERA_MT9T031=m -CONFIG_SOC_CAMERA_MT9T112=m -CONFIG_SOC_CAMERA_MT9V022=m -CONFIG_SOC_CAMERA_RJ54N1=m -CONFIG_SOC_CAMERA_TW9910=m -CONFIG_SOC_CAMERA_PLATFORM=m -CONFIG_SOC_CAMERA_OV2640=m -CONFIG_SOC_CAMERA_OV5642=m -CONFIG_SOC_CAMERA_OV6650=m -CONFIG_SOC_CAMERA_OV772X=m -CONFIG_SOC_CAMERA_OV9640=m -CONFIG_SOC_CAMERA_OV9740=m CONFIG_V4L_USB_DRIVERS=y CONFIG_USB_VIDEO_CLASS=m CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y @@ -3476,6 +3374,7 @@ CONFIG_USB_GSPCA_CPIA1=m CONFIG_USB_GSPCA_ETOMS=m CONFIG_USB_GSPCA_FINEPIX=m CONFIG_USB_GSPCA_JEILINJ=m +CONFIG_USB_GSPCA_JL2005BCD=m CONFIG_USB_GSPCA_KINECT=m CONFIG_USB_GSPCA_KONICA=m CONFIG_USB_GSPCA_MARS=m @@ -3535,24 +3434,61 @@ CONFIG_USB_SN9C102=m CONFIG_USB_PWC=m # CONFIG_USB_PWC_DEBUG is not set CONFIG_USB_PWC_INPUT_EVDEV=y +CONFIG_VIDEO_CPIA2=m CONFIG_USB_ZR364XX=m CONFIG_USB_STKWEBCAM=m CONFIG_USB_S2255=m +CONFIG_V4L_PCI_DRIVERS=y +CONFIG_VIDEO_AU0828=m +CONFIG_VIDEO_BT848=m +CONFIG_VIDEO_BT848_DVB=y +CONFIG_VIDEO_CX18=m +CONFIG_VIDEO_CX18_ALSA=m +CONFIG_VIDEO_CX23885=m +CONFIG_MEDIA_ALTERA_CI=m +CONFIG_VIDEO_CX25821=m +CONFIG_VIDEO_CX25821_ALSA=m +CONFIG_VIDEO_CX88=m +CONFIG_VIDEO_CX88_ALSA=m +CONFIG_VIDEO_CX88_BLACKBIRD=m +CONFIG_VIDEO_CX88_DVB=m +CONFIG_VIDEO_CX88_VP3054=m +CONFIG_VIDEO_CX88_MPEG=m +CONFIG_VIDEO_HEXIUM_GEMINI=m +CONFIG_VIDEO_HEXIUM_ORION=m +CONFIG_VIDEO_IVTV=m +CONFIG_VIDEO_FB_IVTV=m +CONFIG_VIDEO_MEYE=m +CONFIG_VIDEO_MXB=m +CONFIG_VIDEO_SAA7134=m +CONFIG_VIDEO_SAA7134_ALSA=m +CONFIG_VIDEO_SAA7134_RC=y +CONFIG_VIDEO_SAA7134_DVB=m +CONFIG_VIDEO_SAA7164=m +CONFIG_VIDEO_ZORAN=m +CONFIG_VIDEO_ZORAN_DC30=m +CONFIG_VIDEO_ZORAN_ZR36060=m +CONFIG_VIDEO_ZORAN_BUZ=m +CONFIG_VIDEO_ZORAN_DC10=m +CONFIG_VIDEO_ZORAN_LML33=m +CONFIG_VIDEO_ZORAN_LML33R10=m +CONFIG_VIDEO_ZORAN_AVS6EYES=m +# CONFIG_V4L_ISA_PARPORT_DRIVERS is not set +# CONFIG_V4L_PLATFORM_DRIVERS is not set CONFIG_V4L_MEM2MEM_DRIVERS=y CONFIG_VIDEO_MEM2MEM_TESTDEV=m CONFIG_RADIO_ADAPTERS=y -CONFIG_RADIO_MAXIRADIO=m -CONFIG_I2C_SI4713=m -CONFIG_RADIO_SI4713=m -CONFIG_USB_DSBR=m CONFIG_RADIO_SI470X=y CONFIG_USB_SI470X=m CONFIG_I2C_SI470X=m CONFIG_USB_MR800=m +CONFIG_USB_DSBR=m +CONFIG_RADIO_MAXIRADIO=m +CONFIG_I2C_SI4713=m +CONFIG_RADIO_SI4713=m CONFIG_RADIO_TEA5764=m CONFIG_RADIO_SAA7706H=m CONFIG_RADIO_TEF6862=m -CONFIG_RADIO_TIMBERDALE=m CONFIG_RADIO_WL1273=m # @@ -3825,6 +3761,9 @@ CONFIG_DRM_SIS=m CONFIG_DRM_VIA=m CONFIG_DRM_SAVAGE=m CONFIG_DRM_VMWGFX=m +CONFIG_DRM_GMA500=m +CONFIG_DRM_GMA600=y +CONFIG_DRM_GMA3600=y CONFIG_STUB_POULSBO=m CONFIG_VGASTATE=m CONFIG_VIDEO_OUTPUT_CONTROL=m @@ -3880,7 +3819,7 @@ CONFIG_FB_EFI=y # CONFIG_FB_KYRO is not set # CONFIG_FB_3DFX is not set CONFIG_FB_VOODOO1=m -CONFIG_FB_VT8623=m +# CONFIG_FB_VT8623 is not set # CONFIG_FB_TRIDENT is not set # CONFIG_FB_ARK is not set # CONFIG_FB_PM3 is not set @@ -3897,36 +3836,17 @@ CONFIG_XEN_FBDEV_FRONTEND=m # CONFIG_FB_BROADSHEET is not set CONFIG_BACKLIGHT_LCD_SUPPORT=y CONFIG_LCD_CLASS_DEVICE=m -CONFIG_LCD_L4F00242T03=m -CONFIG_LCD_LMS283GF05=m -CONFIG_LCD_LTV350QV=m -CONFIG_LCD_ILI9320=m -CONFIG_LCD_TDO24M=m -CONFIG_LCD_VGG2432A4=m CONFIG_LCD_PLATFORM=m -CONFIG_LCD_S6E63M0=m -CONFIG_LCD_LD9040=m -CONFIG_LCD_AMS369FG06=m CONFIG_BACKLIGHT_CLASS_DEVICE=y -CONFIG_BACKLIGHT_GENERIC=m +# CONFIG_BACKLIGHT_GENERIC is not set CONFIG_BACKLIGHT_PROGEAR=m CONFIG_BACKLIGHT_APPLE=m -CONFIG_BACKLIGHT_SAHARA=m -CONFIG_BACKLIGHT_WM831X=m -CONFIG_BACKLIGHT_ADP8860=m -CONFIG_BACKLIGHT_ADP8870=m +# CONFIG_BACKLIGHT_SAHARA is not set +# CONFIG_BACKLIGHT_ADP8860 is not set +# CONFIG_BACKLIGHT_ADP8870 is not set CONFIG_BACKLIGHT_PCF50633=m # -# Display device support -# -CONFIG_DISPLAY_SUPPORT=m - -# -# Display hardware drivers -# - -# # Console display driver support # CONFIG_VGA_CONSOLE=y @@ -3971,6 +3891,7 @@ CONFIG_SND_VERBOSE_PROCFS=y # CONFIG_SND_VERBOSE_PRINTK is not set # CONFIG_SND_DEBUG is not set CONFIG_SND_VMASTER=y +CONFIG_SND_KCTL_JACK=y CONFIG_SND_DMA_SGBUF=y CONFIG_SND_RAWMIDI_SEQ=m CONFIG_SND_OPL3_LIB_SEQ=m @@ -4093,7 +4014,6 @@ CONFIG_SND_VIA82XX_MODEM=m CONFIG_SND_VIRTUOSO=m CONFIG_SND_VX222=m CONFIG_SND_YMFPCI=m -CONFIG_SND_SPI=y CONFIG_SND_USB=y CONFIG_SND_USB_AUDIO=m CONFIG_SND_USB_UA101=m @@ -4109,10 +4029,7 @@ CONFIG_SND_ISIGHT=m CONFIG_SND_PCMCIA=y CONFIG_SND_VXPOCKET=m CONFIG_SND_PDAUDIOCF=m -CONFIG_SND_SOC=m -CONFIG_SND_SOC_CACHE_LZO=y -CONFIG_SND_SOC_I2C_AND_SPI=m -# CONFIG_SND_SOC_ALL_CODECS is not set +# CONFIG_SND_SOC is not set # CONFIG_SOUND_PRIME is not set CONFIG_AC97_BUS=m CONFIG_HID_SUPPORT=y @@ -4174,10 +4091,10 @@ CONFIG_HID_PICOLCD_BACKLIGHT=y CONFIG_HID_PICOLCD_LCD=y CONFIG_HID_PICOLCD_LEDS=y CONFIG_HID_PRIMAX=m -CONFIG_HID_QUANTA=m CONFIG_HID_ROCCAT=m CONFIG_HID_ROCCAT_COMMON=m CONFIG_HID_ROCCAT_ARVO=m +CONFIG_HID_ROCCAT_ISKU=m CONFIG_HID_ROCCAT_KONE=m CONFIG_HID_ROCCAT_KONEPLUS=m CONFIG_HID_ROCCAT_KOVAPLUS=m @@ -4188,6 +4105,7 @@ CONFIG_HID_SPEEDLINK=m CONFIG_HID_SUNPLUS=m CONFIG_HID_GREENASIA=m CONFIG_GREENASIA_FF=y +CONFIG_HID_HYPERV_MOUSE=m CONFIG_HID_SMARTJOYPLUS=m CONFIG_SMARTJOYPLUS_FF=y CONFIG_HID_TOPSEED=m @@ -4196,6 +4114,7 @@ CONFIG_THRUSTMASTER_FF=y CONFIG_HID_WACOM=m CONFIG_HID_WACOM_POWER_SUPPLY=y CONFIG_HID_WIIMOTE=m +CONFIG_HID_WIIMOTE_EXT=y CONFIG_HID_ZEROPLUS=m CONFIG_ZEROPLUS_FF=y CONFIG_HID_ZYDACRON=m @@ -4217,8 +4136,7 @@ CONFIG_USB_DEVICEFS=y CONFIG_USB_DYNAMIC_MINORS=y CONFIG_USB_SUSPEND=y # CONFIG_USB_OTG is not set -CONFIG_USB_DWC3=m -# CONFIG_USB_DWC3_DEBUG is not set +# CONFIG_USB_DWC3 is not set CONFIG_USB_MON=m CONFIG_USB_WUSB=m CONFIG_USB_WUSB_CBAF=m @@ -4233,6 +4151,7 @@ CONFIG_USB_XHCI_HCD=m CONFIG_USB_EHCI_HCD=m CONFIG_USB_EHCI_ROOT_HUB_TT=y CONFIG_USB_EHCI_TT_NEWSCHED=y +CONFIG_USB_EHCI_MV=y CONFIG_USB_OXU210HP_HCD=m CONFIG_USB_ISP116X_HCD=m CONFIG_USB_ISP1760_HCD=m @@ -4251,6 +4170,9 @@ CONFIG_USB_R8A66597_HCD=m CONFIG_USB_RENESAS_USBHS_HCD=m CONFIG_USB_WHCI_HCD=m CONFIG_USB_HWA_HCD=m +CONFIG_USB_MUSB_HDRC=m +CONFIG_USB_MUSB_TUSB6010=m +CONFIG_MUSB_PIO_ONLY=y CONFIG_USB_RENESAS_USBHS=m # @@ -4400,7 +4322,9 @@ CONFIG_USB_GADGET=m CONFIG_USB_GADGET_VBUS_DRAW=2 CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2 CONFIG_USB_R8A66597=m -CONFIG_USB_GADGET_DWC3=m +CONFIG_USB_RENESAS_USBHS_UDC=m +CONFIG_USB_MV_UDC=m +CONFIG_USB_GADGET_MUSB_HDRC=m CONFIG_USB_M66592=m CONFIG_USB_AMD5536UDC=m CONFIG_USB_CI13XXX_PCI=m @@ -4443,9 +4367,10 @@ CONFIG_USB_G_WEBCAM=m # OTG and related infrastructure # CONFIG_USB_OTG_UTILS=y -CONFIG_USB_GPIO_VBUS=m +# CONFIG_USB_GPIO_VBUS is not set CONFIG_NOP_USB_XCEIV=m -CONFIG_AB8500_USB=m +# CONFIG_AB8500_USB is not set +# CONFIG_USB_MV_OTG is not set CONFIG_UWB=m CONFIG_UWB_HWA=m CONFIG_UWB_WHCI=m @@ -4453,7 +4378,7 @@ CONFIG_UWB_I1480U=m CONFIG_MMC=m # CONFIG_MMC_DEBUG is not set # CONFIG_MMC_UNSAFE_RESUME is not set -CONFIG_MMC_CLKGATE=y +# CONFIG_MMC_CLKGATE is not set # # MMC/SD/SDIO Card Drivers @@ -4473,7 +4398,6 @@ CONFIG_MMC_RICOH_MMC=y CONFIG_MMC_SDHCI_PLTFM=m CONFIG_MMC_WBSD=m CONFIG_MMC_TIFM_SD=m -CONFIG_MMC_SPI=m CONFIG_MMC_SDRICOH_CS=m CONFIG_MMC_CB710=m CONFIG_MMC_VIA_SDMMC=m @@ -4503,21 +4427,19 @@ CONFIG_LEDS_CLASS=y CONFIG_LEDS_LM3530=m CONFIG_LEDS_NET5501=m CONFIG_LEDS_PCA9532=m -CONFIG_LEDS_PCA9532_GPIO=y -CONFIG_LEDS_GPIO=m +# CONFIG_LEDS_PCA9532_GPIO is not set +# CONFIG_LEDS_GPIO is not set CONFIG_LEDS_LP3944=m CONFIG_LEDS_LP5521=m CONFIG_LEDS_LP5523=m CONFIG_LEDS_CLEVO_MAIL=m CONFIG_LEDS_PCA955X=m -CONFIG_LEDS_WM831X_STATUS=m -CONFIG_LEDS_DAC124S085=m -CONFIG_LEDS_REGULATOR=m CONFIG_LEDS_BD2802=m CONFIG_LEDS_INTEL_SS4200=m CONFIG_LEDS_LT3593=m CONFIG_LEDS_DELL_NETBOOKS=m -CONFIG_LEDS_MC13783=m +CONFIG_LEDS_TCA6507=m +CONFIG_LEDS_OT200=m CONFIG_LEDS_TRIGGERS=y # @@ -4599,15 +4521,6 @@ CONFIG_RTC_DRV_RV3029C2=m # # SPI RTC drivers # -CONFIG_RTC_DRV_M41T93=m -CONFIG_RTC_DRV_M41T94=m -CONFIG_RTC_DRV_DS1305=m -CONFIG_RTC_DRV_DS1390=m -CONFIG_RTC_DRV_MAX6902=m -CONFIG_RTC_DRV_R9701=m -CONFIG_RTC_DRV_RS5C348=m -CONFIG_RTC_DRV_DS3234=m -CONFIG_RTC_DRV_PCF2123=m # # Platform RTC drivers @@ -4625,15 +4538,12 @@ CONFIG_RTC_DRV_MSM6242=m CONFIG_RTC_DRV_BQ4802=m CONFIG_RTC_DRV_RP5C01=m CONFIG_RTC_DRV_V3020=m -CONFIG_RTC_DRV_WM831X=m CONFIG_RTC_DRV_PCF50633=m CONFIG_RTC_DRV_AB8500=m # # on-CPU RTC drivers # -# CONFIG_RTC_DRV_PCAP is not set -CONFIG_RTC_DRV_MC13XXX=m CONFIG_DMADEVICES=y # CONFIG_DMADEVICES_DEBUG is not set @@ -4678,6 +4588,12 @@ CONFIG_VIRTIO_BALLOON=m CONFIG_VIRTIO_MMIO=m # +# Microsoft Hyper-V guest support +# +CONFIG_HYPERV=m +CONFIG_HYPERV_UTILS=m + +# # Xen driver support # CONFIG_XEN_BALLOON=y @@ -4695,6 +4611,7 @@ CONFIG_XEN_GRANT_DEV_ALLOC=m CONFIG_SWIOTLB_XEN=y CONFIG_XEN_TMEM=y CONFIG_XEN_PCIDEV_BACKEND=m +CONFIG_XEN_PRIVCMD=m CONFIG_STAGING=y CONFIG_ET131X=m CONFIG_SLICOSS=m @@ -4796,16 +4713,17 @@ CONFIG_ASUS_OLED=m # CONFIG_PANEL is not set CONFIG_R8187SE=m CONFIG_RTL8192U=m +CONFIG_RTLLIB=m +CONFIG_RTLLIB_CRYPTO_CCMP=m +CONFIG_RTLLIB_CRYPTO_TKIP=m +CONFIG_RTLLIB_CRYPTO_WEP=m CONFIG_RTL8192E=m CONFIG_R8712U=m -CONFIG_R8712_AP=y CONFIG_RTS_PSTOR=m # CONFIG_RTS_PSTOR_DEBUG is not set CONFIG_RTS5139=m # CONFIG_RTS5139_DEBUG is not set # CONFIG_TRANZPORT is not set -CONFIG_POHMELFS=m -# CONFIG_POHMELFS_DEBUG is not set CONFIG_IDE_PHISON=m CONFIG_LINE6_USB=m # CONFIG_LINE6_USB_DEBUG is not set @@ -4828,8 +4746,6 @@ CONFIG_USB_SERIAL_QUATECH_USB2=m CONFIG_VT6655=m CONFIG_VT6656=m CONFIG_HYPERV_STORAGE=m -CONFIG_HYPERV_NET=m -CONFIG_HYPERV_MOUSE=m # CONFIG_VME_BUS is not set CONFIG_DX_SEP=m # CONFIG_IIO is not set @@ -4870,10 +4786,6 @@ CONFIG_SPEAKUP_SYNTH_TXPRT=m CONFIG_SPEAKUP_SYNTH_DUMMY=m CONFIG_TOUCHSCREEN_CLEARPAD_TM1217=m CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4=m -CONFIG_DRM_PSB=m -CONFIG_DRM_PSB_MRST=y -CONFIG_DRM_PSB_MFLD=y -CONFIG_DRM_PSB_CDV=y CONFIG_INTEL_MEI=m CONFIG_STAGING_MEDIA=y CONFIG_DVB_AS102=m @@ -4905,6 +4817,11 @@ CONFIG_LIRC_SERIAL_TRANSMITTER=y CONFIG_LIRC_SIR=m CONFIG_LIRC_TTUSBIR=m CONFIG_LIRC_ZILOG=m + +# +# Android +# +# CONFIG_ANDROID is not set CONFIG_X86_PLATFORM_DEVICES=y CONFIG_ACER_WMI=m CONFIG_ACERHDF=m @@ -4914,6 +4831,8 @@ CONFIG_DELL_WMI=m CONFIG_DELL_WMI_AIO=m CONFIG_FUJITSU_LAPTOP=m # CONFIG_FUJITSU_LAPTOP_DEBUG is not set +CONFIG_FUJITSU_TABLET=m +CONFIG_AMILO_RFKILL=m CONFIG_HP_ACCEL=m CONFIG_HP_WMI=m CONFIG_MSI_LAPTOP=m @@ -4960,14 +4879,13 @@ CONFIG_IOMMU_API=y CONFIG_IOMMU_SUPPORT=y CONFIG_AMD_IOMMU=y # CONFIG_AMD_IOMMU_STATS is not set +CONFIG_AMD_IOMMU_V2=m CONFIG_DMAR_TABLE=y CONFIG_INTEL_IOMMU=y # CONFIG_INTEL_IOMMU_DEFAULT_ON is not set CONFIG_INTEL_IOMMU_FLOPPY_WA=y CONFIG_IRQ_REMAP=y CONFIG_VIRT_DRIVERS=y -CONFIG_HYPERV=m -CONFIG_HYPERV_UTILS=m # CONFIG_PM_DEVFREQ is not set # @@ -4982,7 +4900,6 @@ CONFIG_DCDBAS=m CONFIG_DMIID=y CONFIG_DMI_SYSFS=m # CONFIG_ISCSI_IBFT_FIND is not set -CONFIG_SIGMA=m # CONFIG_GOOGLE_FIRMWARE is not set # @@ -4996,8 +4913,6 @@ CONFIG_EXT4_FS_XATTR=y CONFIG_EXT4_FS_POSIX_ACL=y CONFIG_EXT4_FS_SECURITY=y # CONFIG_EXT4_DEBUG is not set -CONFIG_JBD=m -# CONFIG_JBD_DEBUG is not set CONFIG_JBD2=m # CONFIG_JBD2_DEBUG is not set CONFIG_FS_MBCACHE=m @@ -5027,6 +4942,7 @@ CONFIG_OCFS2_FS_STATS=y # CONFIG_OCFS2_DEBUG_FS is not set CONFIG_BTRFS_FS=m CONFIG_BTRFS_FS_POSIX_ACL=y +# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set CONFIG_NILFS2_FS=m CONFIG_FS_POSIX_ACL=y CONFIG_EXPORTFS=m @@ -5163,6 +5079,7 @@ CONFIG_NFSD_V2_ACL=y CONFIG_NFSD_V3=y CONFIG_NFSD_V3_ACL=y CONFIG_NFSD_V4=y +# CONFIG_NFSD_FAULT_INJECTION is not set CONFIG_LOCKD=m CONFIG_LOCKD_V4=y CONFIG_NFS_ACL_SUPPORT=m @@ -5198,29 +5115,6 @@ CONFIG_AFS_FSCACHE=y CONFIG_9P_FS=m CONFIG_9P_FSCACHE=y CONFIG_9P_FS_POSIX_ACL=y - -# -# Partition Types -# -CONFIG_PARTITION_ADVANCED=y -# CONFIG_ACORN_PARTITION is not set -# CONFIG_OSF_PARTITION is not set -# CONFIG_AMIGA_PARTITION is not set -# CONFIG_ATARI_PARTITION is not set -CONFIG_MAC_PARTITION=y -CONFIG_MSDOS_PARTITION=y -CONFIG_BSD_DISKLABEL=y -CONFIG_MINIX_SUBPARTITION=y -CONFIG_SOLARIS_X86_PARTITION=y -# CONFIG_UNIXWARE_DISKLABEL is not set -CONFIG_LDM_PARTITION=y -# CONFIG_LDM_DEBUG is not set -# CONFIG_SGI_PARTITION is not set -# CONFIG_ULTRIX_PARTITION is not set -# CONFIG_SUN_PARTITION is not set -CONFIG_KARMA_PARTITION=y -CONFIG_EFI_PARTITION=y -# CONFIG_SYSV68_PARTITION is not set CONFIG_NLS=y CONFIG_NLS_DEFAULT="utf8" CONFIG_NLS_CODEPAGE_437=m @@ -5292,11 +5186,12 @@ CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 # CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 CONFIG_SCHED_DEBUG=y -# CONFIG_SCHEDSTATS is not set +CONFIG_SCHEDSTATS=y CONFIG_TIMER_STATS=y # CONFIG_DEBUG_OBJECTS is not set # CONFIG_SLUB_DEBUG_ON is not set # CONFIG_SLUB_STATS is not set +# CONFIG_DEBUG_KMEMLEAK is not set # CONFIG_DEBUG_PREEMPT is not set # CONFIG_DEBUG_RT_MUTEXES is not set # CONFIG_RT_MUTEX_TESTER is not set @@ -5415,6 +5310,7 @@ CONFIG_DEFAULT_IO_DELAY_TYPE=0 # CONFIG_CPA_DEBUG is not set # CONFIG_OPTIMIZE_INLINING is not set # CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set +# CONFIG_DEBUG_NMI_SELFTEST is not set # # Security options @@ -5549,6 +5445,7 @@ CONFIG_CRYPTO_SALSA20=m CONFIG_CRYPTO_SALSA20_X86_64=m CONFIG_CRYPTO_SEED=m CONFIG_CRYPTO_SERPENT=m +CONFIG_CRYPTO_SERPENT_SSE2_X86_64=m CONFIG_CRYPTO_TEA=m CONFIG_CRYPTO_TWOFISH=m CONFIG_CRYPTO_TWOFISH_COMMON=m @@ -5593,6 +5490,8 @@ CONFIG_BINARY_PRINTF=y CONFIG_RAID6_PQ=m CONFIG_BITREVERSE=y CONFIG_GENERIC_FIND_FIRST_BIT=y +CONFIG_GENERIC_PCI_IOMAP=y +CONFIG_GENERIC_IOMAP=y CONFIG_CRC_CCITT=m CONFIG_CRC16=m CONFIG_CRC_T10DIF=m @@ -5622,6 +5521,8 @@ CONFIG_DECOMPRESS_LZO=y CONFIG_GENERIC_ALLOCATOR=y CONFIG_REED_SOLOMON=m CONFIG_REED_SOLOMON_DEC16=y +CONFIG_BCH=m +CONFIG_BCH_CONST_PARAMS=y CONFIG_TEXTSEARCH=y CONFIG_TEXTSEARCH_KMP=m CONFIG_TEXTSEARCH_BM=m @@ -5632,6 +5533,7 @@ CONFIG_HAS_IOPORT=y CONFIG_HAS_DMA=y CONFIG_CHECK_SIGNATURE=y CONFIG_CPU_RMAP=y +CONFIG_DQL=y CONFIG_NLATTR=y CONFIG_LRU_CACHE=m CONFIG_AVERAGE=y diff --git a/kernels/linux-libre-aufs_friendly/dib0700-fix.patch b/kernels/linux-libre-aufs_friendly/dib0700-fix.patch deleted file mode 100644 index 48f07e6fd..000000000 --- a/kernels/linux-libre-aufs_friendly/dib0700-fix.patch +++ /dev/null @@ -1,1487 +0,0 @@ -commit 198c545cd7306dc90aaae1d61e64175e70a70dc8 -Author: Patrick Boettcher <Patrick.Boettcher@dibcom.fr> -Date: Wed Aug 3 17:08:21 2011 +0200 - - [media] DiBcom: protect the I2C bufer access - - This patch protect the I2C buffer access in order to manage concurrent - access. This protection is done using mutex. - Furthermore, for the dib9000, if a pid filtering command is - received during the tuning, this pid filtering command is delayed to - avoid any concurrent access issue. - - Cc: Mauro Carvalho Chehab <mchehab@redhat.com> - Cc: Florian Mickler <florian@mickler.org> - Cc: stable@kernel.org - - Signed-off-by: Olivier Grenie <olivier.grenie@dibcom.fr> - Signed-off-by: Patrick Boettcher <Patrick.Boettcher@dibcom.fr> - -diff --git a/drivers/media/dvb/frontends/dib0070.c b/drivers/media/dvb/frontends/dib0070.c -index 1d47d4d..dc1cb17 100644 ---- a/drivers/media/dvb/frontends/dib0070.c -+++ b/drivers/media/dvb/frontends/dib0070.c -@@ -27,6 +27,7 @@ - #include <linux/kernel.h> - #include <linux/slab.h> - #include <linux/i2c.h> -+#include <linux/mutex.h> - - #include "dvb_frontend.h" - -@@ -78,10 +79,18 @@ struct dib0070_state { - struct i2c_msg msg[2]; - u8 i2c_write_buffer[3]; - u8 i2c_read_buffer[2]; -+ struct mutex i2c_buffer_lock; - }; - --static uint16_t dib0070_read_reg(struct dib0070_state *state, u8 reg) -+static u16 dib0070_read_reg(struct dib0070_state *state, u8 reg) - { -+ u16 ret; -+ -+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return 0; -+ } -+ - state->i2c_write_buffer[0] = reg; - - memset(state->msg, 0, 2 * sizeof(struct i2c_msg)); -@@ -96,13 +105,23 @@ static uint16_t dib0070_read_reg(struct dib0070_state *state, u8 reg) - - if (i2c_transfer(state->i2c, state->msg, 2) != 2) { - printk(KERN_WARNING "DiB0070 I2C read failed\n"); -- return 0; -- } -- return (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1]; -+ ret = 0; -+ } else -+ ret = (state->i2c_read_buffer[0] << 8) -+ | state->i2c_read_buffer[1]; -+ -+ mutex_unlock(&state->i2c_buffer_lock); -+ return ret; - } - - static int dib0070_write_reg(struct dib0070_state *state, u8 reg, u16 val) - { -+ int ret; -+ -+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return -EINVAL; -+ } - state->i2c_write_buffer[0] = reg; - state->i2c_write_buffer[1] = val >> 8; - state->i2c_write_buffer[2] = val & 0xff; -@@ -115,9 +134,12 @@ static int dib0070_write_reg(struct dib0070_state *state, u8 reg, u16 val) - - if (i2c_transfer(state->i2c, state->msg, 1) != 1) { - printk(KERN_WARNING "DiB0070 I2C write failed\n"); -- return -EREMOTEIO; -- } -- return 0; -+ ret = -EREMOTEIO; -+ } else -+ ret = 0; -+ -+ mutex_unlock(&state->i2c_buffer_lock); -+ return ret; - } - - #define HARD_RESET(state) do { \ -@@ -734,6 +756,7 @@ struct dvb_frontend *dib0070_attach(struct dvb_frontend *fe, struct i2c_adapter - state->cfg = cfg; - state->i2c = i2c; - state->fe = fe; -+ mutex_init(&state->i2c_buffer_lock); - fe->tuner_priv = state; - - if (dib0070_reset(fe) != 0) -diff --git a/drivers/media/dvb/frontends/dib0090.c b/drivers/media/dvb/frontends/dib0090.c -index c9c935a..b174d1c 100644 ---- a/drivers/media/dvb/frontends/dib0090.c -+++ b/drivers/media/dvb/frontends/dib0090.c -@@ -27,6 +27,7 @@ - #include <linux/kernel.h> - #include <linux/slab.h> - #include <linux/i2c.h> -+#include <linux/mutex.h> - - #include "dvb_frontend.h" - -@@ -196,6 +197,7 @@ struct dib0090_state { - struct i2c_msg msg[2]; - u8 i2c_write_buffer[3]; - u8 i2c_read_buffer[2]; -+ struct mutex i2c_buffer_lock; - }; - - struct dib0090_fw_state { -@@ -208,10 +210,18 @@ struct dib0090_fw_state { - struct i2c_msg msg; - u8 i2c_write_buffer[2]; - u8 i2c_read_buffer[2]; -+ struct mutex i2c_buffer_lock; - }; - - static u16 dib0090_read_reg(struct dib0090_state *state, u8 reg) - { -+ u16 ret; -+ -+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return 0; -+ } -+ - state->i2c_write_buffer[0] = reg; - - memset(state->msg, 0, 2 * sizeof(struct i2c_msg)); -@@ -226,14 +236,24 @@ static u16 dib0090_read_reg(struct dib0090_state *state, u8 reg) - - if (i2c_transfer(state->i2c, state->msg, 2) != 2) { - printk(KERN_WARNING "DiB0090 I2C read failed\n"); -- return 0; -- } -+ ret = 0; -+ } else -+ ret = (state->i2c_read_buffer[0] << 8) -+ | state->i2c_read_buffer[1]; - -- return (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1]; -+ mutex_unlock(&state->i2c_buffer_lock); -+ return ret; - } - - static int dib0090_write_reg(struct dib0090_state *state, u32 reg, u16 val) - { -+ int ret; -+ -+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return -EINVAL; -+ } -+ - state->i2c_write_buffer[0] = reg & 0xff; - state->i2c_write_buffer[1] = val >> 8; - state->i2c_write_buffer[2] = val & 0xff; -@@ -246,13 +266,23 @@ static int dib0090_write_reg(struct dib0090_state *state, u32 reg, u16 val) - - if (i2c_transfer(state->i2c, state->msg, 1) != 1) { - printk(KERN_WARNING "DiB0090 I2C write failed\n"); -- return -EREMOTEIO; -- } -- return 0; -+ ret = -EREMOTEIO; -+ } else -+ ret = 0; -+ -+ mutex_unlock(&state->i2c_buffer_lock); -+ return ret; - } - - static u16 dib0090_fw_read_reg(struct dib0090_fw_state *state, u8 reg) - { -+ u16 ret; -+ -+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return 0; -+ } -+ - state->i2c_write_buffer[0] = reg; - - memset(&state->msg, 0, sizeof(struct i2c_msg)); -@@ -262,13 +292,24 @@ static u16 dib0090_fw_read_reg(struct dib0090_fw_state *state, u8 reg) - state->msg.len = 2; - if (i2c_transfer(state->i2c, &state->msg, 1) != 1) { - printk(KERN_WARNING "DiB0090 I2C read failed\n"); -- return 0; -- } -- return (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1]; -+ ret = 0; -+ } else -+ ret = (state->i2c_read_buffer[0] << 8) -+ | state->i2c_read_buffer[1]; -+ -+ mutex_unlock(&state->i2c_buffer_lock); -+ return ret; - } - - static int dib0090_fw_write_reg(struct dib0090_fw_state *state, u8 reg, u16 val) - { -+ int ret; -+ -+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return -EINVAL; -+ } -+ - state->i2c_write_buffer[0] = val >> 8; - state->i2c_write_buffer[1] = val & 0xff; - -@@ -279,9 +320,12 @@ static int dib0090_fw_write_reg(struct dib0090_fw_state *state, u8 reg, u16 val) - state->msg.len = 2; - if (i2c_transfer(state->i2c, &state->msg, 1) != 1) { - printk(KERN_WARNING "DiB0090 I2C write failed\n"); -- return -EREMOTEIO; -- } -- return 0; -+ ret = -EREMOTEIO; -+ } else -+ ret = 0; -+ -+ mutex_unlock(&state->i2c_buffer_lock); -+ return ret; - } - - #define HARD_RESET(state) do { if (cfg->reset) { if (cfg->sleep) cfg->sleep(fe, 0); msleep(10); cfg->reset(fe, 1); msleep(10); cfg->reset(fe, 0); msleep(10); } } while (0) -@@ -2440,6 +2484,7 @@ struct dvb_frontend *dib0090_register(struct dvb_frontend *fe, struct i2c_adapte - st->config = config; - st->i2c = i2c; - st->fe = fe; -+ mutex_init(&st->i2c_buffer_lock); - fe->tuner_priv = st; - - if (config->wbd == NULL) -@@ -2471,6 +2516,7 @@ struct dvb_frontend *dib0090_fw_register(struct dvb_frontend *fe, struct i2c_ada - st->config = config; - st->i2c = i2c; - st->fe = fe; -+ mutex_init(&st->i2c_buffer_lock); - fe->tuner_priv = st; - - if (dib0090_fw_reset_digital(fe, st->config) != 0) -diff --git a/drivers/media/dvb/frontends/dib7000m.c b/drivers/media/dvb/frontends/dib7000m.c -index 79cb1c2..dbb76d7 100644 ---- a/drivers/media/dvb/frontends/dib7000m.c -+++ b/drivers/media/dvb/frontends/dib7000m.c -@@ -11,6 +11,7 @@ - #include <linux/kernel.h> - #include <linux/slab.h> - #include <linux/i2c.h> -+#include <linux/mutex.h> - - #include "dvb_frontend.h" - -@@ -55,6 +56,7 @@ struct dib7000m_state { - struct i2c_msg msg[2]; - u8 i2c_write_buffer[4]; - u8 i2c_read_buffer[2]; -+ struct mutex i2c_buffer_lock; - }; - - enum dib7000m_power_mode { -@@ -69,6 +71,13 @@ enum dib7000m_power_mode { - - static u16 dib7000m_read_word(struct dib7000m_state *state, u16 reg) - { -+ u16 ret; -+ -+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return 0; -+ } -+ - state->i2c_write_buffer[0] = (reg >> 8) | 0x80; - state->i2c_write_buffer[1] = reg & 0xff; - -@@ -85,11 +94,21 @@ static u16 dib7000m_read_word(struct dib7000m_state *state, u16 reg) - if (i2c_transfer(state->i2c_adap, state->msg, 2) != 2) - dprintk("i2c read error on %d",reg); - -- return (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1]; -+ ret = (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1]; -+ mutex_unlock(&state->i2c_buffer_lock); -+ -+ return ret; - } - - static int dib7000m_write_word(struct dib7000m_state *state, u16 reg, u16 val) - { -+ int ret; -+ -+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return -EINVAL; -+ } -+ - state->i2c_write_buffer[0] = (reg >> 8) & 0xff; - state->i2c_write_buffer[1] = reg & 0xff; - state->i2c_write_buffer[2] = (val >> 8) & 0xff; -@@ -101,7 +120,10 @@ static int dib7000m_write_word(struct dib7000m_state *state, u16 reg, u16 val) - state->msg[0].buf = state->i2c_write_buffer; - state->msg[0].len = 4; - -- return i2c_transfer(state->i2c_adap, state->msg, 1) != 1 ? -EREMOTEIO : 0; -+ ret = (i2c_transfer(state->i2c_adap, state->msg, 1) != 1 ? -+ -EREMOTEIO : 0); -+ mutex_unlock(&state->i2c_buffer_lock); -+ return ret; - } - static void dib7000m_write_tab(struct dib7000m_state *state, u16 *buf) - { -@@ -1385,6 +1407,7 @@ struct dvb_frontend * dib7000m_attach(struct i2c_adapter *i2c_adap, u8 i2c_addr, - demod = &st->demod; - demod->demodulator_priv = st; - memcpy(&st->demod.ops, &dib7000m_ops, sizeof(struct dvb_frontend_ops)); -+ mutex_init(&st->i2c_buffer_lock); - - st->timf_default = cfg->bw->timf; - -diff --git a/drivers/media/dvb/frontends/dib7000p.c b/drivers/media/dvb/frontends/dib7000p.c -index 0c9f40c..292bc19 100644 ---- a/drivers/media/dvb/frontends/dib7000p.c -+++ b/drivers/media/dvb/frontends/dib7000p.c -@@ -10,6 +10,7 @@ - #include <linux/kernel.h> - #include <linux/slab.h> - #include <linux/i2c.h> -+#include <linux/mutex.h> - - #include "dvb_math.h" - #include "dvb_frontend.h" -@@ -68,6 +69,7 @@ struct dib7000p_state { - struct i2c_msg msg[2]; - u8 i2c_write_buffer[4]; - u8 i2c_read_buffer[2]; -+ struct mutex i2c_buffer_lock; - }; - - enum dib7000p_power_mode { -@@ -81,6 +83,13 @@ static int dib7090_set_diversity_in(struct dvb_frontend *fe, int onoff); - - static u16 dib7000p_read_word(struct dib7000p_state *state, u16 reg) - { -+ u16 ret; -+ -+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return 0; -+ } -+ - state->i2c_write_buffer[0] = reg >> 8; - state->i2c_write_buffer[1] = reg & 0xff; - -@@ -97,11 +106,20 @@ static u16 dib7000p_read_word(struct dib7000p_state *state, u16 reg) - if (i2c_transfer(state->i2c_adap, state->msg, 2) != 2) - dprintk("i2c read error on %d", reg); - -- return (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1]; -+ ret = (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1]; -+ mutex_unlock(&state->i2c_buffer_lock); -+ return ret; - } - - static int dib7000p_write_word(struct dib7000p_state *state, u16 reg, u16 val) - { -+ int ret; -+ -+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return -EINVAL; -+ } -+ - state->i2c_write_buffer[0] = (reg >> 8) & 0xff; - state->i2c_write_buffer[1] = reg & 0xff; - state->i2c_write_buffer[2] = (val >> 8) & 0xff; -@@ -113,7 +131,10 @@ static int dib7000p_write_word(struct dib7000p_state *state, u16 reg, u16 val) - state->msg[0].buf = state->i2c_write_buffer; - state->msg[0].len = 4; - -- return i2c_transfer(state->i2c_adap, state->msg, 1) != 1 ? -EREMOTEIO : 0; -+ ret = (i2c_transfer(state->i2c_adap, state->msg, 1) != 1 ? -+ -EREMOTEIO : 0); -+ mutex_unlock(&state->i2c_buffer_lock); -+ return ret; - } - - static void dib7000p_write_tab(struct dib7000p_state *state, u16 * buf) -@@ -1646,6 +1667,7 @@ int dib7000p_i2c_enumeration(struct i2c_adapter *i2c, int no_of_demods, u8 defau - return -ENOMEM; - - dpst->i2c_adap = i2c; -+ mutex_init(&dpst->i2c_buffer_lock); - - for (k = no_of_demods - 1; k >= 0; k--) { - dpst->cfg = cfg[k]; -@@ -2324,6 +2346,7 @@ struct dvb_frontend *dib7000p_attach(struct i2c_adapter *i2c_adap, u8 i2c_addr, - demod = &st->demod; - demod->demodulator_priv = st; - memcpy(&st->demod.ops, &dib7000p_ops, sizeof(struct dvb_frontend_ops)); -+ mutex_init(&st->i2c_buffer_lock); - - dib7000p_write_word(st, 1287, 0x0003); /* sram lead in, rdy */ - -@@ -2333,8 +2356,9 @@ struct dvb_frontend *dib7000p_attach(struct i2c_adapter *i2c_adap, u8 i2c_addr, - st->version = dib7000p_read_word(st, 897); - - /* FIXME: make sure the dev.parent field is initialized, or else -- request_firmware() will hit an OOPS (this should be moved somewhere -- more common) */ -+ request_firmware() will hit an OOPS (this should be moved somewhere -+ more common) */ -+ st->i2c_master.gated_tuner_i2c_adap.dev.parent = i2c_adap->dev.parent; - - dibx000_init_i2c_master(&st->i2c_master, DIB7000P, st->i2c_adap, st->i2c_addr); - -diff --git a/drivers/media/dvb/frontends/dib8000.c b/drivers/media/dvb/frontends/dib8000.c -index 7d2ea11..fe284d5 100644 ---- a/drivers/media/dvb/frontends/dib8000.c -+++ b/drivers/media/dvb/frontends/dib8000.c -@@ -10,6 +10,8 @@ - #include <linux/kernel.h> - #include <linux/slab.h> - #include <linux/i2c.h> -+#include <linux/mutex.h> -+ - #include "dvb_math.h" - - #include "dvb_frontend.h" -@@ -37,6 +39,7 @@ struct i2c_device { - u8 addr; - u8 *i2c_write_buffer; - u8 *i2c_read_buffer; -+ struct mutex *i2c_buffer_lock; - }; - - struct dib8000_state { -@@ -77,6 +80,7 @@ struct dib8000_state { - struct i2c_msg msg[2]; - u8 i2c_write_buffer[4]; - u8 i2c_read_buffer[2]; -+ struct mutex i2c_buffer_lock; - }; - - enum dib8000_power_mode { -@@ -86,24 +90,39 @@ enum dib8000_power_mode { - - static u16 dib8000_i2c_read16(struct i2c_device *i2c, u16 reg) - { -+ u16 ret; - struct i2c_msg msg[2] = { -- {.addr = i2c->addr >> 1, .flags = 0, -- .buf = i2c->i2c_write_buffer, .len = 2}, -- {.addr = i2c->addr >> 1, .flags = I2C_M_RD, -- .buf = i2c->i2c_read_buffer, .len = 2}, -+ {.addr = i2c->addr >> 1, .flags = 0, .len = 2}, -+ {.addr = i2c->addr >> 1, .flags = I2C_M_RD, .len = 2}, - }; - -+ if (mutex_lock_interruptible(i2c->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return 0; -+ } -+ -+ msg[0].buf = i2c->i2c_write_buffer; - msg[0].buf[0] = reg >> 8; - msg[0].buf[1] = reg & 0xff; -+ msg[1].buf = i2c->i2c_read_buffer; - - if (i2c_transfer(i2c->adap, msg, 2) != 2) - dprintk("i2c read error on %d", reg); - -- return (msg[1].buf[0] << 8) | msg[1].buf[1]; -+ ret = (msg[1].buf[0] << 8) | msg[1].buf[1]; -+ mutex_unlock(i2c->i2c_buffer_lock); -+ return ret; - } - - static u16 dib8000_read_word(struct dib8000_state *state, u16 reg) - { -+ u16 ret; -+ -+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return 0; -+ } -+ - state->i2c_write_buffer[0] = reg >> 8; - state->i2c_write_buffer[1] = reg & 0xff; - -@@ -120,7 +139,10 @@ static u16 dib8000_read_word(struct dib8000_state *state, u16 reg) - if (i2c_transfer(state->i2c.adap, state->msg, 2) != 2) - dprintk("i2c read error on %d", reg); - -- return (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1]; -+ ret = (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1]; -+ mutex_unlock(&state->i2c_buffer_lock); -+ -+ return ret; - } - - static u32 dib8000_read32(struct dib8000_state *state, u16 reg) -@@ -135,22 +157,35 @@ static u32 dib8000_read32(struct dib8000_state *state, u16 reg) - - static int dib8000_i2c_write16(struct i2c_device *i2c, u16 reg, u16 val) - { -- struct i2c_msg msg = {.addr = i2c->addr >> 1, .flags = 0, -- .buf = i2c->i2c_write_buffer, .len = 4}; -+ struct i2c_msg msg = {.addr = i2c->addr >> 1, .flags = 0, .len = 4}; - int ret = 0; - -+ if (mutex_lock_interruptible(i2c->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return -EINVAL; -+ } -+ -+ msg.buf = i2c->i2c_write_buffer; - msg.buf[0] = (reg >> 8) & 0xff; - msg.buf[1] = reg & 0xff; - msg.buf[2] = (val >> 8) & 0xff; - msg.buf[3] = val & 0xff; - - ret = i2c_transfer(i2c->adap, &msg, 1) != 1 ? -EREMOTEIO : 0; -+ mutex_unlock(i2c->i2c_buffer_lock); - - return ret; - } - - static int dib8000_write_word(struct dib8000_state *state, u16 reg, u16 val) - { -+ int ret; -+ -+ if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return -EINVAL; -+ } -+ - state->i2c_write_buffer[0] = (reg >> 8) & 0xff; - state->i2c_write_buffer[1] = reg & 0xff; - state->i2c_write_buffer[2] = (val >> 8) & 0xff; -@@ -162,7 +197,11 @@ static int dib8000_write_word(struct dib8000_state *state, u16 reg, u16 val) - state->msg[0].buf = state->i2c_write_buffer; - state->msg[0].len = 4; - -- return i2c_transfer(state->i2c.adap, state->msg, 1) != 1 ? -EREMOTEIO : 0; -+ ret = (i2c_transfer(state->i2c.adap, state->msg, 1) != 1 ? -+ -EREMOTEIO : 0); -+ mutex_unlock(&state->i2c_buffer_lock); -+ -+ return ret; - } - - static const s16 coeff_2k_sb_1seg_dqpsk[8] = { -@@ -2434,8 +2473,15 @@ int dib8000_i2c_enumeration(struct i2c_adapter *host, int no_of_demods, u8 defau - if (!client.i2c_read_buffer) { - dprintk("%s: not enough memory", __func__); - ret = -ENOMEM; -- goto error_memory; -+ goto error_memory_read; -+ } -+ client.i2c_buffer_lock = kzalloc(sizeof(struct mutex), GFP_KERNEL); -+ if (!client.i2c_buffer_lock) { -+ dprintk("%s: not enough memory", __func__); -+ ret = -ENOMEM; -+ goto error_memory_lock; - } -+ mutex_init(client.i2c_buffer_lock); - - for (k = no_of_demods - 1; k >= 0; k--) { - /* designated i2c address */ -@@ -2476,8 +2522,10 @@ int dib8000_i2c_enumeration(struct i2c_adapter *host, int no_of_demods, u8 defau - } - - error: -+ kfree(client.i2c_buffer_lock); -+error_memory_lock: - kfree(client.i2c_read_buffer); --error_memory: -+error_memory_read: - kfree(client.i2c_write_buffer); - - return ret; -@@ -2581,6 +2629,8 @@ struct dvb_frontend *dib8000_attach(struct i2c_adapter *i2c_adap, u8 i2c_addr, s - state->i2c.addr = i2c_addr; - state->i2c.i2c_write_buffer = state->i2c_write_buffer; - state->i2c.i2c_read_buffer = state->i2c_read_buffer; -+ mutex_init(&state->i2c_buffer_lock); -+ state->i2c.i2c_buffer_lock = &state->i2c_buffer_lock; - state->gpio_val = cfg->gpio_val; - state->gpio_dir = cfg->gpio_dir; - -diff --git a/drivers/media/dvb/frontends/dib9000.c b/drivers/media/dvb/frontends/dib9000.c -index a085588..b931074 100644 ---- a/drivers/media/dvb/frontends/dib9000.c -+++ b/drivers/media/dvb/frontends/dib9000.c -@@ -38,6 +38,15 @@ struct i2c_device { - #define DibInitLock(lock) mutex_init(lock) - #define DibFreeLock(lock) - -+struct dib9000_pid_ctrl { -+#define DIB9000_PID_FILTER_CTRL 0 -+#define DIB9000_PID_FILTER 1 -+ u8 cmd; -+ u8 id; -+ u16 pid; -+ u8 onoff; -+}; -+ - struct dib9000_state { - struct i2c_device i2c; - -@@ -99,6 +108,10 @@ struct dib9000_state { - struct i2c_msg msg[2]; - u8 i2c_write_buffer[255]; - u8 i2c_read_buffer[255]; -+ DIB_LOCK demod_lock; -+ u8 get_frontend_internal; -+ struct dib9000_pid_ctrl pid_ctrl[10]; -+ s8 pid_ctrl_index; /* -1: empty list; -2: do not use the list */ - }; - - static const u32 fe_info[44] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -@@ -1743,19 +1756,56 @@ EXPORT_SYMBOL(dib9000_set_gpio); - int dib9000_fw_pid_filter_ctrl(struct dvb_frontend *fe, u8 onoff) - { - struct dib9000_state *state = fe->demodulator_priv; -- u16 val = dib9000_read_word(state, 294 + 1) & 0xffef; -+ u16 val; -+ int ret; -+ -+ if ((state->pid_ctrl_index != -2) && (state->pid_ctrl_index < 9)) { -+ /* postpone the pid filtering cmd */ -+ dprintk("pid filter cmd postpone"); -+ state->pid_ctrl_index++; -+ state->pid_ctrl[state->pid_ctrl_index].cmd = DIB9000_PID_FILTER_CTRL; -+ state->pid_ctrl[state->pid_ctrl_index].onoff = onoff; -+ return 0; -+ } -+ -+ DibAcquireLock(&state->demod_lock); -+ -+ val = dib9000_read_word(state, 294 + 1) & 0xffef; - val |= (onoff & 0x1) << 4; - - dprintk("PID filter enabled %d", onoff); -- return dib9000_write_word(state, 294 + 1, val); -+ ret = dib9000_write_word(state, 294 + 1, val); -+ DibReleaseLock(&state->demod_lock); -+ return ret; -+ - } - EXPORT_SYMBOL(dib9000_fw_pid_filter_ctrl); - - int dib9000_fw_pid_filter(struct dvb_frontend *fe, u8 id, u16 pid, u8 onoff) - { - struct dib9000_state *state = fe->demodulator_priv; -+ int ret; -+ -+ if (state->pid_ctrl_index != -2) { -+ /* postpone the pid filtering cmd */ -+ dprintk("pid filter postpone"); -+ if (state->pid_ctrl_index < 9) { -+ state->pid_ctrl_index++; -+ state->pid_ctrl[state->pid_ctrl_index].cmd = DIB9000_PID_FILTER; -+ state->pid_ctrl[state->pid_ctrl_index].id = id; -+ state->pid_ctrl[state->pid_ctrl_index].pid = pid; -+ state->pid_ctrl[state->pid_ctrl_index].onoff = onoff; -+ } else -+ dprintk("can not add any more pid ctrl cmd"); -+ return 0; -+ } -+ -+ DibAcquireLock(&state->demod_lock); - dprintk("Index %x, PID %d, OnOff %d", id, pid, onoff); -- return dib9000_write_word(state, 300 + 1 + id, onoff ? (1 << 13) | pid : 0); -+ ret = dib9000_write_word(state, 300 + 1 + id, -+ onoff ? (1 << 13) | pid : 0); -+ DibReleaseLock(&state->demod_lock); -+ return ret; - } - EXPORT_SYMBOL(dib9000_fw_pid_filter); - -@@ -1778,6 +1828,7 @@ static void dib9000_release(struct dvb_frontend *demod) - DibFreeLock(&state->platform.risc.mbx_lock); - DibFreeLock(&state->platform.risc.mem_lock); - DibFreeLock(&state->platform.risc.mem_mbx_lock); -+ DibFreeLock(&state->demod_lock); - dibx000_exit_i2c_master(&st->i2c_master); - - i2c_del_adapter(&st->tuner_adap); -@@ -1795,14 +1846,19 @@ static int dib9000_sleep(struct dvb_frontend *fe) - { - struct dib9000_state *state = fe->demodulator_priv; - u8 index_frontend; -- int ret; -+ int ret = 0; - -+ DibAcquireLock(&state->demod_lock); - for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) { - ret = state->fe[index_frontend]->ops.sleep(state->fe[index_frontend]); - if (ret < 0) -- return ret; -+ goto error; - } -- return dib9000_mbx_send(state, OUT_MSG_FE_SLEEP, NULL, 0); -+ ret = dib9000_mbx_send(state, OUT_MSG_FE_SLEEP, NULL, 0); -+ -+error: -+ DibReleaseLock(&state->demod_lock); -+ return ret; - } - - static int dib9000_fe_get_tune_settings(struct dvb_frontend *fe, struct dvb_frontend_tune_settings *tune) -@@ -1816,7 +1872,10 @@ static int dib9000_get_frontend(struct dvb_frontend *fe, struct dvb_frontend_par - struct dib9000_state *state = fe->demodulator_priv; - u8 index_frontend, sub_index_frontend; - fe_status_t stat; -- int ret; -+ int ret = 0; -+ -+ if (state->get_frontend_internal == 0) -+ DibAcquireLock(&state->demod_lock); - - for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) { - state->fe[index_frontend]->ops.read_status(state->fe[index_frontend], &stat); -@@ -1846,14 +1905,15 @@ static int dib9000_get_frontend(struct dvb_frontend *fe, struct dvb_frontend_par - state->fe[index_frontend]->dtv_property_cache.rolloff; - } - } -- return 0; -+ ret = 0; -+ goto return_value; - } - } - - /* get the channel from master chip */ - ret = dib9000_fw_get_channel(fe, fep); - if (ret != 0) -- return ret; -+ goto return_value; - - /* synchronize the cache with the other frontends */ - for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) { -@@ -1866,8 +1926,12 @@ static int dib9000_get_frontend(struct dvb_frontend *fe, struct dvb_frontend_par - state->fe[index_frontend]->dtv_property_cache.code_rate_LP = fe->dtv_property_cache.code_rate_LP; - state->fe[index_frontend]->dtv_property_cache.rolloff = fe->dtv_property_cache.rolloff; - } -+ ret = 0; - -- return 0; -+return_value: -+ if (state->get_frontend_internal == 0) -+ DibReleaseLock(&state->demod_lock); -+ return ret; - } - - static int dib9000_set_tune_state(struct dvb_frontend *fe, enum frontend_tune_state tune_state) -@@ -1912,6 +1976,10 @@ static int dib9000_set_frontend(struct dvb_frontend *fe, struct dvb_frontend_par - dprintk("dib9000: must specify bandwidth "); - return 0; - } -+ -+ state->pid_ctrl_index = -1; /* postpone the pid filtering cmd */ -+ DibAcquireLock(&state->demod_lock); -+ - fe->dtv_property_cache.delivery_system = SYS_DVBT; - - /* set the master status */ -@@ -1974,13 +2042,18 @@ static int dib9000_set_frontend(struct dvb_frontend *fe, struct dvb_frontend_par - /* check the tune result */ - if (exit_condition == 1) { /* tune failed */ - dprintk("tune failed"); -+ DibReleaseLock(&state->demod_lock); -+ /* tune failed; put all the pid filtering cmd to junk */ -+ state->pid_ctrl_index = -1; - return 0; - } - - dprintk("tune success on frontend%i", index_frontend_success); - - /* synchronize all the channel cache */ -+ state->get_frontend_internal = 1; - dib9000_get_frontend(state->fe[0], fep); -+ state->get_frontend_internal = 0; - - /* retune the other frontends with the found channel */ - channel_status.status = CHANNEL_STATUS_PARAMETERS_SET; -@@ -2025,6 +2098,28 @@ static int dib9000_set_frontend(struct dvb_frontend *fe, struct dvb_frontend_par - /* turn off the diversity for the last frontend */ - dib9000_fw_set_diversity_in(state->fe[index_frontend - 1], 0); - -+ DibReleaseLock(&state->demod_lock); -+ if (state->pid_ctrl_index >= 0) { -+ u8 index_pid_filter_cmd; -+ u8 pid_ctrl_index = state->pid_ctrl_index; -+ -+ state->pid_ctrl_index = -2; -+ for (index_pid_filter_cmd = 0; -+ index_pid_filter_cmd <= pid_ctrl_index; -+ index_pid_filter_cmd++) { -+ if (state->pid_ctrl[index_pid_filter_cmd].cmd == DIB9000_PID_FILTER_CTRL) -+ dib9000_fw_pid_filter_ctrl(state->fe[0], -+ state->pid_ctrl[index_pid_filter_cmd].onoff); -+ else if (state->pid_ctrl[index_pid_filter_cmd].cmd == DIB9000_PID_FILTER) -+ dib9000_fw_pid_filter(state->fe[0], -+ state->pid_ctrl[index_pid_filter_cmd].id, -+ state->pid_ctrl[index_pid_filter_cmd].pid, -+ state->pid_ctrl[index_pid_filter_cmd].onoff); -+ } -+ } -+ /* do not postpone any more the pid filtering */ -+ state->pid_ctrl_index = -2; -+ - return 0; - } - -@@ -2041,6 +2136,7 @@ static int dib9000_read_status(struct dvb_frontend *fe, fe_status_t * stat) - u8 index_frontend; - u16 lock = 0, lock_slave = 0; - -+ DibAcquireLock(&state->demod_lock); - for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) - lock_slave |= dib9000_read_lock(state->fe[index_frontend]); - -@@ -2059,6 +2155,8 @@ static int dib9000_read_status(struct dvb_frontend *fe, fe_status_t * stat) - if ((lock & 0x0008) || (lock_slave & 0x0008)) - *stat |= FE_HAS_LOCK; - -+ DibReleaseLock(&state->demod_lock); -+ - return 0; - } - -@@ -2066,10 +2164,14 @@ static int dib9000_read_ber(struct dvb_frontend *fe, u32 * ber) - { - struct dib9000_state *state = fe->demodulator_priv; - u16 *c; -+ int ret = 0; - -+ DibAcquireLock(&state->demod_lock); - DibAcquireLock(&state->platform.risc.mem_mbx_lock); -- if (dib9000_fw_memmbx_sync(state, FE_SYNC_CHANNEL) < 0) -- return -EIO; -+ if (dib9000_fw_memmbx_sync(state, FE_SYNC_CHANNEL) < 0) { -+ ret = -EIO; -+ goto error; -+ } - dib9000_risc_mem_read(state, FE_MM_R_FE_MONITOR, - state->i2c_read_buffer, 16 * 2); - DibReleaseLock(&state->platform.risc.mem_mbx_lock); -@@ -2077,7 +2179,10 @@ static int dib9000_read_ber(struct dvb_frontend *fe, u32 * ber) - c = (u16 *)state->i2c_read_buffer; - - *ber = c[10] << 16 | c[11]; -- return 0; -+ -+error: -+ DibReleaseLock(&state->demod_lock); -+ return ret; - } - - static int dib9000_read_signal_strength(struct dvb_frontend *fe, u16 * strength) -@@ -2086,7 +2191,9 @@ static int dib9000_read_signal_strength(struct dvb_frontend *fe, u16 * strength) - u8 index_frontend; - u16 *c = (u16 *)state->i2c_read_buffer; - u16 val; -+ int ret = 0; - -+ DibAcquireLock(&state->demod_lock); - *strength = 0; - for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) { - state->fe[index_frontend]->ops.read_signal_strength(state->fe[index_frontend], &val); -@@ -2097,8 +2204,10 @@ static int dib9000_read_signal_strength(struct dvb_frontend *fe, u16 * strength) - } - - DibAcquireLock(&state->platform.risc.mem_mbx_lock); -- if (dib9000_fw_memmbx_sync(state, FE_SYNC_CHANNEL) < 0) -- return -EIO; -+ if (dib9000_fw_memmbx_sync(state, FE_SYNC_CHANNEL) < 0) { -+ ret = -EIO; -+ goto error; -+ } - dib9000_risc_mem_read(state, FE_MM_R_FE_MONITOR, (u8 *) c, 16 * 2); - DibReleaseLock(&state->platform.risc.mem_mbx_lock); - -@@ -2107,7 +2216,10 @@ static int dib9000_read_signal_strength(struct dvb_frontend *fe, u16 * strength) - *strength = 65535; - else - *strength += val; -- return 0; -+ -+error: -+ DibReleaseLock(&state->demod_lock); -+ return ret; - } - - static u32 dib9000_get_snr(struct dvb_frontend *fe) -@@ -2151,6 +2263,7 @@ static int dib9000_read_snr(struct dvb_frontend *fe, u16 * snr) - u8 index_frontend; - u32 snr_master; - -+ DibAcquireLock(&state->demod_lock); - snr_master = dib9000_get_snr(fe); - for (index_frontend = 1; (index_frontend < MAX_NUMBER_OF_FRONTENDS) && (state->fe[index_frontend] != NULL); index_frontend++) - snr_master += dib9000_get_snr(state->fe[index_frontend]); -@@ -2161,6 +2274,8 @@ static int dib9000_read_snr(struct dvb_frontend *fe, u16 * snr) - } else - *snr = 0; - -+ DibReleaseLock(&state->demod_lock); -+ - return 0; - } - -@@ -2168,15 +2283,22 @@ static int dib9000_read_unc_blocks(struct dvb_frontend *fe, u32 * unc) - { - struct dib9000_state *state = fe->demodulator_priv; - u16 *c = (u16 *)state->i2c_read_buffer; -+ int ret = 0; - -+ DibAcquireLock(&state->demod_lock); - DibAcquireLock(&state->platform.risc.mem_mbx_lock); -- if (dib9000_fw_memmbx_sync(state, FE_SYNC_CHANNEL) < 0) -- return -EIO; -+ if (dib9000_fw_memmbx_sync(state, FE_SYNC_CHANNEL) < 0) { -+ ret = -EIO; -+ goto error; -+ } - dib9000_risc_mem_read(state, FE_MM_R_FE_MONITOR, (u8 *) c, 16 * 2); - DibReleaseLock(&state->platform.risc.mem_mbx_lock); - - *unc = c[12]; -- return 0; -+ -+error: -+ DibReleaseLock(&state->demod_lock); -+ return ret; - } - - int dib9000_i2c_enumeration(struct i2c_adapter *i2c, int no_of_demods, u8 default_addr, u8 first_addr) -@@ -2322,6 +2444,10 @@ struct dvb_frontend *dib9000_attach(struct i2c_adapter *i2c_adap, u8 i2c_addr, c - DibInitLock(&st->platform.risc.mbx_lock); - DibInitLock(&st->platform.risc.mem_lock); - DibInitLock(&st->platform.risc.mem_mbx_lock); -+ DibInitLock(&st->demod_lock); -+ st->get_frontend_internal = 0; -+ -+ st->pid_ctrl_index = -2; - - st->fe[0] = fe; - fe->demodulator_priv = st; -diff --git a/drivers/media/dvb/frontends/dibx000_common.c b/drivers/media/dvb/frontends/dibx000_common.c -index dc5d17a..774d507 100644 ---- a/drivers/media/dvb/frontends/dibx000_common.c -+++ b/drivers/media/dvb/frontends/dibx000_common.c -@@ -1,4 +1,5 @@ - #include <linux/i2c.h> -+#include <linux/mutex.h> - - #include "dibx000_common.h" - -@@ -10,6 +11,13 @@ MODULE_PARM_DESC(debug, "turn on debugging (default: 0)"); - - static int dibx000_write_word(struct dibx000_i2c_master *mst, u16 reg, u16 val) - { -+ int ret; -+ -+ if (mutex_lock_interruptible(&mst->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return -EINVAL; -+ } -+ - mst->i2c_write_buffer[0] = (reg >> 8) & 0xff; - mst->i2c_write_buffer[1] = reg & 0xff; - mst->i2c_write_buffer[2] = (val >> 8) & 0xff; -@@ -21,11 +29,21 @@ static int dibx000_write_word(struct dibx000_i2c_master *mst, u16 reg, u16 val) - mst->msg[0].buf = mst->i2c_write_buffer; - mst->msg[0].len = 4; - -- return i2c_transfer(mst->i2c_adap, mst->msg, 1) != 1 ? -EREMOTEIO : 0; -+ ret = i2c_transfer(mst->i2c_adap, mst->msg, 1) != 1 ? -EREMOTEIO : 0; -+ mutex_unlock(&mst->i2c_buffer_lock); -+ -+ return ret; - } - - static u16 dibx000_read_word(struct dibx000_i2c_master *mst, u16 reg) - { -+ u16 ret; -+ -+ if (mutex_lock_interruptible(&mst->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return 0; -+ } -+ - mst->i2c_write_buffer[0] = reg >> 8; - mst->i2c_write_buffer[1] = reg & 0xff; - -@@ -42,7 +60,10 @@ static u16 dibx000_read_word(struct dibx000_i2c_master *mst, u16 reg) - if (i2c_transfer(mst->i2c_adap, mst->msg, 2) != 2) - dprintk("i2c read error on %d", reg); - -- return (mst->i2c_read_buffer[0] << 8) | mst->i2c_read_buffer[1]; -+ ret = (mst->i2c_read_buffer[0] << 8) | mst->i2c_read_buffer[1]; -+ mutex_unlock(&mst->i2c_buffer_lock); -+ -+ return ret; - } - - static int dibx000_is_i2c_done(struct dibx000_i2c_master *mst) -@@ -257,6 +278,7 @@ static int dibx000_i2c_gated_gpio67_xfer(struct i2c_adapter *i2c_adap, - struct i2c_msg msg[], int num) - { - struct dibx000_i2c_master *mst = i2c_get_adapdata(i2c_adap); -+ int ret; - - if (num > 32) { - dprintk("%s: too much I2C message to be transmitted (%i).\ -@@ -264,10 +286,15 @@ static int dibx000_i2c_gated_gpio67_xfer(struct i2c_adapter *i2c_adap, - return -ENOMEM; - } - -- memset(mst->msg, 0, sizeof(struct i2c_msg) * (2 + num)); -- - dibx000_i2c_select_interface(mst, DIBX000_I2C_INTERFACE_GPIO_6_7); - -+ if (mutex_lock_interruptible(&mst->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return -EINVAL; -+ } -+ -+ memset(mst->msg, 0, sizeof(struct i2c_msg) * (2 + num)); -+ - /* open the gate */ - dibx000_i2c_gate_ctrl(mst, &mst->i2c_write_buffer[0], msg[0].addr, 1); - mst->msg[0].addr = mst->i2c_addr; -@@ -282,7 +309,11 @@ static int dibx000_i2c_gated_gpio67_xfer(struct i2c_adapter *i2c_adap, - mst->msg[num + 1].buf = &mst->i2c_write_buffer[4]; - mst->msg[num + 1].len = 4; - -- return i2c_transfer(mst->i2c_adap, mst->msg, 2 + num) == 2 + num ? num : -EIO; -+ ret = (i2c_transfer(mst->i2c_adap, mst->msg, 2 + num) == 2 + num ? -+ num : -EIO); -+ -+ mutex_unlock(&mst->i2c_buffer_lock); -+ return ret; - } - - static struct i2c_algorithm dibx000_i2c_gated_gpio67_algo = { -@@ -294,6 +325,7 @@ static int dibx000_i2c_gated_tuner_xfer(struct i2c_adapter *i2c_adap, - struct i2c_msg msg[], int num) - { - struct dibx000_i2c_master *mst = i2c_get_adapdata(i2c_adap); -+ int ret; - - if (num > 32) { - dprintk("%s: too much I2C message to be transmitted (%i).\ -@@ -301,10 +333,14 @@ static int dibx000_i2c_gated_tuner_xfer(struct i2c_adapter *i2c_adap, - return -ENOMEM; - } - -- memset(mst->msg, 0, sizeof(struct i2c_msg) * (2 + num)); -- - dibx000_i2c_select_interface(mst, DIBX000_I2C_INTERFACE_TUNER); - -+ if (mutex_lock_interruptible(&mst->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return -EINVAL; -+ } -+ memset(mst->msg, 0, sizeof(struct i2c_msg) * (2 + num)); -+ - /* open the gate */ - dibx000_i2c_gate_ctrl(mst, &mst->i2c_write_buffer[0], msg[0].addr, 1); - mst->msg[0].addr = mst->i2c_addr; -@@ -319,7 +355,10 @@ static int dibx000_i2c_gated_tuner_xfer(struct i2c_adapter *i2c_adap, - mst->msg[num + 1].buf = &mst->i2c_write_buffer[4]; - mst->msg[num + 1].len = 4; - -- return i2c_transfer(mst->i2c_adap, mst->msg, 2 + num) == 2 + num ? num : -EIO; -+ ret = (i2c_transfer(mst->i2c_adap, mst->msg, 2 + num) == 2 + num ? -+ num : -EIO); -+ mutex_unlock(&mst->i2c_buffer_lock); -+ return ret; - } - - static struct i2c_algorithm dibx000_i2c_gated_tuner_algo = { -@@ -390,8 +429,18 @@ static int i2c_adapter_init(struct i2c_adapter *i2c_adap, - int dibx000_init_i2c_master(struct dibx000_i2c_master *mst, u16 device_rev, - struct i2c_adapter *i2c_adap, u8 i2c_addr) - { -- u8 tx[4]; -- struct i2c_msg m = {.addr = i2c_addr >> 1,.buf = tx,.len = 4 }; -+ int ret; -+ -+ mutex_init(&mst->i2c_buffer_lock); -+ if (mutex_lock_interruptible(&mst->i2c_buffer_lock) < 0) { -+ dprintk("could not acquire lock"); -+ return -EINVAL; -+ } -+ memset(mst->msg, 0, sizeof(struct i2c_msg)); -+ mst->msg[0].addr = i2c_addr >> 1; -+ mst->msg[0].flags = 0; -+ mst->msg[0].buf = mst->i2c_write_buffer; -+ mst->msg[0].len = 4; - - mst->device_rev = device_rev; - mst->i2c_adap = i2c_adap; -@@ -431,9 +480,12 @@ int dibx000_init_i2c_master(struct dibx000_i2c_master *mst, u16 device_rev, - "DiBX000: could not initialize the master i2c_adapter\n"); - - /* initialize the i2c-master by closing the gate */ -- dibx000_i2c_gate_ctrl(mst, tx, 0, 0); -+ dibx000_i2c_gate_ctrl(mst, mst->i2c_write_buffer, 0, 0); -+ -+ ret = (i2c_transfer(i2c_adap, mst->msg, 1) == 1); -+ mutex_unlock(&mst->i2c_buffer_lock); - -- return i2c_transfer(i2c_adap, &m, 1) == 1; -+ return ret; - } - - EXPORT_SYMBOL(dibx000_init_i2c_master); -diff --git a/drivers/media/dvb/frontends/dibx000_common.h b/drivers/media/dvb/frontends/dibx000_common.h -index f031165..5e01147 100644 ---- a/drivers/media/dvb/frontends/dibx000_common.h -+++ b/drivers/media/dvb/frontends/dibx000_common.h -@@ -33,6 +33,7 @@ struct dibx000_i2c_master { - struct i2c_msg msg[34]; - u8 i2c_write_buffer[8]; - u8 i2c_read_buffer[2]; -+ struct mutex i2c_buffer_lock; - }; - - extern int dibx000_init_i2c_master(struct dibx000_i2c_master *mst, -commit 45cbff13693d645fa5dcbba964e802e1746b2e57 -Author: Olivier Grenie <olivier.grenie@dibcom.fr> -Date: Mon Aug 1 17:45:58 2011 +0200 - - [media] dib0700: protect the dib0700 buffer access - - This patch protects the common buffer access inside the dib0700 in order - to manage concurrent access. This protection is done using mutex. - - Cc: Mauro Carvalho Chehab <mchehab@redhat.com> - Cc: Florian Mickler <florian@mickler.org> - Cc: stable@kernel.org - - Signed-off-by: Javier Marcet <javier@marcet.info> - Signed-off-by: Olivier Grenie <olivier.grenie@dibcom.fr> - Signed-off-by: Patrick Boettcher <patrick.boettcher@dibcom.fr> - -diff --git a/drivers/media/dvb/dvb-usb/dib0700_core.c b/drivers/media/dvb/dvb-usb/dib0700_core.c -index 5eb91b4..291b645 100644 ---- a/drivers/media/dvb/dvb-usb/dib0700_core.c -+++ b/drivers/media/dvb/dvb-usb/dib0700_core.c -@@ -30,6 +30,11 @@ int dib0700_get_version(struct dvb_usb_device *d, u32 *hwversion, - struct dib0700_state *st = d->priv; - int ret; - -+ if (mutex_lock_interruptible(&d->usb_mutex) < 0) { -+ dprintk("could not acquire lock"); -+ return 0; -+ } -+ - ret = usb_control_msg(d->udev, usb_rcvctrlpipe(d->udev, 0), - REQUEST_GET_VERSION, - USB_TYPE_VENDOR | USB_DIR_IN, 0, 0, -@@ -46,6 +51,7 @@ int dib0700_get_version(struct dvb_usb_device *d, u32 *hwversion, - if (fwtype != NULL) - *fwtype = (st->buf[12] << 24) | (st->buf[13] << 16) | - (st->buf[14] << 8) | st->buf[15]; -+ mutex_unlock(&d->usb_mutex); - return ret; - } - -@@ -108,7 +114,12 @@ int dib0700_ctrl_rd(struct dvb_usb_device *d, u8 *tx, u8 txlen, u8 *rx, u8 rxlen - int dib0700_set_gpio(struct dvb_usb_device *d, enum dib07x0_gpios gpio, u8 gpio_dir, u8 gpio_val) - { - struct dib0700_state *st = d->priv; -- s16 ret; -+ int ret; -+ -+ if (mutex_lock_interruptible(&d->usb_mutex) < 0) { -+ dprintk("could not acquire lock"); -+ return 0; -+ } - - st->buf[0] = REQUEST_SET_GPIO; - st->buf[1] = gpio; -@@ -116,6 +127,7 @@ int dib0700_set_gpio(struct dvb_usb_device *d, enum dib07x0_gpios gpio, u8 gpio_ - - ret = dib0700_ctrl_wr(d, st->buf, 3); - -+ mutex_unlock(&d->usb_mutex); - return ret; - } - -@@ -125,6 +137,11 @@ static int dib0700_set_usb_xfer_len(struct dvb_usb_device *d, u16 nb_ts_packets) - int ret; - - if (st->fw_version >= 0x10201) { -+ if (mutex_lock_interruptible(&d->usb_mutex) < 0) { -+ dprintk("could not acquire lock"); -+ return 0; -+ } -+ - st->buf[0] = REQUEST_SET_USB_XFER_LEN; - st->buf[1] = (nb_ts_packets >> 8) & 0xff; - st->buf[2] = nb_ts_packets & 0xff; -@@ -132,6 +149,7 @@ static int dib0700_set_usb_xfer_len(struct dvb_usb_device *d, u16 nb_ts_packets) - deb_info("set the USB xfer len to %i Ts packet\n", nb_ts_packets); - - ret = dib0700_ctrl_wr(d, st->buf, 3); -+ mutex_unlock(&d->usb_mutex); - } else { - deb_info("this firmware does not allow to change the USB xfer len\n"); - ret = -EIO; -@@ -208,6 +226,10 @@ static int dib0700_i2c_xfer_new(struct i2c_adapter *adap, struct i2c_msg *msg, - - } else { - /* Write request */ -+ if (mutex_lock_interruptible(&d->usb_mutex) < 0) { -+ dprintk("could not acquire lock"); -+ return 0; -+ } - st->buf[0] = REQUEST_NEW_I2C_WRITE; - st->buf[1] = msg[i].addr << 1; - st->buf[2] = (en_start << 7) | (en_stop << 6) | -@@ -227,6 +249,7 @@ static int dib0700_i2c_xfer_new(struct i2c_adapter *adap, struct i2c_msg *msg, - USB_TYPE_VENDOR | USB_DIR_OUT, - 0, 0, st->buf, msg[i].len + 4, - USB_CTRL_GET_TIMEOUT); -+ mutex_unlock(&d->usb_mutex); - if (result < 0) { - deb_info("i2c write error (status = %d)\n", result); - break; -@@ -249,6 +272,10 @@ static int dib0700_i2c_xfer_legacy(struct i2c_adapter *adap, - - if (mutex_lock_interruptible(&d->i2c_mutex) < 0) - return -EAGAIN; -+ if (mutex_lock_interruptible(&d->usb_mutex) < 0) { -+ dprintk("could not acquire lock"); -+ return 0; -+ } - - for (i = 0; i < num; i++) { - /* fill in the address */ -@@ -279,6 +306,7 @@ static int dib0700_i2c_xfer_legacy(struct i2c_adapter *adap, - break; - } - } -+ mutex_unlock(&d->usb_mutex); - mutex_unlock(&d->i2c_mutex); - - return i; -@@ -337,7 +365,12 @@ static int dib0700_set_clock(struct dvb_usb_device *d, u8 en_pll, - u16 pll_loopdiv, u16 free_div, u16 dsuScaler) - { - struct dib0700_state *st = d->priv; -- s16 ret; -+ int ret; -+ -+ if (mutex_lock_interruptible(&d->usb_mutex) < 0) { -+ dprintk("could not acquire lock"); -+ return 0; -+ } - - st->buf[0] = REQUEST_SET_CLOCK; - st->buf[1] = (en_pll << 7) | (pll_src << 6) | -@@ -352,6 +385,7 @@ static int dib0700_set_clock(struct dvb_usb_device *d, u8 en_pll, - st->buf[9] = dsuScaler & 0xff; /* LSB */ - - ret = dib0700_ctrl_wr(d, st->buf, 10); -+ mutex_unlock(&d->usb_mutex); - - return ret; - } -@@ -360,10 +394,16 @@ int dib0700_set_i2c_speed(struct dvb_usb_device *d, u16 scl_kHz) - { - struct dib0700_state *st = d->priv; - u16 divider; -+ int ret; - - if (scl_kHz == 0) - return -EINVAL; - -+ if (mutex_lock_interruptible(&d->usb_mutex) < 0) { -+ dprintk("could not acquire lock"); -+ return 0; -+ } -+ - st->buf[0] = REQUEST_SET_I2C_PARAM; - divider = (u16) (30000 / scl_kHz); - st->buf[1] = 0; -@@ -379,7 +419,11 @@ int dib0700_set_i2c_speed(struct dvb_usb_device *d, u16 scl_kHz) - deb_info("setting I2C speed: %04x %04x %04x (%d kHz).", - (st->buf[2] << 8) | (st->buf[3]), (st->buf[4] << 8) | - st->buf[5], (st->buf[6] << 8) | st->buf[7], scl_kHz); -- return dib0700_ctrl_wr(d, st->buf, 8); -+ -+ ret = dib0700_ctrl_wr(d, st->buf, 8); -+ mutex_unlock(&d->usb_mutex); -+ -+ return ret; - } - - -@@ -515,6 +559,11 @@ int dib0700_streaming_ctrl(struct dvb_usb_adapter *adap, int onoff) - } - } - -+ if (mutex_lock_interruptible(&adap->dev->usb_mutex) < 0) { -+ dprintk("could not acquire lock"); -+ return 0; -+ } -+ - st->buf[0] = REQUEST_ENABLE_VIDEO; - /* this bit gives a kind of command, - * rather than enabling something or not */ -@@ -548,7 +597,10 @@ int dib0700_streaming_ctrl(struct dvb_usb_adapter *adap, int onoff) - - deb_info("data for streaming: %x %x\n", st->buf[1], st->buf[2]); - -- return dib0700_ctrl_wr(adap->dev, st->buf, 4); -+ ret = dib0700_ctrl_wr(adap->dev, st->buf, 4); -+ mutex_unlock(&adap->dev->usb_mutex); -+ -+ return ret; - } - - int dib0700_change_protocol(struct rc_dev *rc, u64 rc_type) -@@ -557,6 +609,11 @@ int dib0700_change_protocol(struct rc_dev *rc, u64 rc_type) - struct dib0700_state *st = d->priv; - int new_proto, ret; - -+ if (mutex_lock_interruptible(&d->usb_mutex) < 0) { -+ dprintk("could not acquire lock"); -+ return 0; -+ } -+ - st->buf[0] = REQUEST_SET_RC; - st->buf[1] = 0; - st->buf[2] = 0; -@@ -567,23 +624,29 @@ int dib0700_change_protocol(struct rc_dev *rc, u64 rc_type) - else if (rc_type == RC_TYPE_NEC) - new_proto = 0; - else if (rc_type == RC_TYPE_RC6) { -- if (st->fw_version < 0x10200) -- return -EINVAL; -+ if (st->fw_version < 0x10200) { -+ ret = -EINVAL; -+ goto out; -+ } - - new_proto = 2; -- } else -- return -EINVAL; -+ } else { -+ ret = -EINVAL; -+ goto out; -+ } - - st->buf[1] = new_proto; - - ret = dib0700_ctrl_wr(d, st->buf, 3); - if (ret < 0) { - err("ir protocol setup failed"); -- return ret; -+ goto out; - } - - d->props.rc.core.protocol = rc_type; - -+out: -+ mutex_unlock(&d->usb_mutex); - return ret; - } - -commit aeb2d456b746164a4bd19e53de0a6678ca63fcad -Author: Olivier Grenie <olivier.grenie@dibcom.fr> -Date: Thu Aug 4 18:10:03 2011 +0200 - - [media] dib0700: correct error message - - The goal of this patch is to correct a previous patch. In case of error, - the err() function should be used instead of dprintk() function. - - Signed-off-by: Olivier Grenie <olivier.grenie@dibcom.fr> - -diff --git a/drivers/media/dvb/dvb-usb/dib0700_core.c b/drivers/media/dvb/dvb-usb/dib0700_core.c -index 291b645..b693ed1 100644 ---- a/drivers/media/dvb/dvb-usb/dib0700_core.c -+++ b/drivers/media/dvb/dvb-usb/dib0700_core.c -@@ -31,7 +31,7 @@ int dib0700_get_version(struct dvb_usb_device *d, u32 *hwversion, - int ret; - - if (mutex_lock_interruptible(&d->usb_mutex) < 0) { -- dprintk("could not acquire lock"); -+ err("could not acquire lock"); - return 0; - } - -@@ -117,7 +117,7 @@ int dib0700_set_gpio(struct dvb_usb_device *d, enum dib07x0_gpios gpio, u8 gpio_ - int ret; - - if (mutex_lock_interruptible(&d->usb_mutex) < 0) { -- dprintk("could not acquire lock"); -+ err("could not acquire lock"); - return 0; - } - -@@ -138,7 +138,7 @@ static int dib0700_set_usb_xfer_len(struct dvb_usb_device *d, u16 nb_ts_packets) - - if (st->fw_version >= 0x10201) { - if (mutex_lock_interruptible(&d->usb_mutex) < 0) { -- dprintk("could not acquire lock"); -+ err("could not acquire lock"); - return 0; - } - -@@ -227,7 +227,7 @@ static int dib0700_i2c_xfer_new(struct i2c_adapter *adap, struct i2c_msg *msg, - } else { - /* Write request */ - if (mutex_lock_interruptible(&d->usb_mutex) < 0) { -- dprintk("could not acquire lock"); -+ err("could not acquire lock"); - return 0; - } - st->buf[0] = REQUEST_NEW_I2C_WRITE; -@@ -273,7 +273,7 @@ static int dib0700_i2c_xfer_legacy(struct i2c_adapter *adap, - if (mutex_lock_interruptible(&d->i2c_mutex) < 0) - return -EAGAIN; - if (mutex_lock_interruptible(&d->usb_mutex) < 0) { -- dprintk("could not acquire lock"); -+ err("could not acquire lock"); - return 0; - } - -@@ -368,7 +368,7 @@ static int dib0700_set_clock(struct dvb_usb_device *d, u8 en_pll, - int ret; - - if (mutex_lock_interruptible(&d->usb_mutex) < 0) { -- dprintk("could not acquire lock"); -+ err("could not acquire lock"); - return 0; - } - -@@ -400,7 +400,7 @@ int dib0700_set_i2c_speed(struct dvb_usb_device *d, u16 scl_kHz) - return -EINVAL; - - if (mutex_lock_interruptible(&d->usb_mutex) < 0) { -- dprintk("could not acquire lock"); -+ err("could not acquire lock"); - return 0; - } - -@@ -560,7 +560,7 @@ int dib0700_streaming_ctrl(struct dvb_usb_adapter *adap, int onoff) - } - - if (mutex_lock_interruptible(&adap->dev->usb_mutex) < 0) { -- dprintk("could not acquire lock"); -+ err("could not acquire lock"); - return 0; - } - -@@ -610,7 +610,7 @@ int dib0700_change_protocol(struct rc_dev *rc, u64 rc_type) - int new_proto, ret; - - if (mutex_lock_interruptible(&d->usb_mutex) < 0) { -- dprintk("could not acquire lock"); -+ err("could not acquire lock"); - return 0; - } - diff --git a/kernels/linux-libre-aufs_friendly/ext4-options.patch b/kernels/linux-libre-aufs_friendly/ext4-options.patch index ef1b2417d..ea48c384b 100644 --- a/kernels/linux-libre-aufs_friendly/ext4-options.patch +++ b/kernels/linux-libre-aufs_friendly/ext4-options.patch @@ -47,3 +47,4 @@ index 502c61f..30de9cd 100644 default: ext4_msg(sb, KERN_ERR, "Unrecognized mount option \"%s\" " + diff --git a/kernels/linux-libre-aufs_friendly/fix-i915.patch b/kernels/linux-libre-aufs_friendly/fix-i915.patch deleted file mode 100644 index 3b631361a..000000000 --- a/kernels/linux-libre-aufs_friendly/fix-i915.patch +++ /dev/null @@ -1,26 +0,0 @@ -Signed-off-by: Zhao Yakui <yakui.zhao@intel.com> -Tested-by: Santi <santi@agolina.net> ---- - drivers/gpu/drm/i915/intel_tv.c | 9 +++++++++ - 1 files changed, 9 insertions(+), 0 deletions(-) - -diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c -index dc83b7a..c8f67bf 100644 ---- a/drivers/gpu/drm/i915/intel_tv.c -+++ b/drivers/gpu/drm/i915/intel_tv.c -@@ -1267,6 +1267,15 @@ - DAC_B_0_7_V | - DAC_C_0_7_V); - -+ /* -+ * The TV sense state should be cleared to zero on cantiga platform. Otherwise -+ * the TV is misdetected. This is hardware requirement. -+ */ -+ if (IS_GM45(dev)) -+ tv_dac &= ~(TVDAC_STATE_CHG_EN | TVDAC_A_SENSE_CTL | -+ TVDAC_B_SENSE_CTL | TVDAC_C_SENSE_CTL); -+ -+ - I915_WRITE(TV_CTL, tv_ctl); - I915_WRITE(TV_DAC, tv_dac); - POSTING_READ(TV_DAC); diff --git a/kernels/linux-libre-aufs_friendly/i915-fix-incorrect-error-message.patch b/kernels/linux-libre-aufs_friendly/i915-fix-incorrect-error-message.patch deleted file mode 100644 index e1addbb05..000000000 --- a/kernels/linux-libre-aufs_friendly/i915-fix-incorrect-error-message.patch +++ /dev/null @@ -1,22 +0,0 @@ -commit 6c76e0b94e484ffbdf38d2fe2769b6ca9aa99de4 -Author: Thomas Bächler <thomas@archlinux.org> -Date: Mon Oct 31 19:16:18 2011 +0100 - - Change accidental error message to debug message. - - According to https://lkml.org/lkml/2011/9/19/80, this is not supposed - to be an error message, but a debug message. This worries users. - -diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c -index 04411ad..02d5794 100644 ---- a/drivers/gpu/drm/i915/intel_display.c -+++ b/drivers/gpu/drm/i915/intel_display.c -@@ -5172,7 +5172,7 @@ static void ironlake_update_pch_refclk(struct drm_device *dev) - } else { - /* Enable SSC on PCH eDP if needed */ - if (intel_panel_use_ssc(dev_priv)) { -- DRM_ERROR("enabling SSC on PCH\n"); -+ DRM_DEBUG("enabling SSC on PCH\n"); - temp |= DREF_SUPERSPREAD_SOURCE_ENABLE; - } - } diff --git a/kernels/linux-libre-aufs_friendly/i915-gpu-finish.patch b/kernels/linux-libre-aufs_friendly/i915-gpu-finish.patch deleted file mode 100644 index 5840c9181..000000000 --- a/kernels/linux-libre-aufs_friendly/i915-gpu-finish.patch +++ /dev/null @@ -1,55 +0,0 @@ -commit 389a55581e30607af0fcde6cdb4e54f189cf46cf -Author: Chris Wilson <chris@chris-wilson.co.uk> -Date: Tue Nov 29 15:12:16 2011 +0000 - - drm/i915: Only clear the GPU domains upon a successful finish - - By clearing the GPU read domains before waiting upon the buffer, we run - the risk of the wait being interrupted and the domains prematurely - cleared. The next time we attempt to wait upon the buffer (after - userspace handles the signal), we believe that the buffer is idle and so - skip the wait. - - There are a number of bugs across all generations which show signs of an - overly haste reuse of active buffers. - - Such as: - - https://bugs.freedesktop.org/show_bug.cgi?id=29046 - https://bugs.freedesktop.org/show_bug.cgi?id=35863 - https://bugs.freedesktop.org/show_bug.cgi?id=38952 - https://bugs.freedesktop.org/show_bug.cgi?id=40282 - https://bugs.freedesktop.org/show_bug.cgi?id=41098 - https://bugs.freedesktop.org/show_bug.cgi?id=41102 - https://bugs.freedesktop.org/show_bug.cgi?id=41284 - https://bugs.freedesktop.org/show_bug.cgi?id=42141 - - A couple of those pre-date i915_gem_object_finish_gpu(), so may be - unrelated (such as a wild write from a userspace command buffer), but - this does look like a convincing cause for most of those bugs. - - Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> - Cc: stable@kernel.org - Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> - Reviewed-by: Eugeni Dodonov <eugeni.dodonov@intel.com> - -diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c -index d560175..036bc58 100644 ---- a/drivers/gpu/drm/i915/i915_gem.c -+++ b/drivers/gpu/drm/i915/i915_gem.c -@@ -3087,10 +3087,13 @@ i915_gem_object_finish_gpu(struct drm_i915_gem_object *obj) - return ret; - } - -+ ret = i915_gem_object_wait_rendering(obj); -+ if (ret) -+ return ret; -+ - /* Ensure that we invalidate the GPU's caches and TLBs. */ - obj->base.read_domains &= ~I915_GEM_GPU_DOMAINS; -- -- return i915_gem_object_wait_rendering(obj); -+ return 0; - } - - /** diff --git a/kernels/linux-libre-aufs_friendly/iwlagn-fix-NULL-pointer-dereference.patch b/kernels/linux-libre-aufs_friendly/iwlagn-fix-NULL-pointer-dereference.patch deleted file mode 100644 index a53a3a425..000000000 --- a/kernels/linux-libre-aufs_friendly/iwlagn-fix-NULL-pointer-dereference.patch +++ /dev/null @@ -1,38 +0,0 @@ -This fix regression introduced by commit: - -commit 15b3f3b006b42a678523cad989bfd60b76bf4403 -Author: Wey-Yi Guy <wey-yi.w.guy@intel.com> -Date: Fri Jun 3 07:54:13 2011 -0700 - - iwlagn: set smps mode after assoc for 1000 device - -Also remove unneeded brackets on the way. - -Address: -https://bugzilla.redhat.com/show_bug.cgi?id=744155 - -If fix will not get 3.1 release, it should be applied in 3.1 stable. - -Cc: stable@kernel.org # 3.1+ -Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com> ---- - drivers/net/wireless/iwlwifi/iwl-agn-rxon.c | 4 ++-- - 1 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c b/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c -index ca632f9..5004342 100644 ---- a/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c -+++ b/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c -@@ -296,8 +296,8 @@ static int iwlagn_rxon_connect(struct iwl_priv *priv, - return ret; - } - -- if ((ctx->vif && ctx->vif->type == NL80211_IFTYPE_STATION) && -- priv->cfg->ht_params->smps_mode) -+ if (ctx->vif && ctx->vif->type == NL80211_IFTYPE_STATION && -+ priv->cfg->ht_params && priv->cfg->ht_params->smps_mode) - ieee80211_request_smps(ctx->vif, - priv->cfg->ht_params->smps_mode); - --- -1.7.1 diff --git a/kernels/linux-libre-aufs_friendly/linux-libre-aufs_friendly.install b/kernels/linux-libre-aufs_friendly/linux-libre-aufs_friendly.install index 09ca175a6..cad3564d8 100644 --- a/kernels/linux-libre-aufs_friendly/linux-libre-aufs_friendly.install +++ b/kernels/linux-libre-aufs_friendly/linux-libre-aufs_friendly.install @@ -2,16 +2,14 @@ # arg 2: the old package version KERNEL_NAME=-aufs_friendly -KERNEL_VERSION=3.2.9-2-LIBRE-AUFS_FRIENDLY +KERNEL_VERSION=3.3.4-1-LIBRE-AUFS_FRIENDLY post_install () { # updating module dependencies echo ">>> Updating module dependencies. Please wait ..." depmod ${KERNEL_VERSION} - if command -v mkinitcpio 2>&1 > /dev/null; then - echo ">>> Generating initial ramdisk, using mkinitcpio. Please wait..." - mkinitcpio -p linux-libre${KERNEL_NAME} - fi + echo ">>> Generating initial ramdisk, using mkinitcpio. Please wait..." + mkinitcpio -p linux-libre${KERNEL_NAME} # compat symlinks for the official kernels only if [ -z "${KERNEL_NAME}" -o "${KERNEL_NAME}" = "-aufs_friendly" ]; then @@ -19,8 +17,9 @@ post_install () { [ -f /etc/lilo.conf ] && loaders="$loaders /etc/lilo.conf" if [ -n "${loaders}" ] && grep -q -e vmlinuz26 -e kernel26.img -e kernel26-fallback.img $loaders; then # add compat symlinks for the initramfs images - ln -sf initramfs-linux-libre${KERNEL_NAME}.img /boot/kernel26${KERNEL_NAME}.img - ln -sf initramfs-linux-libre${KERNEL_NAME}-fallback.img /boot/kernel26${KERNEL_NAME}-fallback.img + ln -sf initramfs-linux-libre${KERNEL_NAME}.img boot/kernel26${KERNEL_NAME}.img + ln -sf initramfs-linux-libre${KERNEL_NAME}-fallback.img \ + boot/kernel26${KERNEL_NAME}-fallback.img ln -sf vmlinuz-linux-libre${KERNEL_NAME} /boot/vmlinuz26${KERNEL_NAME} fi fi @@ -52,10 +51,8 @@ post_upgrade() { # updating module dependencies echo ">>> Updating module dependencies. Please wait ..." depmod ${KERNEL_VERSION} - if command -v mkinitcpio 2>&1 > /dev/null; then - echo ">>> Generating initial ramdisk, using mkinitcpio. Please wait..." - mkinitcpio -p linux-libre${KERNEL_NAME} - fi + echo ">>> Generating initial ramdisk, using mkinitcpio. Please wait..." + mkinitcpio -p linux-libre${KERNEL_NAME} } post_remove() { diff --git a/kernels/linux-libre-aufs_friendly/md-raid10-fix-bug-when-activating-a-hot-spare.patch b/kernels/linux-libre-aufs_friendly/md-raid10-fix-bug-when-activating-a-hot-spare.patch deleted file mode 100644 index 880849db5..000000000 --- a/kernels/linux-libre-aufs_friendly/md-raid10-fix-bug-when-activating-a-hot-spare.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 7fcc7c8acf0fba44d19a713207af7e58267c1179 Mon Sep 17 00:00:00 2001 -From: NeilBrown <neilb@suse.de> -Date: Mon, 31 Oct 2011 12:59:44 +1100 -Subject: md/raid10: Fix bug when activating a hot-spare. - -From: NeilBrown <neilb@suse.de> - -commit 7fcc7c8acf0fba44d19a713207af7e58267c1179 upstream. - -This is a fairly serious bug in RAID10. - -When a RAID10 array is degraded and a hot-spare is activated, the -spare does not take up the empty slot, but rather replaces the first -working device. -This is likely to make the array non-functional. It would normally -be possible to recover the data, but that would need care and is not -guaranteed. - -This bug was introduced in commit - 2bb77736ae5dca0a189829fbb7379d43364a9dac -which first appeared in 3.1. - -Signed-off-by: NeilBrown <neilb@suse.de> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/md/raid10.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/drivers/md/raid10.c -+++ b/drivers/md/raid10.c -@@ -1337,7 +1337,7 @@ static int raid10_add_disk(mddev_t *mdde - mirror_info_t *p = &conf->mirrors[mirror]; - if (p->recovery_disabled == mddev->recovery_disabled) - continue; -- if (!p->rdev) -+ if (p->rdev) - continue; - - disk_stack_limits(mddev->gendisk, rdev->bdev, diff --git a/kernels/linux-libre-aufs_friendly/usb-add-reset-resume-quirk-for-several-webcams.patch b/kernels/linux-libre-aufs_friendly/usb-add-reset-resume-quirk-for-several-webcams.patch deleted file mode 100644 index 9e570dd3f..000000000 --- a/kernels/linux-libre-aufs_friendly/usb-add-reset-resume-quirk-for-several-webcams.patch +++ /dev/null @@ -1,99 +0,0 @@ -commit 2394d67e446bf616a0885167d5f0d397bdacfdfc -Author: Oliver Neukum <oneukum@suse.de> -Date: Tue Sep 13 08:42:21 2011 +0200 - - USB: add RESET_RESUME for webcams shown to be quirky - - The new runtime PM code has shown that many webcams suffer - from a race condition that may crash them upon resume. - Runtime PM is especially prone to show the problem because - it retains power to the cameras at all times. However - system suspension may also crash the devices and retain - power to the devices. - The only way to solve this problem without races is in - usbcore with the RESET_RESUME quirk. - - Signed-off-by: Oliver Neukum <oneukum@suse.de> - Signed-off-by: stable <stable@kernel.org> - Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - -diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c -index 81ce6a8..38f0510 100644 ---- a/drivers/usb/core/quirks.c -+++ b/drivers/usb/core/quirks.c -@@ -38,6 +38,24 @@ static const struct usb_device_id usb_quirk_list[] = { - /* Creative SB Audigy 2 NX */ - { USB_DEVICE(0x041e, 0x3020), .driver_info = USB_QUIRK_RESET_RESUME }, - -+ /* Logitech Webcam C200 */ -+ { USB_DEVICE(0x046d, 0x0802), .driver_info = USB_QUIRK_RESET_RESUME }, -+ -+ /* Logitech Webcam C250 */ -+ { USB_DEVICE(0x046d, 0x0804), .driver_info = USB_QUIRK_RESET_RESUME }, -+ -+ /* Logitech Webcam B/C500 */ -+ { USB_DEVICE(0x046d, 0x0807), .driver_info = USB_QUIRK_RESET_RESUME }, -+ -+ /* Logitech Webcam Pro 9000 */ -+ { USB_DEVICE(0x046d, 0x0809), .driver_info = USB_QUIRK_RESET_RESUME }, -+ -+ /* Logitech Webcam C310 */ -+ { USB_DEVICE(0x046d, 0x081b), .driver_info = USB_QUIRK_RESET_RESUME }, -+ -+ /* Logitech Webcam C270 */ -+ { USB_DEVICE(0x046d, 0x0825), .driver_info = USB_QUIRK_RESET_RESUME }, -+ - /* Logitech Harmony 700-series */ - { USB_DEVICE(0x046d, 0xc122), .driver_info = USB_QUIRK_DELAY_INIT }, - -@@ -69,6 +87,9 @@ static const struct usb_device_id usb_quirk_list[] = { - { USB_DEVICE(0x06a3, 0x0006), .driver_info = - USB_QUIRK_CONFIG_INTF_STRINGS }, - -+ /* Guillemot Webcam Hercules Dualpix Exchange*/ -+ { USB_DEVICE(0x06f8, 0x0804), .driver_info = USB_QUIRK_RESET_RESUME }, -+ - /* M-Systems Flash Disk Pioneers */ - { USB_DEVICE(0x08ec, 0x1000), .driver_info = USB_QUIRK_RESET_RESUME }, - -commit 5b253d88cc6c65a23cefc457a5a4ef139913c5fc -Author: Jon Levell <linuxusb@coralbark.net> -Date: Thu Sep 29 20:42:52 2011 +0100 - - USB: add quirk for Logitech C300 web cam - - My webcam is a Logitech C300 and I get "chipmunk"ed squeaky sound. - The following trivial patch fixes it. - - Signed-off-by: Jon Levell <linuxusb@coralbark.net> - Cc: stable <stable@kernel.org> - Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - -diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c -index 38f0510..d6a8d82 100644 ---- a/drivers/usb/core/quirks.c -+++ b/drivers/usb/core/quirks.c -@@ -44,6 +44,9 @@ static const struct usb_device_id usb_quirk_list[] = { - /* Logitech Webcam C250 */ - { USB_DEVICE(0x046d, 0x0804), .driver_info = USB_QUIRK_RESET_RESUME }, - -+ /* Logitech Webcam C300 */ -+ { USB_DEVICE(0x046d, 0x0805), .driver_info = USB_QUIRK_RESET_RESUME }, -+ - /* Logitech Webcam B/C500 */ - { USB_DEVICE(0x046d, 0x0807), .driver_info = USB_QUIRK_RESET_RESUME }, - -diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c -index d6a8d82..caa1991 100644 ---- a/drivers/usb/core/quirks.c -+++ b/drivers/usb/core/quirks.c -@@ -50,6 +50,9 @@ static const struct usb_device_id usb_quirk_list[] = { - /* Logitech Webcam B/C500 */ - { USB_DEVICE(0x046d, 0x0807), .driver_info = USB_QUIRK_RESET_RESUME }, - -+ /* Logitech Webcam C600 */ -+ { USB_DEVICE(0x046d, 0x0808), .driver_info = USB_QUIRK_RESET_RESUME }, -+ - /* Logitech Webcam Pro 9000 */ - { USB_DEVICE(0x046d, 0x0809), .driver_info = USB_QUIRK_RESET_RESUME }, - |