summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* ASoC: Add driver for rt5631johnnyhsu@realtek.com2011-09-212-0/+2490
| | | | | Signed-off-by: Johnny Hsu <johnnyhsu@realtek.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* ASoC: Staticise nuc900_dma_getposition()Axel Lin2011-09-211-1/+1
| | | | | | | It is not used outside this driver so no need to make the symbol global. Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* ASoC: Staticise jz4740_pcm_new()Axel Lin2011-09-211-1/+1
| | | | | | | It is not used outside this driver so no need to make the symbol global. Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* ASoC: Staticise bf5xx_pcm_i2s_new()Axel Lin2011-09-211-1/+1
| | | | | | | It is not used outside this driver so no need to make the symbol global. Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* ASoC: Staticise bf5xx_pcm_ac97_new()Axel Lin2011-09-211-1/+1
| | | | | | | It is not used outside this driver so no need to make the symbol global. Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* Merge branch 'for-3.1' into for-3.2Mark Brown2011-09-211-3/+15
|\
| * ASoC: Ensure we generate a driver nameMark Brown2011-09-211-3/+15
| | | | | | | | | | | | | | | | | | | | Commit 873bd4c (ASoC: Don't set invalid name string to snd_card->driver field) broke generation of a driver name for all ASoC cards relying on the automatic generation of one. Fix this by using the old default with spaces replaced by underscores. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Takashi Iwai <tiwai@suse.de>
* | ASoC: Factor out per-widget DAPM power checksMark Brown2011-09-211-52/+60
| | | | | | | | | | | | | | The indentation is getting a little deep. Should be straight code motion, no functional changes. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC: Trace and collect statistics for DAPM graph walkingMark Brown2011-09-214-0/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | One of the longest standing areas for improvement in ASoC has been the DAPM algorithm - it repeats the same checks many times whenever it is run and makes no effort to limit the areas of the graph it checks meaning we do an awful lot of walks over the full graph. This has never mattered too much as the size of the graph has generally been small in relation to the size of the devices supported and the speed of CPUs but it is annoying. In preparation for work on improving this insert a trace point after the graph walk has been done. This gives us specific timing information for the walk, and in order to give quantifiable (non-benchmark) numbers also count every time we check a link or check the power for a widget and report those numbers. Substantial changes in the algorithm may require tweaks to the stats but they should be useful for simpler things. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC: Add WM5100 driverMark Brown2011-09-206-0/+9301
| | | | | | | | | | | | | | | | | | | | | | The WM5100 is a highly integrated low power audio subsystem with advanced digital signal processing capabilities including effects, speech clarity enhancement and active noise cancellation. This initial driver provides support for basic audio paths, further patches will provide more complete functionality. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com>
* | Merge branch 'for-3.1' into for-3.2Mark Brown2011-09-201-26/+0
|\ \ | |/
| * ASoC: Remove bitrotted wm8962_resume()Mark Brown2011-09-201-26/+0
| | | | | | | | | | | | | | | | This functionality is now subsumed within the bias management, using the standard cache management functionality, without assuming the cache type. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com>
* | ASoC: ssm2602: Do not dereference codec->control_dataLars-Peter Clausen2011-09-201-2/+1
| | | | | | | | | | | | | | | | | | The driver assumes that control_data points to the drivers i2c_client struct, but this is no longer the case since the ASoC core has switched to regmap. 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: fsl: Fix error handling if platform_device_add failsAxel Lin2011-09-202-2/+2
| | | | | | | | | | | | | | | | | | Call platform_device_put() instead of platform_device_unregister() if platform_device_add() fails. Signed-off-by: Axel Lin <axel.lin@gmail.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC: Refcount WM8996 bandgap from FLL tooMark Brown2011-09-201-6/+39
| | | | | | | | | | | | | | | | For digital only paths we need to make sure the bandgap is enabled prior to starting the FLL which isn't tied into DAPM. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com>
* | ASoC: Fix unused variable warning in WM8996Mark Brown2011-09-201-2/+0
| | | | | | | | | | Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com>
* | ASoC: twl6040: Correct supported number of playback channelsPeter Ujfalusi2011-09-191-1/+1
| | | | | | | | | | | | | | | | twl6040 supports 5 playback, and 2 capture channels Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC: twl6040: Fix the number of channels for vibraPeter Ujfalusi2011-09-191-2/+2
| | | | | | | | | | | | | | | | Only mono audio can be used for vibra (DL4 channel). Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC: twl6040: Use chip defaults in the initial reg_cachePeter Ujfalusi2011-09-191-2/+6
| | | | | | | | | | | | | | | | | | | | Reset the twl6040_reg array to hold the chip default values. The only changed values were for the microphone input selection. Select no input for the microphones in the twl6040_init_chip function. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC: twl6040: Chip initialization cleanupPeter Ujfalusi2011-09-192-90/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | There is no need to write to the vio registers at probe time, since most them either read only, or shared with MFD or not used. On the other hand it is a good idea to updated the ASICREV register in the cache at this time. After power up we need to restore some registers. Clean up the list to contain only the registers we are going to restore. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | MFD: twl6040: Fix power on GPIO handlingPeter Ujfalusi2011-09-191-5/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Avoid requesting the audpwron gpio in case of ES1.0 revision. In the past we requested the gpio, but we did not free it up, since we made the check for the revision later. This results later checks for gpio validity to fail, leaving the gpio reserved (even after the driver has been removed). Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Acked-by: Samuel Ortiz <sameo@linux.intel.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | Input: twl6040-vibra: Use accessor to get revision informationPeter Ujfalusi2011-09-191-1/+1
| | | | | | | | | | | | | | Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Acked-by: Dmitry Torokhov <dtor@mail.ru> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | MFD: twl6040: Add accessor for revision IDPeter Ujfalusi2011-09-192-1/+6
| | | | | | | | | | | | | | | | | | For client driver to use, if they need chip resvision information. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Acked-by: Samuel Ortiz <sameo@linux.intel.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | MFD: twl6040: Remove global pointer for platform_devicePeter Ujfalusi2011-09-191-16/+11
| | | | | | | | | | | | | | | | | | | | | | There is no need to keep global pointer for the platform device, since it is only used for dev_* prints, and the device pointer available within the twl6040 structure. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Acked-by: Samuel Ortiz <sameo@linux.intel.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC: mxs-saif: add record functionDong Aisheng2011-09-193-14/+151
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1. add different clkmux mode handling SAIF can use two instances to implement full duplex (playback & recording) and record saif may work on EXTMASTER mode which is using other saif's BITCLK&LRCLK. The clkmux mode could be set in pdata->init() in mach-specific code. For generic saif driver, it only needs to know who is his master and the master id is also provided in mach-specific code. 2. support playback and capture simutaneously however the sample rates can not be different due to hw limitation. Signed-off-by: Dong Aisheng <b29396@freescale.com> Acked-by: Wolfram Sang <w.sang@pengutronix.de> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC: sn95031: Staticize sn95031_pcm_hw_paramsAxel Lin2011-09-191-1/+1
| | | | | | | | | | | | | | Signed-off-by: Axel Lin <axel.lin@gmail.com> Acked-by: Vinod Koul <vinod.koul@linux.intel.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC: Add line loads to the list of supported detections for SpeysideMark Brown2011-09-191-1/+2
| | | | | | | | | | Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com>
* | ASoC: Initial WM8996 headphone impedance measurement supportMark Brown2011-09-191-25/+112
| | | | | | | | | | | | | | | | | | | | The WM8996 can measure the impedance of accessories connected to the headphone output. Implement initial support for this, measuring the left channel impedance when an accessory is detected and using this to distinguish between a line load and a headphone load. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com>
* | ASoC: WM8996 only needs bandgap for analogue functionalityMark Brown2011-09-191-11/+29
| | | | | | | | | | | | | | | | | | Rather than managing the bandgap in the bias level control use a supply widget as we only actually need to enable it for analogue paths, not fully digital ones. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com>
* | ASoC: Display the error code when we fail to add a DAPM controlMark Brown2011-09-191-2/+2
| | | | | | | | | | | | | | Useful for diagnostics. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com>
* | ASoC: support all possible sample rates in the WM8776 driverTimur Tabi2011-09-161-7/+6
| | | | | | | | | | | | | | | | | | | | | | The WM8776 supports a continuous range of sample rates rather than discrete values and supports a wider range of sample rates on the playback path than is currently supported. Update the constraints on the DAIs to reflect this. 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: wm8995: Remove unused i2c variable in wm8995_remove()Axel Lin2011-09-161-2/+0
| | | | | | | | | | | | Signed-off-by: Axel Lin <axel.lin@gmail.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC: wm8995: Return -EINVAL if device ID mismatchAxel Lin2011-09-161-0/+1
| | | | | | | | | | | | Signed-off-by: Axel Lin <axel.lin@gmail.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC: tpa6130a2: Remove obsolete cleanup for clientdataAxel Lin2011-09-161-1/+0
| | | | | | | | | | | | | | | | | | | | The i2c core will clear the clientdata pointer automatically, we don't have to set the `data' field to NULL in remove() or if probe() failed anymore. Signed-off-by: Axel Lin <axel.lin@gmail.com> Acked-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC: davinci-pcm: trivial: replace link with actual chan/linkBen Gardiner2011-09-161-64/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The ambiguously named variable 'link' is used as a temporary throughout davinci-pcm -- its presence makes grepping (and groking) the code difficult. Replace link with the value of link in almost all sites. The exception is a couple places where the last-assigned link/chan needs to be returned by a function -- in these cases, rename to last_link. Signed-off-by: Ben Gardiner <bengardiner@nanometrics.ca> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC: edb93xx: convert to use snd_soc_register_card()Mika Westerberg2011-09-161-27/+33
| | | | | | | | | | | | | | | | | | | | Current method for machine driver to register with the ASoC core is to use snd_soc_register_card() instead of creating a "soc-audio" platform device. Signed-off-by: Mika Westerberg <mika.westerberg@iki.fi> Reviewed-by: Ryan Mallon <rmallon@gmail.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC: simone: convert to use snd_soc_register_card()Mika Westerberg2011-09-161-28/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Current method for machine driver to register with the ASoC core is to use snd_soc_register_card() instead of creating a "soc-audio" platform device. In addition we use platform_device_register_simple() to create a platform device for the codec. This function will handle putting and deleting the device automatically which simplifies the error handling in the machine driver. Signed-off-by: Mika Westerberg <mika.westerberg@iki.fi> Reviewed-by: Ryan Mallon <rmallon@gmail.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC: ep93xx-pcm: add MODULE_ALIASMika Westerberg2011-09-161-0/+1
| | | | | | | | | | | | | | | | | | | | To get the PCM module loaded automatically by udev et al. we need to add a proper MODULE_ALIAS. Signed-off-by: Mika Westerberg <mika.westerberg@iki.fi> Reviewed-by: Ryan Mallon <rmallon@gmail.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ARM: ep93xx: snappercl15: register audio platform deviceMika Westerberg2011-09-161-1/+12
| | | | | | | | | | | | | | | | | | | | Since the ASoC machine driver is now a platform driver we need to register a matching platform device. Signed-off-by: Mika Westerberg <mika.westerberg@iki.fi> Reviewed-by: Ryan Mallon <rmallon@gmail.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ARM: ep93xx: edb93xx: register audio platform deviceMika Westerberg2011-09-161-0/+6
| | | | | | | | | | | | | | | | | | | | Since the ASoC machine driver is now a platform driver we need to register a matching platform device. Signed-off-by: Mika Westerberg <mika.westerberg@iki.fi> Reviewed-by: Ryan Mallon <rmallon@gmail.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ARM: ep93xx: simone: register audio platform deviceMika Westerberg2011-09-161-1/+12
| | | | | | | | | | | | | | | | | | | | Since the ASoC machine driver is now a platform driver we need to register a matching platform device. Signed-off-by: Mika Westerberg <mika.westerberg@iki.fi> Reviewed-by: Ryan Mallon <rmallon@gmail.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC: snappercl15: convert to use snd_soc_register_card()Mika Westerberg2011-09-161-17/+36
| | | | | | | | | | | | | | | | | | | | Current method for machine driver to register with the ASoC core is to use snd_soc_register_card() instead of creating a "soc-audio" platform device. Signed-off-by: Mika Westerberg <mika.westerberg@iki.fi> Reviewed-by: Ryan Mallon <rmallon@gmail.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC: support sample sizes properly in the WM8776 codec driverTimur Tabi2011-09-161-12/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use snd_pcm_format_width() to determine the sample size, instead of checking specify sample formats and assuming that those are the only valid format. This change adds support for big-endian architectures (which use the _BE formats) and the packed 24-bit format (SNDRV_PCM_FORMAT_S24_3xE). [Fixed single letter variable name legibility problem -- broonie] Signed-off-by: Timur Tabi <timur@freescale.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | Merge branch 'for-3.1' into for-3.2Mark Brown2011-09-162-2/+2
|\ \ | |/
| * ASoC: bf5xx-ad73311: Fix prototype for bf5xx_probeAxel Lin2011-09-161-1/+1
| | | | | | | | | | | | | | | | | | Fix below build warning: sound/soc/blackfin/bf5xx-ad73311.c: warning: initialization from incompatible pointer type Signed-off-by: Axel Lin <axel.lin@gmail.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| * ASoC: Fix trivial build regression in Kirkwood I2SArnd Bergmann2011-09-121-1/+1
| | | | | | | | | | | | | | | | | | A fix merged in 3.1-rc2 introduced a small regression, this should get it to build again. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC: Fix WM8996 DC servo operation without IRQMark Brown2011-09-161-6/+3
| | | | | | | | | | | | | | | | We need to count the timeout down. Reported-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com>
* | ASoC: samsung: Fix checking return value of clk_getAxel Lin2011-09-163-8/+8
| | | | | | | | | | | | | | | | | | clk_get() returns a pointer to the struct clk or an ERR_PTR(). This patch also use PTR_ERR() for return value. Signed-off-by: Axel Lin <axel.lin@gmail.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* | ASoC: improve asynchronous mode support in the fsl_ssi driverTimur Tabi2011-09-161-77/+68
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The Freescale SSI audio controller supports "synchronous" and "asynchronous" modes. In synchronous mode, playback and capture use the same input clock, so sample rates must be the same during simultaneous playback and capture. Unfortunately, the code which supports asynchronous mode is just broken in various ways. In particular, it was constraining sample sizes as well as the sample rate. The fix also allows us to simplify the code by eliminating the 'asynchronous', 'playback', and 'capture' variables that were used to keep track of playback and capture streams. Unfortunately, it turns out that simulataneous playback and record does not actually work on the only platform that supports asynchronous mode: the Freescale P1022DS reference board. If a second stream is started, the SSI grinds to halt for both streams. This is true even if the P1022 is configured for synchronous mode, so it's likely a hardware problem that needs to be worked around. 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: Correct channel numbers for WM8996 AIF2Mark Brown2011-09-141-4/+4
| | | | | | | | | | | | | | | | The AIF1 channels are numbered from zero than one; do the same thing for AIF2 too. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com>
OpenPOWER on IntegriCloud