aboutsummaryrefslogtreecommitdiffstats
path: root/sound
Commit message (Collapse)AuthorAgeFilesLines
* ASoC: McPDM - Add ABE McPDM supportLiam Girdwood2011-06-145-717/+810
| | | | | | | | This driver replaces the legacy McPDM driver in that it supports both legacy and ABE McPDM support. Signed-off-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
* ASoC: twl6040 - Configure ramp step based on platformAxel Castaneda Gonzalez2011-06-141-20/+71
| | | | | | | | Enable ramp down/up step to be configured based on platform. Signed-off-by: Axel Castaneda Gonzalez <x0055901@ti.com> Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
* ASoC: twl6040: Fix volume range for MICGAINL/MICGAINRRicardo Neri2011-06-141-2/+2
| | | | | | | According to TWL6040 specification, gain start at 6dB and not -6dB. Change-Id: I62cd12372e249a7bb1a7887d75429a349a5b2c00 Signed-off-by: Ricardo Neri <ricardo.neri@ti.com>
* ASoC: twl6040 - set default constraints.Liam Girdwood2011-06-141-0/+1
| | | | | | Set default sysclk constraints to high performance mode. Signed-off-by: Liam Girdwood <lrg@ti.com>
* ASoC: twl6040: Convert to TWL6040 MFD clientMisael Lopez Cruz2011-06-143-445/+81
| | | | | | | | | | | | | | TWL6040 CODEC driver is a client of TWL6040 MFD, following modifications are done: - skip access to shared registers (vibrator, gpo, pll) - remove shared operations (power-up/down, irq) - use new MFD APIs for register access, pll setting and irq handling - register definitions are removed from header file as already defined in MFD code Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
* ASoC: twl6040: Remove pll and headset mode dependencyMisael Lopez Cruz2011-06-141-9/+60
| | | | | | | | | | | | Remove dependency between pll (hppll, lppll) and headset power mode (low-power, high-performance), as headset power mode can be used with any pll. A new control is created to allow headset power mode configuration from userspace. Changing headset power mode during earpiece related usecases is not allowed as earpiece requires HS DAC in HP mode. Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
* ASoC: twl6040 - Support other sample rates in constraintsLiam Girdwood2011-06-141-0/+11
| | | | | | Add other supported sample rates to LP and HP modes. Signed-off-by: Liam Girdwood <lrg@ti.com>
* ASoC: twl6040: add all ABE DAIsLiam Girdwood2011-06-141-7/+35
| | | | | | Add all DAIs to fully support OMAP4 ABE. Signed-off-by: Liam Girdwood <lrg@ti.com>
* ALSA: pcm - reject calls to open backend PCMsLiam Girdwood2011-06-141-0/+6
| | | | | | This stops userspace opening backlemd PCMs. Signed-off-by: Liam Girdwood <lrg@ti.com>
* ASoC: core - add hostless DAI supportLiam Girdwood2011-06-143-0/+50
| | | | | | | | | Allow some PCM devices to be hostless, i.e. there is no PCM data transferred to or from the host CPU. This can be used to minimise power on systems since the CPU can idle/sleep during the PCM device operation (e.g. a phone call where the DAI is between a MODEM and DSP) Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
* ASoC: core - add dynamic kcontrolsLiam Girdwood2011-06-142-9/+10
| | | | | | Add initial implementation of dynamic kcontrols. Signed-off-by: Liam Girdwood <lrg@ti.com>
* ASoC: dsp - Add ASoC DSP coreLiam Girdwood2011-06-144-55/+1788
| | | | | | | | | | | | | | This adds ASoC core support for internal and external DSPs and represents them to the audio user as a CODEC like device with mixers, muxes and runtime audio route changing. The DSP core allows DSP DAIs to be dynamically re-routed at runtime between the PCM device end (or Frontend - FE) and the physical DAI (Backend - BE) using regular kcontrols (just like a hardware CODEC). The DSP core also deal with DSP FE+BE suspend and resume PM ops. Signed-off-by: Liam Girdwood <lrg@ti.com>
* ASoC: dapm - allow custom widgets to update power events.Liam Girdwood2011-06-141-11/+20
| | | | | | | | | | | | In preparation for ASoC DSP support. Allow for the operation of custom mixer and mux DAPM widgets that can call snd_soc_dapm_mixer_update_power() and snd_soc_dapm_mux_update_power() directly after updating their status. This adds two previously static calls to the public DAPM API. Signed-off-by: Liam Girdwood <lrg@ti.com>
* ASoC: dapm - Add locking to the DAPM power_widgets()Liam Girdwood2011-06-142-4/+7
| | | | | | Add locking to the DAPM power_widgets function. Signed-off-by: Liam Girdwood <lrg@ti.com>
* ASoC: dapm - Add API call to query valid DAPM pathsLiam Girdwood2011-06-141-11/+321
| | | | | | | | | | | | | In preparation for ASoC DSP support. Add a DAPM API call to determine whether a DAPM audio path is valid between source and sink widgets. This also takes into account all kcontrol mux and mixer settings in between the source and sink widgets to validate the audio path. This will be used by the DSP core to determine the runtime DAI mappings between FE and BE DAIs in order to run PCM operations. Signed-off-by: Liam Girdwood <lrg@ti.com>
* ASoC: core - Add platform driver DAPM widgets/kcontrolsLiam Girdwood2011-06-142-14/+113
| | | | | | | | | | | In preparation for ASoC DSP support. Allow platform drivers to export widgets and kcontrols. This is required to support DSP dynamic DAI routing and power management where platform DSP drivers have kcontrols, DAPM widgets etc. Signed-off-by: Liam Girdwood <lrg@ti.com>
* ASoC: dapm - add widget IO functionsLiam Girdwood2011-06-141-6/+49
| | | | | | | | | Add widget IO in preparation to support platform driver DAPM widgets with IO. This provides a generic widget IO operation wrapper in preparation for decouplement of register IO from CODEC drivers. Signed-off-by: Liam Girdwood <lrg@ti.com>
* ASoC: core - pcm mutex per rtdLiam Girdwood2011-06-141-23/+23
| | | | | | | | | | | | | | | | | | | | | In preparation for ASoC DSP support. The new DSP core allows DSP DAIs to be dynamically re-routed at runtime between the PCM device end (or Frontend - FE) and the physical DAI (Backend - BE) using regular kcontrols (just like a hardware CODEC). The DSP core therefore must be able to call PCM operations for both the Frontend and Backend(s) DAIs at the same time. Currently we have a global pcm_mutex that is used to serialise the ASoC PCM operations. This patch removes the global mutex and adds a mutex per RTD allowing the PCM operations to be reentrant and allow control of more than one DAI at at time. e.g. a frontend DSP hw_params() could configure multiple backend hw_params() with similar or different hw parameters at the same time. Also fix the naming of soc_pcm_close. Signed-off-by: Liam Girdwood <lrg@ti.com>
* ASoC: dapm - Add DAPM stream completion eventLiam Girdwood2011-06-142-3/+11
| | | | | | | | | | | In preparation for ASoC DSP support. This adds a callback function to be called at the completion of a DAPM stream event. This can be used by DSP components to perform calculations based on DAPM graphs. Signed-off-by: Liam Girdwood <lrg@ti.com>
* ASoC: core - refactor pcm_new() to pass only rtdLiam Girdwood2011-06-1424-55/+88
| | | | | | | | | | In preparation for ASoC DSP support. Currently pcm_new() passes in card, pcm and DAI. Refactor this to only pass in rtd since rtd contains card, pcm and DAI. Struct rtd also contain other members too that are useful to DSPs. Signed-off-by: Liam Girdwood <lrg@ti.com>
* ASoC: core - Allow some components to probe/remove later or earlierLiam Girdwood2011-06-141-14/+36
| | | | | | | | | | Some ASoC components depend on other ASoC components to provide clocks and power resources in order to probe(). Provide a method to allow some components to be probed() later and be also removed() earlier. Signed-off-by: Liam Girdwood <lrg@ti.com>
* ASoC: core - set platform dapm context deviceLiam Girdwood2011-06-141-0/+1
| | | | | | In preparation for ASoC DSP support, set the platform DAPM device context. Signed-off-by: Liam Girdwood <lrg@ti.com>
* ASoC: dapm - add method to get AIF widget from streamLiam Girdwood2011-06-141-0/+17
| | | | | | | | In preparation for ASoC DSP support. Provide a method to get the AIF widget name from the stream name. Signed-off-by: Liam Girdwood <lrg@ti.com>
* ASoC: dapm - fix prefix for DAPM muxesLiam Girdwood2011-06-141-2/+2
| | | | | | Make sure DAPM muxes have a valid kcontrol name instead of NULL. Signed-off-by: Liam Girdwood <lrg@ti.com>
* ASoC: core - Fixes for module reference countingLiam Girdwood2011-06-141-0/+5
| | | | | | | | | | | | | | | | Currently CODEC and platform drivers have their module reference count incremented soc_probe_dai_link() whilst CPU DAI drivers have their reference count incremented in soc_bind_dai_link(). CPU DAIs should have their reference count incremented in soc_probe_dai_link() just like the CODEC and platform drivers. DAI refcounting logic is simplified by by ref counting all (CODEC and platform) DAIs in each sound card, this is required in preparation for ASoC DSP as DSP components can have DAIs that can exist in either the CODEC driver or platform DAI driver. Signed-off-by: Liam Girdwood <lrg@ti.com>
* Merge branch 'fix/asoc' into for-linusTakashi Iwai2011-06-1011-31/+47
|\
| * ASoC: SAMSUNG: Fix the incorrect referencing of I2SCON registerSangbeom Kim2011-06-101-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | If DMA active status should be checked, I2SCON register should be referenced. In this patch, Fix the incorrect referencing of I2SCON register. Reported-by : Lakkyung Jung <lakkyung.jung@samsung.com> Signed-off-by: Sangbeom Kim <sbkim73@samsung.com> Acked-by: Jassi Brar <jassisinghbrar@gmail.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: stable@kernel.org
| * ASoC: snd_soc_new_{mixer,mux,pga} make sure to use right DAPM contextLars-Peter Clausen2011-06-091-9/+8
| | | | | | | | | | | | | | | | | | | | | | | | Currently it is possible that snd_soc_new_{mixer,mux,pga} is called with a DAPM context not matching the widgets context. This can lead to a wrong prefix_len calculation, which will result in undefined behaviour. To avoid this always use the DAPM context from the widget itself. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: stable@kernel.org
| * ASoC: fsl: fix initialization of DMA buffersTimur Tabi2011-06-091-4/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The DMA (PCM) driver used by some Freescale PowerPC supports separate DAIs for playback and capture, so DMA buffers should be allocated only for the initialized streams. Instead of checking for the number of active channels, which apparently is not reliable, check to see if the actual stream object exists. Also provide a better name for the DMA interrupt. Signed-off-by: Timur Tabi <timur@freescale.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| * ASoC: WM8804 does not support sample rates below 32kHzMark Brown2011-06-091-2/+7
| | | | | | | | | | | | | | Reported-by: Kieran O'Leary <Kieran.O'Leary@wolfsonmicro.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com> Cc: stable@kernel.org
| * ASoC: Fix WM8962 headphone volume update for use of advanced cachesMark Brown2011-06-081-2/+2
| | | | | | | | | | | | Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com> Cc: stable@kernel.org
| * ASoC: Blackfin: bf5xx-ad1836: Fix codec device nameLars-Peter Clausen2011-06-071-2/+2
| | | | | | | | | | | | | | | | | | | | Fix the codec_name field of the dai_link to match the actual device name of the codec. Otherwise the card won't be instantiated. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: stable@kernel.org
| * ASoC: AD1836: Fix setting the PCM formatLars-Peter Clausen2011-06-062-7/+13
| | | | | | | | | | | | | | Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: stable@kernel.org
| * ASoC: Check for NULL register bank in snd_soc_get_cache_val()Mark Brown2011-06-061-0/+3
| | | | | | | | | | Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com>
| * ASoC: Add missing break in WM8915 FLL source selectionMark Brown2011-06-061-0/+1
| | | | | | | | | | Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com>
| * ASoC: Only update SYSCLK_ENA when pausing WM8915 SYSCLKMark Brown2011-06-061-1/+1
| | | | | | | | | | Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com>
| * Merge branch 'for-3.0' of ↵Mark Brown2011-06-063-7/+11
| |\ | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound-2.6 into for-3.0
| | * ASoC: atmel_ssc: Don't try to free ssc if request failedJoachim Eastwood2011-06-031-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | We should only call ssc_free() when ssc_request() succeeds or bad things will happen. Signed-off-by: Joachim Eastwood <joachim.eastwood@jotron.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | | ALSA: hda: Fix inaudible internal speakers on CyberpowerPC Gamer Xplorer ↵Daniel T Chen2011-06-101-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | N57001 laptop BugLink: https://launchpad.net/bugs/761171 The original reporter needs the model=auto quirk for his internal speakers to be audible in the latest daily snapshot, so add an entry in the quirk table for his PCI SSID. A trivially different version of this patch using the model=asus quirk should be applied to the 2.6.38 and 2.6.39 stable kernels. We don't use the asus quirk in 3.0-rc2, because 3.0-rc2's autoparser is much improved. Reported-and-tested-by: tomdeering7 Signed-off-by: Daniel T Chen <crimsun@ubuntu.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | | ALSA: Use %pV for snd_printk()Takashi Iwai2011-06-101-23/+17
| | | | | | | | | | | | | | | | | | | | | | | | Clean up snd_printk() helper using the %pV prefix for recursive printks. This also automagically fixes an Oops with RO/NX-enabled modules. Tested-by: Maarten Lankhorst <m.b.lankhorst@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | | ALSA: hda - Fix initialization of hp pins with master_mute in RealtekTakashi Iwai2011-06-101-5/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some Reatlek model quirks use master_mute bool switch for controlling the master-mute of outputs. For these cases, the initialization of HP pins/amps were forgotten during the transition to the common automute helper function in 3.0 development time, and resulted in the muted HP output as default. This patch fixes the issue by adjusting the HP output explicitly with master_mute switch. Tested-by: Michal Hocko <mhocko@suse.cz> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | | ALSA: hda - Fix invalid unsol tag for some alc262 model quirksTakashi Iwai2011-06-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | The tag number was forgotten to be fixed after cleaning up the model quirks for ALC262 fujitsu and lenovo-3000 models. Tested-by: Michal Hocko <mhocko@suse.cz> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | | ALSA: hda: Fix quirk for Dell Inspiron 910Daniel T Chen2011-06-071-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | BugLink: https://launchpad.net/bugs/792712 The original reporter states that sound from the internal speakers is inaudible until using the model=auto quirk. This symptom is due to an existing quirk mask for 0x102802b* that uses the model=dell quirk. To limit the possible regressions, leave the existing quirk mask but add a higher priority specific mask for the reporter's PCI SSID. Reported-and-tested-by: rodni hipp Cc: <stable@kernel.org> [2.6.38+] Signed-off-by: Daniel T Chen <crimsun@ubuntu.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | | Merge branch 'for-linus' of ↵Linus Torvalds2011-06-067-17/+30
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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: ALSA: usb - turn off de-emphasis in s/pdif for cm6206 ALSA: asihpi: Use angle brackets for system includes ALSA: fm801: add error handling if auto-detect fails ALSA: hda - Check pin support EAPD in ad198x_power_eapd_write ALSA: hda - Fix HP and Front pins of ad1988/ad1989 in ad198x_power_eapd() ALSA: 6fire: Don't leak firmware in error path ASoC: Fix wm_hubs input PGA ZC bits ASoC: Fix dapm_is_shared_kcontrol so everything isn't shared
| * \ \ Merge branch 'fix/asoc' into for-linusTakashi Iwai2011-06-062-5/+8
| |\ \ \ | | | |/ | | |/|
| | * | ASoC: Fix wm_hubs input PGA ZC bitsMark Brown2011-05-271-4/+4
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com>
| | * | ASoC: Fix dapm_is_shared_kcontrol so everything isn't sharedStephen Warren2011-05-271-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit af46800 ("ASoC: Implement mux control sharing") introduced function dapm_is_shared_kcontrol. When this function returns true, the naming of DAPM controls is derived from the kcontrol_new. Otherwise, the name comes from the widget (and possibly a widget's naming prefix). A bug in the implementation of dapm_is_shared_kcontrol made it return 1 in all cases. Hence, that commit caused a change in control naming for all controls instead of just shared controls. Specifically, a control is always considered shared because it is always compared against itself. Solve this by never comparing against the widget containing the control being created. Equally, controls should never be shared between DAPM contexts; when the same codec is instantiated multiple times, the same kcontrol_new will be used. However, the control should no be shared between the multiple instances. I tested that with the Tegra WM8903 driver: * Shared is now mostly 0 as expected, and sometimes 1. * The expected controls are still generated after this change. However, I don't have any systems that have a widget/control naming prefix, so I can't test that aspect. Thanks for Jarkko Nikula for pointing out how to fix this. Reported-by: Liam Girdwood <lrg@ti.com> Tested-by: Jarkko Nikula <jhnikula@gmail.com> Signed-off-by: Stephen Warren <swarren@nvidia.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| * | | ALSA: usb - turn off de-emphasis in s/pdif for cm6206Eric Lammerts2011-06-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | CM6206: Turn off de-emphasis channel status bit in S/PDIF output. Signed-off-by: Eric Lammerts <eric@lammerts.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | | ALSA: asihpi: Use angle brackets for system includesJoe Perches2011-06-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Use the normal include style. Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | | ALSA: fm801: add error handling if auto-detect failsDan Carpenter2011-06-031-2/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the original code if auto detect failed and tea575x_tuner == 4 then we copy bogus information to chip->tea.card. I've changed the autodetect code to cleanup and return -ENODEV on error instead. Signed-off-by: Dan Carpenter <error27@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>