commit f2c0d0266cc5eb36a4aa44944b4096ec121490aa Author: Jonathan Nieder Date: Mon Aug 8 06:22:43 2011 +0200 cap_syslog: don't use WARN_ONCE for CAP_SYS_ADMIN deprecation warning syslog-ng versions before 3.3.0beta1 (2011-05-12) assume that CAP_SYS_ADMIN is sufficient to access syslog, so ever since CAP_SYSLOG was introduced (2010-11-25) they have triggered a warning. Commit ee24aebffb75 ("cap_syslog: accept CAP_SYS_ADMIN for now") improved matters a little by making syslog-ng work again, just keeping the WARN_ONCE(). But still, this is a warning that writes a stack trace we don't care about to syslog, sets a taint flag, and alarms sysadmins when nothing worse has happened than use of an old userspace with a recent kernel. Convert the WARN_ONCE to a printk_once to avoid that while continuing to give userspace developers a hint that this is an unwanted backward-compatibility feature and won't be around forever. Reported-by: Ralf Hildebrandt Reported-by: Niels Reported-by: Paweł Sikora Signed-off-by: Jonathan Nieder Liked-by: Gergely Nagy Acked-by: Serge Hallyn Acked-by: James Morris Signed-off-by: Linus Torvalds commit 9f50fad65b87a8776ae989ca059ad6c17925dfc3 Author: Michal Hocko Date: Tue Aug 9 11:56:26 2011 +0200 Revert "memcg: get rid of percpu_charge_mutex lock" This reverts commit 8521fc50d433507a7cdc96bec280f9e5888a54cc. The patch incorrectly assumes that using atomic FLUSHING_CACHED_CHARGE bit operations is sufficient but that is not true. Johannes Weiner has reported a crash during parallel memory cgroup removal: BUG: unable to handle kernel NULL pointer dereference at 0000000000000018 IP: [] css_is_ancestor+0x20/0x70 Oops: 0000 [#1] PREEMPT SMP Pid: 19677, comm: rmdir Tainted: G W 3.0.0-mm1-00188-gf38d32b #35 ECS MCP61M-M3/MCP61M-M3 RIP: 0010:[] css_is_ancestor+0x20/0x70 RSP: 0018:ffff880077b09c88 EFLAGS: 00010202 Process rmdir (pid: 19677, threadinfo ffff880077b08000, task ffff8800781bb310) Call Trace: [] mem_cgroup_same_or_subtree+0x33/0x40 [] drain_all_stock+0x11f/0x170 [] mem_cgroup_force_empty+0x231/0x6d0 [] mem_cgroup_pre_destroy+0x14/0x20 [] cgroup_rmdir+0xb9/0x500 [] vfs_rmdir+0x86/0xe0 [] do_rmdir+0xfb/0x110 [] sys_rmdir+0x16/0x20 [] system_call_fastpath+0x16/0x1b We are crashing because we try to dereference cached memcg when we are checking whether we should wait for draining on the cache. The cache is already cleaned up, though. There is also a theoretical chance that the cached memcg gets freed between we test for the FLUSHING_CACHED_CHARGE and dereference it in mem_cgroup_same_or_subtree: CPU0 CPU1 CPU2 mem=stock->cached stock->cached=NULL clear_bit test_and_set_bit test_bit() ... mem_cgroup_destroy use after free The percpu_charge_mutex protected from this race because sync draining is exclusive. It is safer to revert now and come up with a more parallel implementation later. Signed-off-by: Michal Hocko Reported-by: Johannes Weiner Acked-by: Johannes Weiner Acked-by: KAMEZAWA Hiroyuki Cc: stable@kernel.org Signed-off-by: Linus Torvalds commit 47e180d6523081605c970f806572beab8a205537 Merge: e6a99d3 8110718 Author: Linus Torvalds Date: Tue Aug 9 12:51:25 2011 -0700 Merge branch 'slab/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6 * 'slab/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6: slub: Fix partial count comparison confusion commit 81107188f123e3c2217ac2f2feb2a1147904c62f Author: Christoph Lameter Date: Tue Aug 9 13:01:32 2011 -0500 slub: Fix partial count comparison confusion deactivate_slab() has the comparison if more than the minimum number of partial pages are in the partial list wrong. An effect of this may be that empty pages are not freed from deactivate_slab(). The result could be an OOM due to growth of the partial slabs per node. Frees mostly occur from __slab_free which is okay so this would only affect use cases where a lot of switching around of per cpu slabs occur. Switching per cpu slabs occurs with high frequency if debugging options are enabled. Reported-and-tested-by: Xiaotian Feng Signed-off-by: Christoph Lameter Signed-off-by: Pekka Enberg commit e6a99d312687a42c077a9b8cb5e757f186edb1b9 Merge: 6bb615b ef62fb3 Author: Linus Torvalds Date: Tue Aug 9 08:42:16 2011 -0700 Merge branch 'slab/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6 * 'slab/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6: slub: fix check_bytes() for slub debugging slub: Fix full list corruption if debugging is on commit 6bb615bc396512992f77495180cda29f0f9791b5 Merge: ab04fc5 60b1ae0 Author: Linus Torvalds Date: Tue Aug 9 08:41:36 2011 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6 * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6: sound: pss - don't use the deprecated function check_region ALSA: timer - Add NULL-check for invalid slave timer ALSA: timer - Fix Oops at closing slave timer ASoC: Acknowledge WM8996 interrupts before acting on them ASoC: Rename WM8915 to WM8996 ALSA: Fix dependency of CONFIG_SND_TEA575X ALSA: asihpi - use kzalloc() ALSA: snd-usb-caiaq: Fix keymap for RigKontrol3 ALSA: snd-usb: Fix uninitialized variable usage ALSA: hda - Fix a complile warning in patch_via.c ALSA: hdspm - Fix uninitialized compile warnings ALSA: usb-audio - add quirk for Keith McMillen StringPort ALSA: snd-usb: operate on given mixer interface only ALSA: snd-usb: avoid dividing by zero on invalid input ALSA: snd-usb: Accept UAC2 FORMAT_TYPE descriptors with bLength > 6 sound: oss/pas2: Remove CLOCK_TICK_RATE dependency from PAS16 driver ALSA: hda - Use auto-parser for ASUS UX50, Eee PC P901, S101 and P1005 ALSA: hda - Fix digital-mic mono recording on ASUS Eee PC ASoC: sgtl5000: fix cache handling ASoC: Disable wm_hubs periodic DC servo update commit ab04fc5890381e7dc907e809d27bf0f683de6e82 Author: Alan Cox Date: Tue Aug 9 14:30:37 2011 +0100 gma500: Fix clashes with DRM updates The private object support has migrated from gma500 into the DRM core, remove our now clashing copy. Signed-off-by: Alan Cox Signed-off-by: Linus Torvalds commit ef62fb32b7b21731e41aea3c1e08bcdb407c9eb9 Author: Akinobu Mita Date: Sun Aug 7 18:30:38 2011 +0900 slub: fix check_bytes() for slub debugging The check_bytes() function is used by slub debugging. It returns a pointer to the first unmatching byte for a character in the given memory area. If the character for matching byte is greater than 0x80, check_bytes() doesn't work. Becuase 64-bit pattern is generated as below. value64 = value | value << 8 | value << 16 | value << 24; value64 = value64 | value64 << 32; The integer promotions are performed and sign-extended as the type of value is u8. The upper 32 bits of value64 is 0xffffffff in the first line, and the second line has no effect. This fixes the 64-bit pattern generation. Signed-off-by: Akinobu Mita Cc: Christoph Lameter Cc: Matt Mackall Reviewed-by: Marcin Slusarz Acked-by: Eric Dumazet Signed-off-by: Pekka Enberg commit 6fbabb20faed9c08f8b96de4182bd721cbd1cfcf Author: Christoph Lameter Date: Mon Aug 8 11:16:56 2011 -0500 slub: Fix full list corruption if debugging is on When a slab is freed by __slab_free() and the slab can only contain a single object ever then it was full (and therefore not on the partial lists but on the full list in the debug case) before we reached slab_empty. This caused the following full list corruption when SLUB debugging was enabled: [ 5913.233035] ------------[ cut here ]------------ [ 5913.233097] WARNING: at lib/list_debug.c:53 __list_del_entry+0x8d/0x98() [ 5913.233101] Hardware name: Adamo 13 [ 5913.233105] list_del corruption. prev->next should be ffffea000434fd20, but was ffffea0004199520 [ 5913.233108] Modules linked in: nfs fscache fuse ebtable_nat ebtables ppdev parport_pc lp parport ipt_MASQUERADE iptable_nat nf_nat nfsd lockd nfs_acl auth_rpcgss xt_CHECKSUM sunrpc iptable_mangle bridge stp llc cpufreq_ondemand acpi_cpufreq freq_table mperf ip6t_REJECT nf_conntrack_ipv6 nf_defrag_ipv6 ip6table_filter ip6_tables rfcomm bnep arc4 iwlagn snd_hda_codec_hdmi snd_hda_codec_idt snd_hda_intel btusb mac80211 snd_hda_codec bluetooth snd_hwdep snd_seq snd_seq_device snd_pcm usb_debug dell_wmi sparse_keymap cdc_ether usbnet cdc_acm uvcvideo cdc_wdm mii cfg80211 snd_timer dell_laptop videodev dcdbas snd microcode v4l2_compat_ioctl32 soundcore joydev tg3 pcspkr snd_page_alloc iTCO_wdt i2c_i801 rfkill iTCO_vendor_support wmi virtio_net kvm_intel kvm ipv6 xts gf128mul dm_crypt i915 drm_kms_helper drm i2c_algo_bit i2c_core video [last unloaded: scsi_wait_scan] [ 5913.233213] Pid: 0, comm: swapper Not tainted 3.0.0+ #127 [ 5913.233213] Call Trace: [ 5913.233213] [] warn_slowpath_common+0x83/0x9b [ 5913.233213] [] warn_slowpath_fmt+0x46/0x48 [ 5913.233213] [] __list_del_entry+0x8d/0x98 [ 5913.233213] [] list_del+0xe/0x2d [ 5913.233213] [] __slab_free+0x1db/0x235 [ 5913.233213] [] ? bvec_free_bs+0x35/0x37 [ 5913.233213] [] ? bvec_free_bs+0x35/0x37 [ 5913.233213] [] ? bvec_free_bs+0x35/0x37 [ 5913.233213] [] kmem_cache_free+0x88/0x102 [ 5913.233213] [] bvec_free_bs+0x35/0x37 [ 5913.233213] [] bio_free+0x34/0x64 [ 5913.233213] [] dm_bio_destructor+0x12/0x14 [ 5913.233213] [] bio_put+0x2b/0x2d [ 5913.233213] [] clone_endio+0x9e/0xb4 [ 5913.233213] [] bio_endio+0x2d/0x2f [ 5913.233213] [] crypt_dec_pending+0x5c/0x8b [dm_crypt] [ 5913.233213] [] crypt_endio+0x78/0x81 [dm_crypt] [ Full discussion here: https://lkml.org/lkml/2011/8/4/375 ] Make sure that we remove such a slab also from the full lists. Reported-and-tested-by: Dave Jones Reported-and-tested-by: Xiaotian Feng Signed-off-by: Christoph Lameter Signed-off-by: Pekka Enberg commit 87302700402b2708c49f89970c295465cc8e5523 Merge: 5c723ba 4d81897 Author: Linus Torvalds Date: Mon Aug 8 12:14:51 2011 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6 * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6: TOMOYO: Fix incomplete read of /sys/kernel/security/tomoyo/profile commit 5c723ba5b7886909b2e430f2eae454c33f7fe5c6 Author: Peter Zijlstra Date: Wed Jul 27 12:17:11 2011 +0200 mm: Fix fixup_user_fault() for MMU=n In commit 2efaca927f5c ("mm/futex: fix futex writes on archs with SW tracking of dirty & young") we forgot about MMU=n. This patch fixes that. Signed-off-by: Peter Zijlstra Acked-by: Benjamin Herrenschmidt Acked-by: David Howells Link: http://lkml.kernel.org/r/1311761831.24752.413.camel@twins Signed-off-by: Linus Torvalds commit 2f84dd70916ccadd25e94d28363182a978f569b6 Author: Linus Torvalds Date: Mon Aug 8 11:55:20 2011 -0700 autofs4: fix debug printk warning uncovered by cleanup The previous comit made the autofs4 debug printouts check types against the printout format, and uncovered this bug: fs/autofs4/waitq.c:106:2: warning: format ‘%08lx’ expects type ‘long unsigned int’, but argument 4 has type ‘autofs_wqt_t’ which is due to the insane type for wait_queue_token. That thing should be some fixed well-defined size (preferably just 'unsigned int' or 'u32') but for unexplained reasons it is randomly either 'unsigned long' or 'unsigned int' depending on the architecture. For now, cast it to 'unsigned long' for printing, the way we do elsewhere. Somebody else can try to explain the typedef mess. (There's a reason we don't support excessive use of typedefs in the kernel: it's usually just a good way of confusing yourself). Signed-off-by: Linus Torvalds commit c3ad996246dc5fd6e3df473c5fc1ba6d53e1d402 Author: Linus Torvalds Date: Mon Aug 8 11:35:17 2011 -0700 autofs4: clean up uaotfs use of debug/info/warning printouts Use 'pr_debug()' for DPRINTK, which will do the proper type checking on the arguments (without generating code) even when DEBUG isn't #defined. Also, use the standard __VA_ARGS__ for the macros, and stop the pointless abuse of 'do { xyz } while (0)' when the macro is already a perfectly well-formed single statement. Reported-by: David Howells Suggested-by: Joe Perches Cc: Ian Kent Signed-off-by: Linus Torvalds commit 638a8439096c582bdb523fcea9d875d3e1fed38a Author: Linus Torvalds Date: Mon Aug 8 11:33:23 2011 -0700 cred: use 'const' in get_current_{user,groups} Avoid annoying warnings from these functions ("discards qualifiers") because they assign 'current_cred()' to a non-const pointer. Signed-off-by: Linus Torvalds commit 27e4e4362756a78b15e83ef104c8bbe257f40f90 Author: David Howells Date: Mon Aug 8 15:54:53 2011 +0100 CRED: Restore const to current_cred() Commit 3295514841c2 ("fix rcu annotations noise in cred.h") accidentally dropped the const of current->cred inside current_cred() by the insertion of a cast to deal with an RCU annotation loss warning from sparce. Use an appropriate RCU wrapper instead so as not to lose the const. Signed-off-by: David Howells Reviewed-by: Paul E. McKenney cc: Al Viro Signed-off-by: Linus Torvalds commit 60b1ae0cd469825e4db0837f5f19c3a8084300c3 Merge: 0a2d31b 8c28564 Author: Takashi Iwai Date: Mon Aug 8 14:30:44 2011 +0200 Merge branch 'fix/asoc' into for-linus commit 0a2d31b62dba9b5b92a38c67c9cc42630513662a Merge: 8039290 df944f6 Author: Takashi Iwai Date: Mon Aug 8 14:30:29 2011 +0200 Merge branch 'fix/kconfig' into for-linus commit 8039290a91c5dc4414093c086987a5d7738fe2fd Author: Wang Shaoyan Date: Mon Aug 8 19:10:26 2011 +0800 sound: pss - don't use the deprecated function check_region sound/oss/pss.c: In function 'configure_nonsound_components': sound/oss/pss.c:676: warning: 'check_region' is deprecated (declared at include/linux/ioport.h:201) Signed-off-by: Wang Shaoyan Signed-off-by: Takashi Iwai commit 94094c8aaeded11f8b99734b9ebdaada20b5f24a Author: Takashi Iwai Date: Mon Aug 8 12:28:22 2011 +0200 ALSA: timer - Add NULL-check for invalid slave timer Just to be sure. Signed-off-by: Takashi Iwai commit 0584ffa548b6e59aceb027112f23a55f0133400e Author: Takashi Iwai Date: Mon Aug 8 12:24:46 2011 +0200 ALSA: timer - Fix Oops at closing slave timer A slave-timer instance has no timer reference, and this results in NULL-dereference at stopping the timer, typically called at closing the device. Reference: https://bugzilla.kernel.org/show_bug.cgi?id=40682 Cc: Signed-off-by: Takashi Iwai commit 8c285645ab3b05942124020b5f0b89d3b539823a Merge: 151798f 8449709 Author: Takashi Iwai Date: Mon Aug 8 10:45:31 2011 +0200 Merge branch 'wm8996-rename' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound-2.6 into fix/asoc commit 844970916c8e50f630ea1a6ac82f09c42b12660a Author: Mark Brown Date: Wed Jul 20 13:49:58 2011 +0100 ASoC: Acknowledge WM8996 interrupts before acting on them This closes the small race between a status being read in response to an interrupt and clearing the interrupt, meaning that if the status changes between those periods we might not get a reassertion of the interrupt. Signed-off-by: Mark Brown commit a9ba615134ad32254fae84f16e1751854755135c Author: Mark Brown Date: Fri Jun 24 12:10:44 2011 +0100 ASoC: Rename WM8915 to WM8996 For marketing reasons the part will be called WM8996. In order to avoid user confusion rename the driver to reflect this. Signed-off-by: Mark Brown Acked-by: Kukjin Kim Acked-by: Liam Girdwood commit 4d81897139ffb738ee14b6f84f63f93ecda1136b Author: Tetsuo Handa Date: Sat Aug 6 23:38:30 2011 +0900 TOMOYO: Fix incomplete read of /sys/kernel/security/tomoyo/profile Commit bd03a3e4 "TOMOYO: Add policy namespace support." forgot to set EOF flag and forgot to print namespace at PREFERENCE line. Signed-off-by: Tetsuo Handa Signed-off-by: James Morris commit df944f66784e6d4f2f50739263a4947885d8b6ae Author: Takashi Iwai Date: Sun Aug 7 17:34:07 2011 +0200 ALSA: Fix dependency of CONFIG_SND_TEA575X CONFIG_SND_TEA575X is enabled by RADIO_SF16FMR2, but the latter one is no PCI device. Since tea575x-tuner itself is independent from the board bus type, the config should be moved out of SND_PCI dependency. Reported-by: Randy Dunlap Acked-by: Randy Dunlap Signed-off-by: Takashi Iwai commit 67ada8367c323ce13d0268c87cf09bf8af956e92 Author: Thomas Meyer Date: Sat Aug 6 13:26:20 2011 +0200 ALSA: asihpi - use kzalloc() Use kzalloc rather than kmalloc followed by memset with 0 This considers some simple cases that are common and easy to validate Note in particular that there are no ...s in the rule, so all of the matched code has to be contiguous The semantic patch that makes this output is available in scripts/coccinelle/api/alloc/kzalloc-simple.cocci. More information about semantic patching is available at http://coccinelle.lip6.fr/ Signed-off-by: Thomas Meyer Signed-off-by: Takashi Iwai commit f4389489b5cbe60b3441869c68bb4afe760969c4 Author: Daniel Mack Date: Sat Aug 6 09:13:08 2011 +0200 ALSA: snd-usb-caiaq: Fix keymap for RigKontrol3 Signed-off-by: Daniel Mack Reported-by: Renato Cc: stable@kernel.org Signed-off-by: Takashi Iwai commit dac8f847c48adeeece5aba57600d08d2499d39b2 Author: Daniel Mack Date: Sat Aug 6 00:23:18 2011 +0200 ALSA: snd-usb: Fix uninitialized variable usage Purely cosmetic, but fixes the following build warning. CC [M] sound/usb/quirks.o sound/usb/quirks.c: In function ‘snd_usb_apply_boot_quirk’: sound/usb/quirks.c:429:6: warning: ‘err’ may be used uninitialized in this function [-Wuninitialized] Signed-off-by: Daniel Mack Signed-off-by: Takashi Iwai commit 81c0a78b644f0e265a01d5a5f5ab397b791bad08 Author: Wang Shaoyan Date: Fri Aug 5 18:51:29 2011 +0800 ALSA: hda - Fix a complile warning in patch_via.c sound/pci/hda/patch_via.c:2087: warning: 'dac' may be used uninitialized in this function Signed-off-by: Wang Shaoyan Signed-off-by: Takashi Iwai commit 3d56c8e6b039f2bc1d7c62d3b19e696c3129c8c0 Author: Takashi Iwai Date: Fri Aug 5 12:30:12 2011 +0200 ALSA: hdspm - Fix uninitialized compile warnings Put the exception checks for io_type switch() for possible mistakes in future. Also this shuts up annoying compile warnings. Signed-off-by: Takashi Iwai commit 02651d1a9725f29e95296c37cf9a4f16e9c01bff Author: Miller Puckette Date: Thu Aug 4 12:25:56 2011 -0700 ALSA: usb-audio - add quirk for Keith McMillen StringPort Signed-off-by: Miller Puckette Signed-off-by: Takashi Iwai commit 1faa5d07a93fc5b0a4a5254fc940a79e20b55540 Author: Daniel Mack Date: Thu Aug 4 15:56:28 2011 +0200 ALSA: snd-usb: operate on given mixer interface only When creating the mixers for an USB audio device, the current code looks at the host interface stored in mixer->chip->ctrl_if. Change this and rather keep a local pointer to the interface that was given when snd_usb_create_mixer() was called. Signed-off-by: Daniel Mack Reported-by: Nicolai Krakowiak Reported-by: Lean-Yves LENHOF Acked-by: Clemens Ladisch Cc: stable@kernel.org Signed-off-by: Takashi Iwai commit 60c961a9e1ed879a4d151df6076bf1203f595f73 Author: Nicolai Krakowiak Date: Thu Aug 4 15:56:27 2011 +0200 ALSA: snd-usb: avoid dividing by zero on invalid input Signed-off-by: Nicolai Krakowiak Acked-by: Daniel Mack Acked-by: Clemens Ladisch Cc: stable@kernel.org Signed-off-by: Takashi Iwai commit 824818b148db42173446707df4cbd61cd7133272 Author: Clemens Ladisch Date: Thu Aug 4 16:17:42 2011 +0200 ALSA: snd-usb: Accept UAC2 FORMAT_TYPE descriptors with bLength > 6 The Focusrite Scarlett 18i6 USB has them that way, which is probably a bug. Anyway, the driver should simply ignore this fact. Signed-off-by: Daniel Mack Reported-by: Nicolai Krakowiak Cc: stable@kernel.org Signed-off-by: Clemens Ladisch Signed-off-by: Takashi Iwai commit 2921623f71c0a7f8ab979a8903cccd7a374436e7 Author: Deepak Saxena Date: Wed Aug 3 17:04:01 2011 -0700 sound: oss/pas2: Remove CLOCK_TICK_RATE dependency from PAS16 driver Update the PAS16 driver to use PIT_TICK_RATE instead of the more generic CLOCK_TICK_RATE as the two are equivalent on X86 and we want to depecrate the later. Signed-off-by: Deepak Saxena Signed-off-by: Takashi Iwai commit c3540b81ee707bc8a7a83e850adf5feb3b84c04d Author: Takashi Iwai Date: Thu Aug 4 15:19:26 2011 +0200 ALSA: hda - Use auto-parser for ASUS UX50, Eee PC P901, S101 and P1005 It works fine with auto-parser and now the digital mic workaround was implemented in auto-parser fixup, let's drop the static model quirks for these models. Signed-off-by: Takashi Iwai commit adabb3ec8b0bcbd2ca81973d33c3da726b939c7c Author: Takashi Iwai Date: Wed Aug 3 07:48:37 2011 +0200 ALSA: hda - Fix digital-mic mono recording on ASUS Eee PC The digital-mic unit on ASUS Eee PC gives PDM signals instead of the normal stereo PCM, thus you can't record a mono stream from the stereo stream as is; the summed stereo signal results in almost zero level, and you'll hear only soft noise. As a workaround, use ALC269-specific COEF to manipulate the dmic route for mono, like used for ALC271x. This is implemented as a fix-up, thus it works only with model=auto or without REALTEK_QUIRKS Kconfig. Reported-and-tested-by: Pavel Roskin Signed-off-by: Takashi Iwai commit 151798f872d6b386d82cd1707ad703e981fef8f2 Author: Wolfram Sang Date: Tue Aug 2 19:42:19 2011 +0200 ASoC: sgtl5000: fix cache handling Cache handling in this driver is broken. The chip has 16-bit registers, yet the register numbers also increase by 2 per register, i.e. there are only even-numbered registers. The cache in this driver, though, simply increments register numbers, so it does need some mapping as seen in sgtl5000_restore_regs(), note the '>> 1': snd_soc_write(codec, SGTL5000_CHIP_LINREG_CTRL, cache[SGTL5000_CHIP_LINREG_CTRL >> 1]); That, of course, won't work with snd_soc_update_bits(). (Thus, we won't even notice the missing register 0x1c in the default regs which shifted all follwing registers to wrong values.) Noticed on the MX28EVK where enabling the regulators simply locked up the chip. Refactor the routines and use a properly sized default_regs array which matches the register layout of the underlying chip, i.e. create a truly flat cache. This also saves some code which should make up for the bigger array a little. When soc-core will somewhen have another cache type which handles a step size, this conversion will also ease the transition. Signed-off-by: Wolfram Sang Tested-by: Dong Aisheng Tested-by: Shawn Guo Acked-by: Liam Girdwood Signed-off-by: Mark Brown Cc: stable@kernel.org commit f9925d4400927fcf3e25cd371442e47d40b37536 Author: Mark Brown Date: Thu Jul 28 12:44:44 2011 +0100 ASoC: Disable wm_hubs periodic DC servo update This does not function correctly in all circumstances so disable the periodic updates unconditionally for stable; a future patch will reenable where appropriate. Signed-off-by: Mark Brown Acked-by: Liam Girdwood