aboutsummaryrefslogtreecommitdiff
path: root/sound
AgeCommit message (Collapse)Author
2009-08-12ALSA: hda - fix noise issue when recording from digital mic with alc268Herton Ronaldo Krzesinski
With auto config model of alc268 realtek codec, it allows to select any of possible available digital microphone inputs when only one is available. For example, when only digital mic in nid 0x12 is available, on second input source it will allow you to select unavailable digital mic in nid 0x13. The problem is that selecting unavailable digital mic creates a source of noise when recording (I'm not sure if this happens on all machines with alc268 and only one digital mic input, but testing on a quanta uw1 netbook a lot of noise is introduced in recording from digital mic 0x12/first input source, when you select the unavailable digital mic 0x13 for capture source 0x24 in the second input source in mixer). Then to avoid noise when recording from digital mic with auto model in this case, prevent a digital mic input source to be selected if microphone is not available. Signed-off-by: Herton Ronaldo Krzesinski <herton@mandriva.com.br> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-08-11ALSA: hda - Clean up init and setup hooks for Realtek codecsTakashi Iwai
Move static codes to setup from init_hook for each model. Also, use the common auto-mic selection helper for devices that support auto-mic selection. They just need to set up ext_mic, int_mic and auto_mic flag in the setup section. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-08-11ASoC: Update WM9081 for tdm_slot() API changeMark Brown
Store the TDM slot width then if it's set use that rather than the sample size to calculate BCLK. Leave imposing constraints to the core (which should do this but doesn't yet) or machine driver. Also allow 0 TDM slots to be configure (for use when disabling TDM). Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2009-08-11ALSA: hda - Add setup hook to ALC preset structTakashi Iwai
Added setup hook to ALC preset struct to be called at in the parser but not at each init callback. This can be used for setting up the static pins, etc, while the init hook should be used for updating the status again. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-08-11ALSA: hda - Add a white-list for MSI optionTakashi Iwai
Created a white-list to enable MSI since some devices require MSI explicitly due to BIOS/ACPI problems. Simply using a quirk list. As the first case, take HP Compaq CQ40. Reference: Novell bnc#529971 https://bugzilla.novell.com/show_bug.cgi?id=529971 Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-08-11Merge commit 'a5479e389e989acfeca9c32eeb0083d086202280' into for-2.6.32Mark Brown
2009-08-11ASoC: fix I2C build errorsRandy Dunlap
Fix soc build errors when I2C is built as a loadable module: (.text+0x5d26b): undefined reference to `i2c_master_send' soc-cache.c:(.text+0x5d32d): undefined reference to `i2c_transfer' Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2009-08-11ALSA: hda - Check connectivity for auto-mic of Realtek codecsTakashi Iwai
Some Realtek codecs don't provide the full connections for certain pins from each ADC; e.g. ACL662/ALC272 gives only one of two digital-mic pins for each ADC. Thus, depending on the digital mic pin, the ADC/MUX to be used has to be chosen properly. This patch adds the check of the connectivity of pins at auto-mic mode. If no proper connectivity is found, auto_mic flag is turned off to be sure. Also the mux_idx is determined during this check so it won't be checked in the unsol event any more. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-08-11Merge branch 'fix/hda' into topic/hdaTakashi Iwai
2009-08-11ALSA: hda - Don't override ADC definitions for ALC codecsTakashi Iwai
ALC269 and ALC861-VD parsers override the ADC definitions unconditionally without checking the spec definition. This causes the problem when any inconsistent ADC is set up in the device quirk (like ALC272 with digital-mic). This patch avoids the overriding by adding the proper checks. Reference: Novell bnc#529467 https://bugzilla.novell.com/show_bug.cgi?id=529467 Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-08-11ALSA: usb-audio - Fix types taken in min()Takashi Iwai
Fix the compile warning due to different integer types used in min(): sound/usb/usbaudio.c: In function 'init_substream_urbs': sound/usb/usbaudio.c:1087: warning: comparison of distinct pointer types lacks a cast Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-08-10ALSA: hda - Use only one capture stream for auto-micTakashi Iwai
When the auto-mic feature is enabled, we should support only one capture stream. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-08-10ALSA: hda - Add auto-mic support for Realtek codecsTakashi Iwai
Added the support for automatic mic selection via plugging for Realtek codecs (in auto-probing mode). The auto-mic mode is enabled only when one internal mic and one external mic are present. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-08-10sound: make OSS device number claiming optional and schedule its removalTejun Heo
If any OSS support is enabled, regardless of built-in or module, sound_core claims full OSS major number (that is, the old 0-255 region) to trap open attempts and request sound modules using custom module aliases. This feature is redundant as chrdev already has such mechanism. This preemptive claiming prevents alternative OSS implementation. The custom module aliases are scheduled to be removed and the previous patch made soundcore emit the standard chrdev aliases too to help transition. This patch schedule the feature for removal in a year and makes it optional so that developers and distros can try new things in the meantime without rebuilding the kernel. The pre-claiming can be turned off by using SOUND_OSS_CORE_PRECLAIM and/or kernel parameter soundcore.preclaim_oss. As this allows sound minors to be individually grabbed by other users, this patch updates sound_insert_unit() such that if registering individual device region fails, it tries the next available slot. For details on removal plan, please read the entry added by this patch in feature-removal-schedule.txt . Signed-off-by: Tejun Heo <tj@kernel.org> Cc: Alan Cox <alan@lxorguk.ukuu.org.uk> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-08-10ASoC: Drop unneeded declaration of removed wm8731 SPI write functionMark Brown
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2009-08-10sound: request char-major-* module aliases for missing OSS devicesTejun Heo
Till now missing OSS devices emitted sound-slot/service-* module alises instead of the standard char-major-* if a missing device number is opened if soundcore is loaded. The custom module aliases don't have any inherent benefit than backward compatibility. sound-slot/service-* module aliases is scheduled to be removed and to help the transition this patch makes soundcore emit the standard module alises along with the custom ones. Signed-off-by: Tejun Heo <tj@kernel.org> Cc: Alan Cox <alan@lxorguk.ukuu.org.uk> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-08-10sound: fix OSS MIDI output data lossClemens Ladisch
In the 2.1.6 kernel, the output loop in midi_poll() was changed to enable interrupts during the outputc() call. Unfortunately, the check whether the device has accepted the current byte ("ok") was moved behind the code that removes the byte from the output queue, so one byte would be lost every time the hardware FIFO is full. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-08-10sound: ymfpci: increase timer resolution to 96 kHzClemens Ladisch
Allow the interval timer to be programmed with its full 96 kHz precision. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-08-10sound: usb-audio: do not make URBs longer than sync packet intervalClemens Ladisch
Using more packets in one URB do avoid interrupts does not make sense when we have a sync pipe whose packets generate interrupts more often. Therefore, limit the URB size to the synchronization packet interval. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-08-10Merge branch 'fix/hda' into topic/hdaTakashi Iwai
2009-08-10ALSA: hda - Add missing vmaster initialization for ALC269Takashi Iwai
Without the initialization of vmaster NID, the dB information got confused for ALC269 codec. Reference: Novell bnc#527361 https://bugzilla.novell.com/show_bug.cgi?id=527361 Signed-off-by: Takashi Iwai <tiwai@suse.de> Cc: <stable@kernel.org>
2009-08-10ALSA: hda - Fix Oops due to STAC/IDT auto-mic changesTakashi Iwai
The previous auto-mic patch for STAC/IDT codecs causes the Oops on machines without digital mic pins. This patch fixes the problem. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-08-08ASoC: Convert WM8776 to use factored out register cache codeMark Brown
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2009-08-08ASoC: DaVinci: Support Audio on DA830 EVMChaithrika U S
Add support for audio on DA830 EVM- here McASP1 is interfaced to TLV320AIC3106 codec. Signed-off-by: Chaithrika U S <chaithrika@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2009-08-08ASoC: s3c2443-ac97: convert semaphore to mutexUwe Kleine-König
This fixes a build failure for 2.6.31-rc4-rt1 (ARCH=arm, s3c2410_defconfig): CC [M] sound/soc/s3c24xx/s3c2443-ac97.o sound/soc/s3c24xx/s3c2443-ac97.c:50: warning: type defaults to 'int' in declaration of 'DECLARE_MUTEX' sound/soc/s3c24xx/s3c2443-ac97.c:50: warning: parameter names (without types) in function declaration sound/soc/s3c24xx/s3c2443-ac97.c: In function 's3c2443_ac97_read': sound/soc/s3c24xx/s3c2443-ac97.c:59: error: 'ac97_mutex' undeclared (first use in this function) sound/soc/s3c24xx/s3c2443-ac97.c:59: error: (Each undeclared identifier is reported only once sound/soc/s3c24xx/s3c2443-ac97.c:59: error: for each function it appears in.) sound/soc/s3c24xx/s3c2443-ac97.c: In function 's3c2443_ac97_write': sound/soc/s3c24xx/s3c2443-ac97.c:93: error: 'ac97_mutex' undeclared (first use in this function) Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2009-08-07ASoC: Add missing DRV_NAME definitions for fsl/* driversTakashi Iwai
Module builds are broken due to missing DRV_NAME for efika-audio-fabric and pcm030-audio-fabric. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-08-07TTY/ASoC: Rename N_AMSDELTA line discipline to N_V253Janusz Krzysztofik
The patch changes the line discipline name registered in include/linux/tty.h and updates the ams-delta machine driver to use it. Signed-off-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2009-08-07Merge branch 'reg-cache' into for-2.6.32Mark Brown
2009-08-07Merge branch 'for-2.6.31' into for-2.6.32Mark Brown
2009-08-07ASoC: DaVinci: pcm, constrain buffer size to multiple of periodTroy Kisky
The dma setup code assumes that the buffer size is a multiple of the period size. Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2009-08-07ASoC: DaVinci: i2s: don't bounce through rtd to get daiTroy Kisky
dai is a parameter to the functions, so use it instead of looking it up. Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2009-08-07ARM: OMAP: McBSP: Fix ASoC on OMAP1510 by fixing API of omap_mcbsp_start/stopJarkko Nikula
Simultaneous audio playback and capture on OMAP1510 can cause that second stream is stalled if there is enough delay between startup of the audio streams. Current implementation of the omap_mcbsp_start is starting both transmitter and receiver at the same time and it is called only for firstly started audio stream from the OMAP McBSP based ASoC DAI driver. Since DMA request lines on OMAP1510 are edge sensitive, the DMA request is missed if there is no DMA transfer set up at that time when the first word after McBSP startup is transmitted. The problem hasn't noted before since later OMAPs are using level sensitive DMA request lines. Fix the problem by changing API of omap_mcbsp_start and omap_mcbsp_stop by allowing to start and stop individually McBSP transmitter and receiver logics. Then call those functions individually for both audio playback and capture streams. This ensures that DMA transfer is setup before transmitter or receiver is started. Thanks to Janusz Krzysztofik <jkrzyszt@tis.icnet.pl> for detailed problem analysis and Peter Ujfalusi <peter.ujfalusi@nokia.com> for info about DMA request line behavior differences between the OMAP generations. Reported-and-tested-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl> Signed-off-by: Jarkko Nikula <jhnikula@gmail.com> Acked-by: Tony Lindgren <tony@atomide.com> Acked-by: Peter Ujfalusi <peter.ujfalusi@nokia.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2009-08-06ASoC: change set_tdm_slot api to allow slot_width override.Daniel Ribeiro
Extend set_tdm_slot to allow the user to arbitrarily set the frame width and active TX/RX slots. Updates magician.c and wm9081.c for the new set_tdm_slot(). wm9081.c still doesn't handle the slot_width override. While being there, correct an incorrect use of SlotsPerFrm(7) use in bitmask on pxa-ssp.c (SSCR0_SlotsPerFrm(x) is (((x) - 1) << 24)) ). (this series is meant for Mark's for-2.6.32 branch) Signed-off-by: Daniel Ribeiro <drwyrm@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2009-08-06ASoC: CX20442: simplify codec controller usageJanusz Krzysztofik
This patch is a workaround for the problem of several subsequent control statements not being applied correctly to the codec controller (modem). In order to follow the hook switch state change from handset to handsfree while in full duplex mode, two consecutive +VLS control commands were sent to the modem. The first one was M1 (microphone only), the seconds one was M1S1 (both microphone and speaker). As there was no real modem handshaking procedure implemented, neither in the codec nor in the machine driver part of the line discipline, the modem was having the second command missed. Since a possibility to switch to microphone only mode (and speaker only mode as well) seams of no value, I have modified the code to issue single M1S1 command only for any of those cases. Tested on my Amstrad Delta. Signed-off-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2009-08-06ASoC: CX20442: add some debuggingJanusz Krzysztofik
This patch adds debugging statement that can help in tracing how the driver is trying to control the codec device. Signed-off-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2009-08-06ASoC: Add WM8776 CODEC driverMark Brown
The WM8776 is a high performance, stereo audio CODEC with five channel input selector. The WM8776 is ideal for surround sound processing applications for home hi-fi, DVD-RW and other audio visual equipment. This driver implements support for most WM8776 features - currently the ADC automatic level control/limiter functionality is omitted. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2009-08-06ALSA: hda - Add quirks for some HP laptopsTakashi Iwai
The new HP laptops have PCI SSID 103c:701x and requires model=hp-dv5. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-08-05ASoC: Fix review issues in i.MX2x PCM driverjavier Martin
Signed-off-by: javier Martin <javier.martin@vista-silicon.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2009-08-05ASoC: add machine driver for i.mx27_visstrim_m10 boardjavier Martin
This adds support for i.mx27_visstrim_sm10 board machine driver which uses an i.mx27 processor plus a wm8974 codec. It has been tested on a visstrim_sm10 board. Signed-off-by: Javier Martin <javier.martin@vista-silicon.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2009-08-05ASoC: add DAI platform ssi driver for MXCjavier Martin
This adds support for DAI platform for the SSI present in MXC platforms. It currently does not support i.MX3, the only thing necessary to do this is to export DMA data for i.MX3 interface which I haven't done because I don't have a i.MX3 based board available. It has been tested on i.MX27 board. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2009-08-05ASoC: add DMA platform driver for MX1x and MX2xjavier Martin
This adds support for DMA platform valid for i.MX1 and i.MX2 platforms. This is not valid for i.MX3 since it doesn't share the same DMA interface than i.MX1 and i.MX2. It has been tested on i.MX27 board. Signed-off-by: Javier Martin <javier.martin@vista-silicon.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2009-08-05ALSA: ASoC: cs4270: move power management hooks to snd_soc_codec_deviceDaniel Mack
Power management for the cs4270 codec is currently implemented as part of the i2c_driver struct. The disadvantage of doing it this way is that the callbacks registered in the snd_soc_card struct are called _before_ the codec's callbacks. That doesn't work, because the snd_soc_card callbacks will most likely switch down the codec's power domains or pull the reset GPIOs, and hence make the i2c communication bail out. Fix this by binding the suspend and resume code to the snd_soc_codec_device driver model and let the I2C functions only call the SoC core function for resume and suspend, which do nothing currently but will do later. Signed-off-by: Daniel Mack <daniel@caiaq.de> Cc: Timur Tabi <timur@freescale.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2009-08-05ASoC: MPC5200: Support for buffer wrap aroundJohn Bonesio
The code in psc_dma_bcom_enqueue_tx() didn't account for the fact that s->runtime->control->appl_ptr can wrap around to the beginning of the buffer. This change fixes this problem. Signed-off-by: John Bonesio <bones@secretlab.ca> Acked-by: Grant Likely <grant.likely@secretlab.ca> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2009-08-05ASoC: Existing S3C24xx AC97 drivers should depend on S3C24xxMark Brown
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
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-04ALSA: hda - Fix line-out jack handling with STAC/IDT codecTakashi Iwai
When the line-out jack is plugged/unplugged, the driver needs to check the headphone plug, not only the line-out jack itself. Otherwise the headphone or the speaker may be wrongly muted/unmuted. As a result, both STAC_HP_EVENT and STAC_LO_EVENT need to call the same function, stac92xx_hp_detect(). Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-08-03ASoC: Factor out 7 bit register 9 bit data SPI writeMark Brown
This converts all the Wolfson drivers using this format (the only devices that do) except WM8753 to use it. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2009-08-03ASoC: Factor out I/O for Wolfson 8 bit data 16 bit register CODECsMark Brown
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2009-08-03ASoC: Factor out I2C 8 bit address 16 bit data I/OMark Brown
As part of this refactoring the type of the CODEC hw_read operation is changed to match the regular read operation. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2009-08-03ASoC: Add I/O control bus information to factored out cache setupMark Brown
While writes tend to be able to use a fairly bus independant format to do the writes reads are all bus specific. To allow us to factor out this code include the bus type as a parameter when setting up the cache. Initially just use this to factor out hw_write_t for I2C. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>