summaryrefslogtreecommitdiff
path: root/sound
AgeCommit message (Collapse)Author
2009-08-04Merge branch 'fix/hda' of ↵Linus Torvalds
git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6 * 'fix/hda' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6: ALSA: hda - Read buffer overflow ALSA: hda: Correct EAPD for Dell Inspiron 1525 ALSA: hda: warn on spurious response ALSA: hda: remember last command for each codec ALSA: hda: read CORBWP inside reg_lock ALSA: hda: take reg_lock in azx_init_cmd_io/azx_free_cmd_io ALSA: hda: take cmd_mutex in probe_codec() ALSA: hda: track CIRB/CORB command/response states for each codec ALSA: hda - Fix quirk for Toshiba Satellite A135-S4527
2009-08-03ALSA: hda - Read buffer overflowRoel Kluin
Check whether index is within bounds before testing the element. Signed-off-by: Roel Kluin <roel.kluin@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-08-03ALSA: hda: Correct EAPD for Dell Inspiron 1525Chengu Wang
The commit 24918b61b55c21e09a3e07cd82e1b3a8154782dc statically changes the model from dell-bios to dell-3stack to solve the sound decreasing regression (http://lkml.org/lkml/2008/9/12/203), however it leads to another problem that the 2nd headphone jack doesn't work (https://bugtrack.alsa-project.org/alsa-bug/view.php?id=3987). So I think the commit 249**2dc is just a workaround. I would like to give a true solution here. The datasheet for STAC9228 says, GPIO2 is the same pin as VOL DOWN, and the EAPD pin is GPIO0. This is why the sound decreases if we set EAPD as GPIO2. This patch changes EAPD to GPIO0 to solve the problem. Signed-off-by: Chengu Wang <wangchengu@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-08-03ALSA: hda: warn on spurious responseWu Fengguang
To help disclose hardware bugs. Signed-off-by: Wu Fengguang <fengguang.wu@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-08-03ALSA: hda: remember last command for each codecWu Fengguang
Signed-off-by: Wu Fengguang <fengguang.wu@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-08-03ALSA: hda: read CORBWP inside reg_lockWu Fengguang
This converts the last CORBWP access outside of reg_lock. Signed-off-by: Wu Fengguang <fengguang.wu@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-08-03ALSA: hda: take reg_lock in azx_init_cmd_io/azx_free_cmd_ioWu Fengguang
Just for safety. azx_init_cmd_io() and azx_free_cmd_io() may be called when switching to single command mode. Signed-off-by: Wu Fengguang <fengguang.wu@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-08-03ALSA: hda: take cmd_mutex in probe_codec()Wu Fengguang
Now that each codec will have its own module, it is possible for the user to load one codec while another one is running. So cmd_mutex would be a safe addition to probe_codec(). Signed-off-by: Wu Fengguang <fengguang.wu@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-08-03ALSA: hda: track CIRB/CORB command/response states for each codecWu Fengguang
Recently we hit a bug in our dev board, whose HDMI codec#3 may emit redundant/spurious responses, which were then taken as responses to command for another onboard Realtek codec#2, and mess up both codecs. Extend the azx_rb.cmds and azx_rb.res to array and track each codec's commands/responses separately. This helps keep good codec safe from broken ones. Signed-off-by: Wu Fengguang <fengguang.wu@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-08-03ALSA: hda - Fix quirk for Toshiba Satellite A135-S4527Takashi Iwai
Use model=lenovo instead of model=dallas for Toshiba Satellite A135-S4527 with ALC861-VD codec. Reference: Novell bnc#526325 https://bugzilla.novell.com/show_bug.cgi?id=526325 Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-07-31Merge branch 'fix/oss' into for-linusTakashi Iwai
* fix/oss: sound: mpu401.c: Buffer overflow sound: aedsp16: Buffer overflow
2009-07-31Merge branch 'fix/misc' into for-linusTakashi Iwai
* fix/misc: ALSA: sound/aoa: Add kmalloc NULL tests
2009-07-31Merge branch 'fix/hda' into for-linusTakashi Iwai
* fix/hda: ALSA: hda - Increase PCM stream name buf in patch_realtek.c ALSA: hda: fix out-of-bound hdmi_eld.sad[] write ALSA: hda - Add quirk for Dell Studio 1555
2009-07-31ALSA: sound/aoa: Add kmalloc NULL testsJulia Lawall
Check that the result of kzalloc is not NULL before a dereference. The semantic match that finds this problem is as follows: (http://www.emn.fr/x-info/coccinelle/) // <smpl> @@ expression *x; identifier f; constant char *C; @@ x = \(kmalloc\|kcalloc\|kzalloc\)(...); ... when != x == NULL when != x != NULL when != (x || ...) ( kfree(x) | f(...,C,...,x,...) | *f(...,x,...) | *x->f ) // </smpl> Signed-off-by: Julia Lawall <julia@diku.dk> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-07-31ALSA: hda - Increase PCM stream name buf in patch_realtek.cTakashi Iwai
The name buf with size 16 is too short for some codec names, e.g. truncated like "ALC861-VD Analo". Now the size is doubled. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-07-29sound: mpu401.c: Buffer overflowRoel Kluin
mpu_synth_info[m].name is a char[30], and the minimum length of the data written by sprintf is 31 bytes including terminating null. Signed-off-by: Roel Kluin <roel.kluin@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-07-29sound: aedsp16: Buffer overflowRoel Kluin
DSPVersion is declared as char[3], but the sprintf writes at least 4 bytes including terminating null. Signed-off-by: Roel Kluin <roel.kluin@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-07-29ALSA: hda: fix out-of-bound hdmi_eld.sad[] writeRoel Kluin
e->sad[] is declared with size ELD_MAX_SAD=16, but the guard allows range 0-31. Signed-off-by: Roel Kluin <roel.kluin@gmail.com> Signed-off-by: Wu Fengguang <fengguang.wu@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-07-27ALSA: hda - Add quirk for Dell Studio 1555Takashi Iwai
Added a quirk entry for Dell Studio 1555. Reference: Novell bnc#525244 https://bugzilla.novell.com/show_bug.cgi?id=525244 Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-07-26Merge branch 'fix/usb-audio' into for-linusTakashi Iwai
* fix/usb-audio: ALSA: usb-audio - Volume control quirk for QuickCam E 3500
2009-07-26Merge branch 'fix/pcm-hwptr' into for-linusTakashi Iwai
* fix/pcm-hwptr: ALSA: pcm - Fix hwptr buffer-size overlap bug ALSA: pcm - Fix warnings in debug loggings ALSA: pcm - Add logging of hwptr updates and interrupt updates ALSA: pcm - Fix regressions with VMware
2009-07-26Merge branch 'fix/hda' into for-linusTakashi Iwai
* fix/hda: ALSA: hda - Fix mute control with some ALC262 models ALSA: hda - Restore GPIO1 properly at resume with AD1984A ALSA: hda - Use snprintf() to be safer
2009-07-26Merge branch 'fix/ctxfi' into for-linusTakashi Iwai
* fix/ctxfi: ALSA: ctxfi - Fix uninitialized error checks
2009-07-26Merge branch 'fix/caiaq' into for-linusTakashi Iwai
* fix/caiaq: ALSA: snd_usb_caiaq: add support for Audio2DJ
2009-07-26Merge branch 'fix/asoc' into for-linusTakashi Iwai
* fix/asoc: ASoC: tlv320aic3x: Enable PLL when not bypassed
2009-07-24ALSA: hda - Fix mute control with some ALC262 modelsTakashi Iwai
The master mute switch is wrongly implemented as checking the pointer instead of its value, thus it can be never muted. This patch fixes the issue. Reference: Novell bnc#404873 https://bugzilla.novell.com/show_bug.cgi?id=404873 Signed-off-by: Takashi Iwai <tiwai@suse.de> Cc: <stable@kernel.org>
2009-07-23ALSA: snd_usb_caiaq: add support for Audio2DJDaniel Mack
This adds support for Native Instrument's freshly announced Audio2DJ sound device hardware. Version number bumped to 1.3.19. Signed-off-by: Daniel Mack <daniel@caiaq.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-07-23ALSA: pcm - Fix hwptr buffer-size overlap bugTakashi Iwai
The fix 79452f0a28aa5a40522c487b42a5fc423647ad98 introduced another bug due to the missing offset for the overlapped hwptr. When the hwptr goes back to zero, the delta value has to be corrected with the buffer size. Otherwise this causes looping sounds. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-07-23ALSA: pcm - Fix warnings in debug loggingsTakashi Iwai
Add proper cast. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-07-23ALSA: pcm - Add logging of hwptr updates and interrupt updatesTakashi Iwai
Added the logging functionality to xrun_debug to record the hwptr updates via snd_pcm_update_hw_ptr() and snd_pcm_update_hwptr_interrupt(), corresponding to 16 and 8, respectively. For example, # echo 9 > /proc/asound/card0/pcm0p/xrun_debug will record the position and other parameters at each period interrupt together with the normal XRUN debugging. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-07-23ASoC: tlv320aic3x: Enable PLL when not bypassedChaithrika U S
PLL was not being enabled when it was not bypassed. This patch enables the PLL when it is used. Additionally, it disables the PLL when it is bypassed. Without this patch, the audio on TI DM646x EVM and DM355 EVM does not work properly. The bit clocks and the frame sync signals from the codec are not correct and hence the playback/record are faster than usual for most sample rates. The reason for this was that the PLL was not enabled when it was not bypassed. Tested on DM6467 EVM, playback tested on DM355 EVM. Signed-off-by: Chaithrika U S <chaithrika@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2009-07-22ALSA: hda - Restore GPIO1 properly at resume with AD1984ATakashi Iwai
The commit 099db17e66294b02814dee01c81d9abbbeece93e introduced a regression at suspend/resume where the GPIO1 bit isn't properly restored, thus the speaker output gets muted initially after resume. The fix is simple, use the cached write for storing GPIO data. Reference: Novell bnc#522764 https://bugzilla.novell.com/show_bug.cgi?id=522764 Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-07-22ALSA: ctxfi - Fix uninitialized error checksTakashi Iwai
Fix a few uninitialized error checks that were introduced recently mistakenlly during the clean-up: sound/pci/ctxfi/ctamixer.c: In function ‘get_amixer_rsc’: sound/pci/ctxfi/ctamixer.c:261: warning: ‘err’ may be used uninitialized in this function sound/pci/ctxfi/ctamixer.c: In function ‘get_sum_rsc’: sound/pci/ctxfi/ctamixer.c:415: warning: ‘err’ may be used uninitialized in this function sound/pci/ctxfi/ctsrc.c: In function ‘get_srcimp_rsc’: sound/pci/ctxfi/ctsrc.c:742: warning: ‘err’ may be used uninitialized in this function Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-07-22ALSA: hda - Use snprintf() to be saferTakashi Iwai
Use snprint() for creating the jack name string instead of sprintf() in patch_sigmatel.c. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-07-22ALSA: usb-audio - Volume control quirk for QuickCam E 3500Alexey Fisher
- E3500 report cval->max more than it actually can handel, so if you set 95% capture level it will be silently muted. - Betwen cval->min and cval-max(real) is 2940 control units, but real are only 7 with cval->res = 384. - Alsa can't handel less than 10 controls, so make it more and set cval->res = 192. Signed-off-by: Alexey Fisher <bug-track@fisher-privat.net> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-07-22ALSA: pcm - Fix regressions with VMwareTakashi Iwai
VMware tends to report PCM positions and period updates at utterly wrong timing. This screws up the recent PCM core code that tries to correct the position based on the irq timing. Now, when a backward irq position is detected, skip the update instead of rebasing. (This is almost the old behavior before 2.6.30.) Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-07-21Merge branch 'fix/misc' into for-linusTakashi Iwai
* fix/misc: ALSA: ca0106 - Fix the max capture buffer size ALSA: OSS sequencer should be initialized after snd_seq_system_client_init ALSA: sound/isa: convert nested spin_lock_irqsave to spin_lock
2009-07-21Merge branch 'fix/hda' into for-linusTakashi Iwai
* fix/hda: ALSA: hda - Fix pin-setup for Sony VAIO with STAC9872 codecs ALSA: hda - Add quirk for Gateway T6834c laptop ALSA: hda_codec: Check for invalid zero connections
2009-07-21Merge branch 'fix/ctxfi' into for-linusTakashi Iwai
* fix/ctxfi: ALSA: ctxfi: Swapped SURROUND-SIDE channels on emu20k2
2009-07-20ALSA: ctxfi: Swapped SURROUND-SIDE channels on emu20k2Frank Roth
On Soundblaster X-FI Titanium with emu20k2 the SIDE and SURROUND channels were swapped and wrong. I double checked it with connector colors and creative soundblaster windows drivers. So I swapped them to the true order. Now "speaker-test -c6" and "speaker-test -c8" are working fine. Signed-off-by: Frank Roth <frashman@freenet.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-07-20ALSA: ca0106 - Fix the max capture buffer sizeTakashi Iwai
The capture buffer size with 64kB seems broken with CA0106. At least, either the update timing or the DMA position is wrong, and this screws up pulseaudio badly. This patch restricts the max buffer size less than that to make life a bit easier. Signed-off-by: Takashi Iwai <tiwai@suse.de> Cc: <stable@kernel.org>
2009-07-20ALSA: hda - Fix pin-setup for Sony VAIO with STAC9872 codecsTakashi Iwai
The recent rewrite of the codec parser for STAC9872 caused a regression for some Sony VAIO models that don't give proper pin default configs by BIOS. Even using model=vaio doesn't work because the pin definitions are set after the pin overrides. This patch fixes the pin definitions in patch_stac9872() to be put in the right place before the pin overrides. Also the patch adds the new quirk entry for VAIO F/S to have the correct pin default configs. Signed-off-by: Takashi Iwai <tiwai@suse.de> Cc: <stable@kernel.org>
2009-07-20ALSA: hda - Add quirk for Gateway T6834c laptopHao Song
Gateway T6834c laptops need EAPD always on while the default behavior for the STAC9205 reference board is to turn it off upon every HP plug. By using the special "eapd" model, which is first introduced for Gateway T1616 laptops for this same reason, this peculiarity can be properly handled. Signed-off-by: Hao Song <baritono.tux@gmail.com> Cc: <stable@kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-07-19ALSA: OSS sequencer should be initialized after snd_seq_system_client_initJaswinder Singh Rajput
When build SND_SEQUENCER in kernel then OSS sequencer(alsa_seq_oss_init) is initialized before System (snd_seq_system_client_init) which leads to memory leak : unreferenced object 0xf6b0e680 (size 256): comm "swapper", pid 1, jiffies 4294670753 backtrace: [<c108ac5c>] create_object+0x135/0x204 [<c108adfe>] kmemleak_alloc+0x26/0x4c [<c1087de2>] kmem_cache_alloc+0x72/0xff [<c126d2ac>] seq_create_client1+0x22/0x160 [<c126e3b6>] snd_seq_create_kernel_client+0x72/0xef [<c1485a05>] snd_seq_oss_create_client+0x86/0x142 [<c1485920>] alsa_seq_oss_init+0xf6/0x155 [<c1001059>] do_one_initcall+0x4f/0x111 [<c14655be>] kernel_init+0x115/0x166 [<c10032af>] kernel_thread_helper+0x7/0x10 [<ffffffff>] 0xffffffff unreferenced object 0xf688a580 (size 64): comm "swapper", pid 1, jiffies 4294670753 backtrace: [<c108ac5c>] create_object+0x135/0x204 [<c108adfe>] kmemleak_alloc+0x26/0x4c [<c1087de2>] kmem_cache_alloc+0x72/0xff [<c126f964>] snd_seq_pool_new+0x1c/0xb8 [<c126d311>] seq_create_client1+0x87/0x160 [<c126e3b6>] snd_seq_create_kernel_client+0x72/0xef [<c1485a05>] snd_seq_oss_create_client+0x86/0x142 [<c1485920>] alsa_seq_oss_init+0xf6/0x155 [<c1001059>] do_one_initcall+0x4f/0x111 [<c14655be>] kernel_init+0x115/0x166 [<c10032af>] kernel_thread_helper+0x7/0x10 [<ffffffff>] 0xffffffff unreferenced object 0xf6b0e480 (size 256): comm "swapper", pid 1, jiffies 4294670754 backtrace: [<c108ac5c>] create_object+0x135/0x204 [<c108adfe>] kmemleak_alloc+0x26/0x4c [<c1087de2>] kmem_cache_alloc+0x72/0xff [<c12725a0>] snd_seq_create_port+0x51/0x21c [<c126de50>] snd_seq_ioctl_create_port+0x57/0x13c [<c126d07a>] snd_seq_do_ioctl+0x4a/0x69 [<c126d0de>] snd_seq_kernel_client_ctl+0x33/0x49 [<c1485a74>] snd_seq_oss_create_client+0xf5/0x142 [<c1485920>] alsa_seq_oss_init+0xf6/0x155 [<c1001059>] do_one_initcall+0x4f/0x111 [<c14655be>] kernel_init+0x115/0x166 [<c10032af>] kernel_thread_helper+0x7/0x10 [<ffffffff>] 0xffffffff The correct order should be : System (snd_seq_system_client_init) should be initialized before OSS sequencer(alsa_seq_oss_init) which is equivalent to : 1. insmod sound/core/seq/snd-seq-device.ko 2. insmod sound/core/seq/snd-seq.ko 3. insmod sound/core/seq/snd-seq-midi-event.ko 4. insmod sound/core/seq/oss/snd-seq-oss.ko Including sound/core/seq/oss/Makefile after other seq modules fixes the ordering and memory leak. Signed-off-by: Jaswinder Singh Rajput <jaswinderrajput@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-07-19ALSA: sound/isa: convert nested spin_lock_irqsave to spin_lockJulia Lawall
If spin_lock_irqsave is called twice in a row with the same second argument, the interrupt state at the point of the second call overwrites the value saved by the first call. Indeed, the second call does not need to save the interrupt state, so it is changed to a simple spin_lock. The semantic match that finds this problem is as follows: (http://www.emn.fr/x-info/coccinelle/) // <smpl> @@ expression lock1,lock2; expression flags; @@ *spin_lock_irqsave(lock1,flags) ... when != flags *spin_lock_irqsave(lock2,flags) // </smpl> Signed-off-by: Julia Lawall <julia@diku.dk> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-07-19ALSA: hda_codec: Check for invalid zero connectionsJaroslav Kysela
To prevent "Too many connections" message and the error path for some HDMI codecs (which makes onboard audio unusable), check for invalid zero connections for CONNECT_LIST verb. Signed-off-by: Jaroslav Kysela <perex@perex.cz> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-07-16Merge branch 'fix/usb-audio' into for-linusTakashi Iwai
* fix/usb-audio: sound: usb-audio: add workaround for Blue Microphones devices
2009-07-16Merge branch 'fix/misc' into for-linusTakashi Iwai
* fix/misc: ALSA: riptide - proper handling of pci_register_driver for joystick
2009-07-16Merge branch 'fix/hda' into for-linusTakashi Iwai
* fix/hda: ALSA: hda_intel: more strict alc880_parse_auto_config dig_nid checking
2009-07-16Merge branch 'fix/asoc' into for-linusTakashi Iwai
* fix/asoc: ASoC: Fix NULL pointer dereference in __pxa2xx_pcm_hw_free