aboutsummaryrefslogtreecommitdiffstats
path: root/include/sound
Commit message (Collapse)AuthorAgeFilesLines
* ASoC: core - improve probe/remove orderingLiam Girdwood2011-06-172-6/+15
| | | | | | Improve probe/remove order by defining ordering levels. Signed-off-by: Liam Girdwood <lrg@ti.com>
* ASoC: dsp - cleanup struct dsp_linkLiam Girdwood2011-06-171-7/+2
| | | | | | Refactor out some member resulting in code reduction. Signed-off-by: Liam Girdwood <lrg@ti.com>
* ASoC: OMAP4 ABE DSP - Add support for the OMAP4 ABE DSPLiam Girdwood2011-06-141-0/+19
| | | | | | | This patch adds the OMAP4 ABE platform driver. This driver defines and exports control for the DSP Frontend and Backend routing. Signed-off-by: Liam Girdwood <lrg@ti.com>
* ASoC: core - add hostless DAI supportLiam Girdwood2011-06-142-0/+4
| | | | | | | | | 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-141-0/+9
| | | | | | Add initial implementation of dynamic kcontrols. Signed-off-by: Liam Girdwood <lrg@ti.com>
* ASoC: dsp - Add ASoC DSP coreLiam Girdwood2011-06-143-0/+273
| | | | | | | | | | | | | | 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-0/+12
| | | | | | | | | | | | 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-141-0/+1
| | | | | | 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-0/+16
| | | | | | | | | | | | | 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-0/+11
| | | | | | | | | | | 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: core - pcm mutex per rtdLiam Girdwood2011-06-141-0/+8
| | | | | | | | | | | | | | | | | | | | | 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-0/+7
| | | | | | | | | | | 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-141-2/+1
| | | | | | | | | | 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-142-0/+12
| | | | | | | | | | 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: dapm - add method to get AIF widget from streamLiam Girdwood2011-06-141-0/+2
| | | | | | | | 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>
* Merge branch 'topic/asoc' into for-linusTakashi Iwai2011-05-228-43/+230
|\
| * Merge branch 'for-2.6.40' of ↵Takashi Iwai2011-05-202-2/+2
| |\ | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/lrg/asoc-2.6 into topic/asoc
| | * ASoC: tpa6130a2: Update e-mail addressPeter Ujfalusi2011-05-111-1/+1
| | | | | | | | | | | | | | | | | | Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Liam Girdwood <lrg@ti.com>
| | * ASoC: tlv320dac33: Update e-mail addressPeter Ujfalusi2011-05-111-1/+1
| | | | | | | | | | | | | | | | | | Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Liam Girdwood <lrg@ti.com>
| * | ASoC: Asahi Kasei AK4641 codec driverDmitry Artamonow2011-05-191-0/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A driver for the AK4641 codec used in iPAQ hx4700 and Glofiish M800 among others. Signed-off-by: Harald Welte <laforge@gnumonks.org> Signed-off-by: Philipp Zabel <philipp.zabel@gmail.com> Signed-off-by: Dmitry Artamonow <mad_soft@inbox.ru> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| * | ASoC: core - allow ASoC more flexible machine nameLiam Girdwood2011-05-121-0/+2
| |/ | | | | | | | | | | | | | | | | Allow ASoC machine drivers to register a driver name and a longname. This allows user space to determine the flavour of machine driver. Signed-off-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| * Merge branch 'topic/asoc' of ↵Mark Brown2011-05-031-1/+1
| |\ | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6 into for-2.6.40
| | * ASoC: Declare const properly for enum textsTakashi Iwai2011-05-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | The enum texts are supposed to be const char * const []. Without the second const, it gets compile warnings like sound/soc/codecs/max98095.c:607:2: warning: initialization discards qualifiers from pointer target type Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | ASoC: Store a list of widgets in a DAPM mux/mixer kcontrolStephen Warren2011-05-031-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A future change will allow multiple widgets to be affected by the same control. For example, a single register bit that controls separate muxes in both the L and R audio paths. This change updates the code that handles relevant controls to be able to iterate over a list of affected widgets. Note that only the put functions need significant modification to implement the iteration; the get functions do not need to iterate, nor unify the results, since all affected widgets reference the same kcontrol. When creating the list of widgets, always create a 1-sized list, since the control sharing is not implemented in this change. Signed-off-by: Stephen Warren <swarren@nvidia.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| * | ASoC: Add w->kcontrols, and populate itStephen Warren2011-05-031-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | Future changes will need reference to the kcontrol created for a given kcontrol_new. Store the created kcontrol values now. Signed-off-by: Stephen Warren <swarren@nvidia.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| * | ASoC: s/w->kcontrols/w->kcontrol_news/gStephen Warren2011-05-031-34/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A future change will modify struct snd_soc_dapm_widget to store the actual kcontrol pointers for each kcontrol_new in a field named kcontrols. Rename the existing kcontrols field to enable this. Signed-off-by: Stephen Warren <swarren@nvidia.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| * | ASoC: Move DAPM debugfs directory creation to snd_soc_dapm_debugfs_initLars-Peter Clausen2011-05-031-1/+2
| |/ | | | | | | | | | | | | | | | | Move the creation of the DAPM debugfs directory to snd_soc_dapm_debugfs_init instead of having the same duplicated code in both codec and card DAPM setup. 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>
| * ASoC: Work around allmodconfig failureMark Brown2011-04-281-0/+3
| | | | | | | | | | Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com>
| * ASoC: Define constants for WM8962 GPIO functionsMark Brown2011-04-261-0/+22
| | | | | | | | | | Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com>
| * ASoC: Add EQ and filter to max98095 CODEC driverPeter Hsiang2011-04-201-0/+28
| | | | | | | | | | | | | | | | This patch adds the equalizer and biquad filter controls. Signed-off-by: Peter Hsiang <peter.hsiang@maxim-ic.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| * ASoC: simple style fixLu Guanqun2011-04-201-1/+1
| | | | | | | | | | | | | | | | | | replace the tab with spaces, make it align with other paragraphs Signed-off-by: Lu Guanqun <guanqun.lu@intel.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| * ASoC: Merge branch 'for-2.6.39' into for-2.6.40Mark Brown2011-04-185-5/+5
| |\ | | | | | | | | | | | | | | | | | | Fix trivial conflict caused by silly spelling fix patch. Conflicts: sound/soc/codecs/wm8994.c
| * | ASoC: Make struct snd_soc_card's dapm_widgets and dapm_routes constLars-Peter Clausen2011-04-131-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | Those should not be modified (and are not) by the core code, so make them const. This also makes them consistent with the same members of snd_soc_codec. 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>
| * | ASoC: Add WM8915 CODEC driverMark Brown2011-04-111-0/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The WM8915 is an ultra low power mobile CODEC designed for smartphones, featuring a mixture of digital and analogue I/O with flexible mixing options and advanced low power accessory detection functionality in a compact package. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
| * | ASoC: Add data based control initialisation for CODECs and cardsMark Brown2011-04-081-1/+6
| | | | | | | | | | | | | | | | | | | | | Allow CODEC and card drivers to point to an array of controls from their driver structure rather than explicitly calling snd_soc_add_controls(). Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| * | ASoC: Add max98095 CODEC driverPeter Hsiang2011-04-061-0/+26
| | | | | | | | | | | | | | | | | | | | | This patch adds the MAX98095 CODEC driver. Signed-off-by: Peter Hsiang <peter.hsiang@maxim-ic.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| * | Merge branch 'for-2.6.39' into for-2.6.40Mark Brown2011-04-035-91/+193
| |\ \
| | * \ Merge branch 'for-2.6.39' of ↵Mark Brown2011-04-031-8/+8
| | |\ \ | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound-2.6 into for-2.6.39
| * | | | ASoC: Add snd_soc_codec_{readable,writable}_register()Dimitris Papastamos2011-03-261-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Provide the top level ASoC core functions for indicating whether a given register is readable or writable. Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| * | | | ASoC: Add default snd_soc_default_writable_register() callbackDimitris Papastamos2011-03-261-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | By using struct snd_soc_reg_access for the read/write/vol attributes of the registers, we provide callbacks that automatically determine whether a given register is readable/writable or volatile. Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| * | | | ASoC: Add control_type in snd_soc_codecDimitris Papastamos2011-03-261-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is mainly used by the soc-cache code to easily determine the currently used underlying serial bus. Set SND_SOC_CUSTOM to 1 so we can distinguish it if it is not initialized or set. Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| * | | | ASoC: soc-cache: Introduce raw bulk write supportDimitris Papastamos2011-03-261-0/+3
| | |/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As it has become more common to have to write firmware or similar large chunks of data to the hardware, add a function to perform raw bulk writes that bypass the cache. This only handles volatile registers as we should avoid getting out of sync with the actual cache. Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | | | Merge branch 'topic/misc' into for-linusTakashi Iwai2011-05-222-9/+18
|\ \ \ \ | |_|_|/ |/| | |
| * | | ALSA: tea575x: use better card and bus namesOndrej Zary2011-05-131-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Provide real card and bus_info instead of hardcoded values. Signed-off-by: Ondrej Zary <linux@rainbow-software.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | | ALSA: tea575x: remove unused card from structOndrej Zary2011-05-131-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | struct snd_card *card is present in struct snd_tea575x but never used. Remove it. Signed-off-by: Ondrej Zary <linux@rainbow-software.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | | ALSA: tea575x: remove freq_fixup from structOndrej Zary2011-05-131-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | freq_fixup is a constant, no need to hold it in struct snd_tea575x and set in each driver. Signed-off-by: Ondrej Zary <linux@rainbow-software.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | | ALSA: tea575x: unify read/write functionsOndrej Zary2011-05-101-4/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implement generic read/write functions to access TEA575x tuners. They're now implemented 4 times (once in es1968 and 3 times in fm801). This also allows mute to work on all cards. Also improve tuner detection/initialization. Signed-off-by: Ondrej Zary <linux@rainbow-software.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | | Merge branch 'fix/misc' into topic/miscTakashi Iwai2011-03-281-3/+1
| |\ \ \ | | | |/ | | |/|
| * | | ALSA: Add snd_ctl_replace() to dynamically replace a controlDimitris Papastamos2011-03-221-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a function to dynamically replace a given control. If the control does not already exist, a third parameter is used to determine whether to actually add that control. This is useful in cases where downloadable firmware at runtime can add or replace existing controls. A separate patch needs to be made to allow ALSA Mixer to render the replaced controls on the fly. Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | | ALSA: tea575x-tuner: remove dev_nrOndrej Zary2011-03-211-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove unused dev_nr from struct tea575x_tuner. Signed-off-by: Ondrej Zary <linux@rainbow-software.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>