aboutsummaryrefslogtreecommitdiffstats
path: root/sound
Commit message (Collapse)AuthorAgeFilesLines
* ASoC: Fix WM8960 leaks on probe failureMark Brown2009-07-051-5/+11
| | | | Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* ASoC: Fix leaks in WM8731 probe error handlingMark Brown2009-07-051-5/+12
| | | | Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* ASoC: Add CODEC volatile register operationMark Brown2009-07-051-0/+17
| | | | | | | | Add a volatile_register() operation to the CODEC structure providing a standard operation to query if a register is volatile. This will be used to factor out the register cache I/O operations for the CODECs. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* ASoC: DaVinci: i2s, add davinci_i2s_prepare and shutdownTroy Kisky2009-07-051-1/+27
| | | | | | | | If the codec is master then prepare should call mcbsp_start, not trigger. Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* ASoC: DaVinci: i2s, fix mcbsp_word_length updateTroy Kisky2009-07-051-21/+29
| | | | | | | | Code previously just "ors" in this field without clearing first. Fix, by never reading this register. Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* ASoC: DaVinci: i2s, minor cleanup of davinci_i2s_startupTroy Kisky2009-07-051-6/+2
| | | | | | | Save a few lines of code. Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* ASoC: DaVinci: i2s, only start sample generator if neededTroy Kisky2009-07-051-18/+14
| | | | | | | | Only start sample generator if needed, and more cleanup on davinci_mcbsp_start. Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* ASoC: DaVinci: i2s cleanupTroy Kisky2009-07-051-3/+2
| | | | | | | Move variable declaration closer to use. Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* ASoc: DaVinci: i2s, minor cleanupTroy Kisky2009-07-051-8/+8
| | | | | | | | Add davinci_mcbsp_dev as argument to davinci_mcbsp_start and davinci_mcbsp_stop. Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* ASoC: DaVinci: i2s toggle clock to complete resetTroy Kisky2009-07-051-6/+25
| | | | | | | Add toggle_clock function to complete i2s reset earlier. Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* ASoC: DaVinci: i2s, remove MOD_REG_BIT macroTroy Kisky2009-07-051-52/+44
| | | | | | | | No functional changes. Rename variable w to something more meaningful. Remove code obfuscating macro MOD_REG_BIT. Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* ASoC: TWL4030: Add tristate callbacks for HiFi and VoiceLopez Cruz, Misael2009-07-031-0/+28
| | | | | | | | | | Add "set_tristate" callbacks for HiFi and Voice DAIs. Machine drivers can enable and disable tristate for each DAI with "snd_soc_dai_set_tristate" function. Signed-off-by: Misael Lopez Cruz <x0052729@ti.com> Acked-by: Peter Ujfalusi <peter.ujfalusi@nokia.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* ASoC: Zoom2: Update twl4030_setup_data parametersCandelaria Villareal, Jorge2009-07-031-2/+15
| | | | | | | | | | | | | | Add support for EXTMUTE in Zoom2 machine driver. This is necessary to further reduce pop noise problem. Signal EXTMUTE is connected to signal GPIO 153 in Zoom2 board. In addition, change ramp delay value to 3 (218/161/109 ms). With previous ramp delay value, pop noise was louder. With a longer value the beep tone can be observed. Signed-off-by: Jorge Eduardo Candelaria <x0107209@ti.com> Acked-by: Peter Ujfalusi <peter.ujfalusi@nokia.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* ASoC: TWL4030: Add EXTMUTE to reduce pop-noise effectCandelaria Villareal, Jorge2009-07-022-0/+29
| | | | | | | | | | | | | | | | | | | | | | According to TRM, an external FET controlled by a 1.8V output signal can be used to reduce the pop-noise heard when the audio amplifier is switched on. It is suggested that GPIO6 of TWL4030 be used, but any other gpio can be used instead. This is indicated in machine driver with the following twl4030_setup_data members: -hs_extmute. Set to 1 if board has support for EXTMUTE. -set_hs_extmute. Set to a callback funcion to control an external gpio line. Set to NULL if MUTE[GPIO6] pin is used. Codec driver takes care of enabling and disabling this output during the headset pop attenuation sequence. Also add a delay to let VMID settle in ramp up sequence. Signed-off-by: Jorge Eduardo Candelaria <x0107209@ti.com> Acked-by: Peter Ujfalusi <peter.ujfalusi@nokia.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* Merge branch 'for-2.6.31' into for-2.6.32Mark Brown2009-07-013-8/+16
|\
| * ASoC: Only disable pxa2xx-i2s clocks if we enabled themMark Brown2009-07-011-1/+6
| | | | | | | | | | | | | | The clock API can't cope with unbalanced enables and disables and we only enable in hw_params() but try to disable in shutdown. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| * ASoC: OMAP: fix OMAP1510 broken PCM pointer callbackJanusz Krzysztofik2009-06-301-4/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch tries to work around the problem of broken OMAP1510 PCM playback pointer calculation by replacing DMA function call that incorrectly tries to read the value form DMA hardware with a value computed locally from an already maintained variable omap_runtime_data.period_index. Tested on OMAP5910 based Amstrad Delta (E3) using work in progress ASoC driver. Based on linux-2.6-asoc.git v2.6.31-rc1. Signed-off-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl> Acked-by: Jarkko Nikula <jhnikula@gmail.com> Acked-by: Peter Ujfalusi <peter.ujfalusi@nokia.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| * ASoC: remove BROKEN from Efika and pcm030 fabric driversGrant Likely2009-06-301-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | The needed spin_event_timeout() macro is now merged in from the powerpc tree, so these drivers are no longer broken. This reverts commit 0c0e09e21a9e7bc6ca54e06ef3d497255ca26383 (ASoC: Mark MPC5200 AC97 as BROKEN until PowerPC merge issues are resolved) Tested against 2.6.31-rc1. Signed-off-by: Grant Likely <grant.likely@secretlab.ca> Acked-by: Jon Smirl <jonsmirl@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| * ASoC: Fix typo in MPC5200 PSC AC97 driver KconfigGrant Likely2009-06-301-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | ALSA SoC drivers should be specify SND_SOC_AC97_BUS instead, not AC97_BUS. Without SND_SOC_AC97_BUS defined, an AC97 device will not get correctly registered on the AC97 bus, which prevents thinks like the WM9712 touchscreen driver from getting probed. Tested against 2.6.31-rc1. Signed-off-by: Grant Likely <grant.likely@secretlab.ca> Acked-by: Jon Smirl <jonsmirl@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC: Add WM8523 CODEC driverMark Brown2009-07-014-0/+921
| | | | | | | | | | | | | | | | The WM8523 is a high performance stereo DAC with integral charge pump providing 2Vrms line driver outputs using a single 3.3V power supply rail. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC: Convert to dev_pm_opsMark Brown2009-06-301-11/+19
| | | | | | | | Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC: Fix WM8961 suspend function typeMark Brown2009-06-291-1/+1
| | | | | | | | Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC: Fix widget powerdown on shutdownMark Brown2009-06-261-0/+1
| | | | | | | | | | | | We need to set the widget power state we want to implement. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC: Remove word "Switch" from Handsfree switch nameLopez Cruz, Misael2009-06-261-6/+6
| | | | | | | | | | | | | | | | | | | | SoC dapm adds the suffix "Switch" to SND_SOC_DAPM_SWITCH controls, removing word "Switch" from HandsfreeL/HandsfreeR widget name for avoiding to duplicate it. Signed-off-by: Misael Lopez Cruz <x0052729@ti.com> Acked-by: Peter Ujfalusi <peter.ujfalusi@nokia.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC: txx9aclc: dynamically allocate dmaengine devnameAtsushi Nemoto2009-06-251-4/+6
| | | | | | | | | | | | | | | | | | Use kasprintf to allocate temporary devname string instead of a fixed size string. This fixes "FIXME" introduced on removal of BUS_ID_SIZE. Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | Merge branch 'for-2.6.32' of ↵Takashi Iwai2009-06-2528-348/+3415
|\ \ | |/ |/| | | git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound-2.6 into topic/asoc
| * Merge branch 'for-2.6.31' into for-2.6.32Mark Brown2009-06-257-20/+23
| |\
| * | ASoC: Add core suspend and resume callbacks to WM8961Mark Brown2009-06-251-0/+17
| | | | | | | | | | | | Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| * | ASoC: Add a shutdown callbackMark Brown2009-06-232-0/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Ensure that the audio subsystem is powered down cleanly when the system shuts down by providing a shutdown operation. This ensures that all the components have been returned to an off state cleanly which should avoid audio issues from partially charged capacitors or noise on digital inputs if the system is restarted quickly. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Tested-by: Ben Dooks <ben-linux@fluff.org>
| * | ASoC: TWL4030: Correct bypass event for voice sidetoneLopez Cruz, Misael2009-06-231-7/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Event for voice sidetone was being interpreted as an analog HiFi bypass event because VSTPGA register offset is less than ARXR2_APGA_CTL offset. Reordering the register checks allows to handle voice digital bypass event properly. Signed-off-by: Misael Lopez Cruz <x0052729@ti.com> Acked-by: Peter Ujfalusi <peter.ujfalusi@nokia.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| * | ASoC: TWL4030: Add AVADC Clock PriorityLopez Cruz, Misael2009-06-231-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | AVDAC clk priority allows to determine the path ADC must be connected when the codec is in option2 and both HiFi and Voice paths are enabled. Signed-off-by: Misael Lopez Cruz <x0052729@ti.com> Acked-by: Peter Ujfalusi <peter.ujfalusi@nokia.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| * | ASoC: TWL4030: Fix voice interface clock mastersLopez Cruz, Misael2009-06-223-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | Voice interface of twl4030 codec supports: CBM_CFM and CBS_CFS. It doesn't support CBS_CFM. Signed-off-by: Misael Lopez Cruz <x0052729@ti.com> Acked-By: Peter Ujfalusi <peter.ujfalusi@nokia.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| * | Merge branch 'wm8961' into for-2.6.32Mark Brown2009-06-224-0/+2181
| |\ \
| | * | ASoC: Add WM8961 driverMark Brown2009-06-124-0/+2181
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The WM8961 is a low power, high quality stereo CODEC designed for portable digital applications with headphone and stereo class D speaker drivers. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| * | | ASoC: Blackfin: convert internal names from bf52x to bf5xxBarry Song2009-06-202-16/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These drivers aren't BF52x specific, so don't use bf52x in the names. Signed-off-by: Barry Song <barry.song@analog.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| * | | ASoC: Staticise put_twl4030_opmode_enum_double()Mark Brown2009-06-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | It's an operation for a control and doesn't need to be exported. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| * | | ASoC: Fix shadowed variables in twl4030Mark Brown2009-06-201-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | No need to define second copies of mode and format, they're declared with exactly the same type at the head of the function and there's no conflict in their use. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| * | | ASoC: Regulator support for WM8580Mark Brown2009-06-171-3/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add basic support for integration with the regulator API to WM8580. Since the core cannot yet disable biases when the CODEC is idle we simply request and enable the regulators for the entire time the driver is active. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| * | | ASoC: UDA1380: refactor device registrationPhilipp Zabel2009-06-153-176/+199
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch mostly follows commit 5998102b9095fdb7c67755812038612afea315c5 "ASoC: Refactor WM8731 device registration" to make UDA1380 use standard device instantiation. Similarly, the I2C device registration temporarily moves into the magician machine driver before it will find its final resting place in the board file. At the same time, platform specific configuration is moved to platform data and common power/reset GPIO handling moves into the codec driver. Signed-off-by: Philipp Zabel <philipp.zabel@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| * | | ASoC: Add suspend and resume callbacks to Wolfson CODEC driversMark Brown2009-06-1311-0/+244
| | | | | | | | | | | | | | | | Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| * | | ASoC: Add stub suspend and resume calls for ASoC subdevicesMark Brown2009-06-131-0/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Now that ASoC subdevices can be regular devices they can have normal suspend and resume calls from their buses. However, suspending them individually is not desirable since this can lead to problems such as pops and clicks from devices being suspended with their signals being amplified or clocks being stopped suddenly. This will be resolved by having the normal device model suspend and resume calls call into ASoC which will suspend the entire card while any of its components are suspended. At present this is not yet implemented but in order to aid the transition of drivers to the standard device model this patch adds API calls for the notifications. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| * | | ASoC: Automatically manage WM8350 sloping stopband filterMark Brown2009-06-131-6/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For best performance the DAC sloping stopband filter should be enabled below 24kHz and not enabled above that so remove the user visible control for this and do it autonomously in the driver. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| * | | ASoC: Automatically manage WM8900 sloping stopband filterMark Brown2009-06-131-1/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For best performance the DAC sloping stopband filter should be enabled below 24kHz and not enabled above that so remove the user visible control for this and do it autonomously in the driver. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| * | | ASoC: Automatically control WM8903 sloping stopband filterMark Brown2009-06-131-2/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For best performance the DAC sloping stopband filter should be enabled below 24kHz and not enabled above that so remove the user visible control for this and do it autonomously in the driver. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| * | | ASoC: Zoom2: Add machine driver for Zoom2 boardLopez Cruz, Misael2009-06-123-0/+310
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add support for Zoom2 board. Zoom2 machine driver connects both codec DAIs (audio and voice) to omap3 McBSP ports in the following way: HiFi <-> McBSP2 Voice <-> McBSP3 The zoom2 driver has the following DAPM widgets: * Ext Mic: MAINMIC, SUBMIC (with bias) * Ext Spk: HFL, HFR * Headset Stereophone: HSOL, HSOR * Headset Mic: HSMIC (with bias) * Aux In: AUXL, AUXR Signed-off-by: Misael Lopez Cruz <x0052729@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| * | Merge branch 'dapm' into for-2.6.32Mark Brown2009-06-111-75/+227
| |\ \
| | * | ASoC: Make DAPM power sequence lists local variablesMark Brown2009-06-081-11/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | They are now only accessed within dapm_power_widgets() so can be local to that function. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| | * | ASoC: Coalesce power updates for PGAsMark Brown2009-06-081-2/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Handle gain ramping for PGAs so we can coalesce their power updates too. This is not ideal since we can't cope properly with gain ramping for stereo paths but that was the case without coalescing and gain ramping is relatively infrequently used so the effects are limited. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| | * | ASoC: Coalesce power updates for DAPM widgets with eventsMark Brown2009-06-081-16/+60
| | | | | | | | | | | | | | | | Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| | * | ASoC: Sort specialised mixers and muxes togetherMark Brown2009-06-081-17/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The more flexible value muxes and named mixers don't need to be sorted differently from a power management point of view, they are different only in terms of the control interface and not in terms of seqencing behaviour. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>