aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2011-06-10ASoC: SMDKV310: Enable SPDIF deviceNaveen Krishna Chatradhi1-1/+1
Signed-off-by: Naveen Krishna Chatradhi <[email protected]> Acked-by: Jassi Brar <[email protected]> Acked-by: Liam Girdwood <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2011-06-10Merge branch 'for-3.0' into for-3.1Mark Brown1-2/+2
2011-06-10sound/atmel_ssc_dai: add a missing space to an error messageUwe Kleine-König1-1/+1
Signed-off-by: Uwe Kleine-König <[email protected]> Acked-by: Nicolas Ferre <[email protected]> Acked-by: Liam Girdwood <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2011-06-10ASoC: SAMSUNG: Fix the incorrect referencing of I2SCON registerSangbeom Kim1-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 <[email protected]> Signed-off-by: Sangbeom Kim <[email protected]> Acked-by: Jassi Brar <[email protected]> Acked-by: Liam Girdwood <[email protected]> Signed-off-by: Mark Brown <[email protected]> Cc: [email protected]
2011-06-09ASoC: pcm - rename snd_codec_close() to snd_pcm_close().Liam Girdwood1-2/+2
Make sure we follow naming convention for all PCM ops. Signed-off-by: Liam Girdwood <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2011-06-09ASoC: core - PCM mutex per rtdLiam Girdwood3-14/+23
In preparation for the new ASoC Dynamic PCM support (AKA DSP support). The new ASoC Dynamic PCM core allows 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 routes audio in the analog domain). The Dynamic PCM 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 PCM hw_params() could configure multiple backend DAI hw_params() with similar or different hw parameters at the same time. Signed-off-by: Liam Girdwood <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2011-06-09Merge branch 'for-3.0' into for-3.1Mark Brown1-9/+8
2011-06-09ASoC: core - Separate out PCM operations into new file.Liam Girdwood3-612/+641
In preparation for Dynamic PCM support (AKA DSP support). There will be future patches that add support to allow PCMs to be dynamically routed to multiple DAIs at startup and also during stream runtime. This patch moves the ASoC core PCM operaitions into a new file called soc-pcm.c. This will in simplify the ASoC core features into distinct files. Signed-off-by: Liam Girdwood <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2011-06-09ASoC: snd_soc_new_{mixer,mux,pga} make sure to use right DAPM contextLars-Peter Clausen1-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 <[email protected]> Acked-by: Liam Girdwood <[email protected]> Signed-off-by: Mark Brown <[email protected]> Cc: [email protected]
2011-06-09Merge branch 'for-3.0' into for-3.1Mark Brown2-6/+12
2011-06-09ASoC: p1022ds: fix incorrect referencing of device tree propertiesTimur Tabi4-13/+18
Device tree integer properties are encoded in big-endian format, but some of the Freescale ASoC drivers were assuming that the host is in big-endian format as well. Although this is true, it's better to use endian-safe accessors. Also add a check for a failed ioremap() call in the SSI driver. Signed-off-by: Timur Tabi <[email protected]> Acked-by: Liam Girdwood <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2011-06-09ASoC: fsl: fix initialization of DMA buffersTimur Tabi1-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 <[email protected]> Acked-by: Liam Girdwood <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2011-06-09ASoC: WM8804 does not support sample rates below 32kHzMark Brown1-2/+7
Reported-by: Kieran O'Leary <Kieran.O'[email protected]> Signed-off-by: Mark Brown <[email protected]> Acked-by: Liam Girdwood <[email protected]> Cc: [email protected]
2011-06-08ASoC: twl6040 - According to TWL6040 specification, gain start at 6dB and ↵Ricardo Neri1-2/+2
not -6dB. Signed-off-by: Ricardo Neri <[email protected]> Acked-by: Mark Brown <[email protected]> Signed-off-by: Liam Girdwood <[email protected]>
2011-06-08ASoC: Fix mismerge of Speyside set_bias_level_post()Mark Brown1-0/+1
Signed-off-by: Mark Brown <[email protected]> Acked-by: Liam Girdwood <[email protected]>
2011-06-08Merge branch 'for-3.0' into for-3.1Mark Brown1-2/+2
2011-06-08ASoC: Support Speyside build variants with WM8962 fittedMark Brown3-0/+268
Signed-off-by: Mark Brown <[email protected]> Acked-by: Liam Girdwood <[email protected]>
2011-06-08ASoC: Defer all WM8962 clocking configuration until power upMark Brown1-27/+33
Don't require an audio rate SYSCLK in hw_params() in order to better support microphone detection use cases. Signed-off-by: Mark Brown <[email protected]>
2011-06-08ASoC: Implement base 5 band EQ control for WM8962Mark Brown1-0/+16
ReTune Mobile modes are not currently supported. Signed-off-by: Mark Brown <[email protected]> Acked-by: Liam Girdwood <[email protected]>
2011-06-08ASoC: Report errors when we have a WM8962 IRQ and don't get FLL lockMark Brown1-5/+32
We really should be getting the interrupt - if we don't get one it's very likely that the configuration is incorrect and audio will fail. Also increase the timeout substantially in this case for safety. Signed-off-by: Mark Brown <[email protected]> Acked-by: Liam Girdwood <[email protected]>
2011-06-08ASoC: Factor out I2C usage in WM8962 driverMark Brown1-9/+10
The chip can actually support SPI so we shouldn't assume we've got an I2C device even though that's the most common configuration. Signed-off-by: Mark Brown <[email protected]> Acked-by: Liam Girdwood <[email protected]>
2011-06-08ASoC: Suppress restore of default register values for rbtree cache syncMark Brown1-1/+6
Currently the rbtree code will write out the entire register map when doing a cache sync which is wasteful and will slow things down. Check to see if the value we're about to write is the default and don't bother restoring it if it is, either the value will have been retained or the device will have been reset and holds the value already. We should really store the defaults in the nodes but this resolves the immediate issue. Signed-off-by: Mark Brown <[email protected]> Acked-by: Liam Girdwood <[email protected]>
2011-06-08ASoC: Fix WM8962 headphone volume update for use of advanced cachesMark Brown1-2/+2
Signed-off-by: Mark Brown <[email protected]> Acked-by: Liam Girdwood <[email protected]> Cc: [email protected]
2011-06-07ASoC: core - Allow components to probe/remove in sequence.Liam Girdwood3-21/+61
Some ASoC components depend on other ASoC components to provide clocks and power resources in order to probe() and vice versa for remove(). Allow components to be ordered so that components can be probed() and removed() in sequences that conform to their dependencies. Signed-off-by: Liam Girdwood <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2011-06-07ASoC: core - Optimise and refactor pcm_new() to pass only rtdLiam Girdwood27-61/+96
Currently pcm_new() passes in 3 arguments :- card, pcm and DAI. Refactor this to only pass in 1 argument (i.e. the rtd) since struct rtd contains card, pcm and DAI along with other members too that are useful too. Signed-off-by: Liam Girdwood <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2011-06-07Merge branch 'for-3.0' into for-3.1Mark Brown1-2/+2
2011-06-07ASoC: Blackfin: bf5xx-ad1836: Fix codec device nameLars-Peter Clausen1-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 <[email protected]> Acked-by: Liam Girdwood <[email protected]> Signed-off-by: Mark Brown <[email protected]> Cc: [email protected]
2011-06-07ASoC: AD1836: Fix build errorLars-Peter Clausen1-1/+1
Commit f97d0c6d5f94 ("ASoC: AD1836: Add input gain control for ADC2") contained a typo in the register name, causing a build error. This patch fixes it. Signed-off-by: Lars-Peter Clausen <[email protected]> Acked-by: Liam Girdwood <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2011-06-07ASoC: wm8940: remove unnecessary if statementsGreg Dietsche1-7/+0
removing unnecessary if(ret) checks This updated patch corrects a minor spelling problem in the commit message and resolves two other (similar) issues found in wm8940.c by Jonathan Cameron. Signed-off-by: Greg Dietsche <[email protected]> Acked-by: Jonathan Cameron <[email protected]> Acked-by: Liam Girdwood <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2011-06-06Merge branch 'for-3.0' into for-3.1Mark Brown2-7/+13
2011-06-06ASoC: AD1836: Fix setting the PCM formatLars-Peter Clausen2-7/+13
Signed-off-by: Lars-Peter Clausen <[email protected]> Acked-by: Liam Girdwood <[email protected]> Signed-off-by: Mark Brown <[email protected]> Cc: [email protected]
2011-06-06ASoC: AD1836: Add input gain control for ADC2Lars-Peter Clausen1-0/+11
The AD1836 has a PGA for its second ADC. This patch adds a control for adjusting the the gain of the PGA. Signed-off-by: Lars-Peter Clausen <[email protected]> Acked-by: Liam Girdwood <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2011-06-06ASoC: AD1836: Remove unused fields from private structLars-Peter Clausen1-5/+0
The control_type field is never used, so it can be removed. The control_data field is used to initialize the codec's control_data field, but since this is also done by the snd-soc-cache core, the redundant assignment can be removed and the field can be dropped. Signed-off-by: Lars-Peter Clausen <[email protected]> Acked-by: Liam Girdwood <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2011-06-06ASoC: AD1836: Add AD1835/AD1837/AD1838/AD1839 supportLars-Peter Clausen1-54/+129
The AD183X codec devices are mostly register compatible and can easily be supported by the same driver. The main difference between those devices is the number of DACs and ADCs. This patch adjusts the driver to allocate the controls, DAPM widgets and routes for the DACs and ADCs dynamically based on the chip type. The AD1836 is a bit special in that it supports different modes for its second ADC, so it needs some special handling. Right now the driver hardcodes the mode to the differential PGA mode. Signed-off-by: Lars-Peter Clausen <[email protected]> Acked-by: Liam Girdwood <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2011-06-06ASoC: AD1836: Use snd_soc_update_bits for read-modify-writeLars-Peter Clausen1-12/+6
Use snd_soc_update_bits for read-modify-write register access instead of open-coding it using snd_soc_read and snd_soc_write. Signed-off-by: Lars-Peter Clausen <[email protected]> Acked-by: Liam Girdwood <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2011-06-06ASoC: AD1836: Add ADC/DAC controls helper macrosLars-Peter Clausen2-39/+34
The different ADC and DAC controls follow the same scheme, so add some helper macros for declaring them. This should make the code a bit more readable and also decreases the code size a bit. Signed-off-by: Lars-Peter Clausen <[email protected]> Acked-by: Liam Girdwood <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2011-06-06ASoC: Manage Speyside system clocking only in bias managementMark Brown1-10/+40
Now that the CODEC driver supports it defer configuration of the system clock until bias management which is a much more idiomatic place to do system power control and makes things a lot more happy when we're using both interfaces. Signed-off-by: Mark Brown <[email protected]> Acked-by: Liam Girdwood <[email protected]>
2011-06-06ASoC: Only provide a default bias level update for CODEC contextsMark Brown1-4/+7
This allows the card driver to use the bias level variable more easily in multi component systems. Signed-off-by: Mark Brown <[email protected]> Acked-by: Liam Girdwood <[email protected]>
2011-06-06ASoC: Add context parameter to card DAPM callbacksMark Brown5-3/+11
The card callback will get called for each DAPM context in the card so it can be useful for it to know which device is currently undergoing a transition. Signed-off-by: Mark Brown <[email protected]> Acked-by: Liam Girdwood <[email protected]>
2011-06-06ASoC: Simplify logic in snd_soc_dapm_set_bias_level()Mark Brown1-10/+12
No functional changes but much less indentation. Signed-off-by: Mark Brown <[email protected]> Acked-by: Liam Girdwood <[email protected]>
2011-06-06ASoC: Remove trace for DAPM bias level loggingMark Brown1-18/+0
It's redundant now thanks to the use of the generic trace infrastructure. Signed-off-by: Mark Brown <[email protected]> Acked-by: Liam Girdwood <[email protected]>
2011-06-06ASoC: Indentation fix for null loop operationMark Brown1-1/+1
More with the legibility. Signed-off-by: Mark Brown <[email protected]> Acked-by: Liam Girdwood <[email protected]>
2011-06-06ASoC: Don't bring the CODEC up to full power for supplies and biasesMark Brown1-2/+21
If the only widgets active within a CODEC are supplies and micbiases we are not passing audio, we are probably just doing microphone detection. This will not generally require either fully accurate reference voltages or much power so If this turns out to be unsuitable for some systems we can provide a facility to override this decision. Signed-off-by: Mark Brown <[email protected]> Acked-by: Liam Girdwood <[email protected]>
2011-06-06ASoC: Specify target bias state directly as a bias stateMark Brown3-32/+38
Rather than a simple flag to say if we want the DAPM context to be at full power specify the target bias state. This should have no current effect but is a bit more direct and so makes it easier to change our decisions about the which bias state to go into in future. Signed-off-by: Mark Brown <[email protected]> Acked-by: Liam Girdwood <[email protected]>
2011-06-06ASoC: Allow WM8915 BCLK calculation outside hw_params()Mark Brown1-29/+53
Allow more dynamic management of the device clocking by allowing BCLK to be calculated when we set SYSCLK. This means that if the system is idle when hw_params() runs then we don't try to use the SYSCLK used in that case to set up the BCLK dividers, we can instead wait until a later point such as bias level configuration. This makes it easier to manage low power modes. Signed-off-by: Mark Brown <[email protected]> Acked-by: Liam Girdwood <[email protected]>
2011-06-06Merge branch 'for-3.0' into for-3.1Mark Brown1-0/+3
2011-06-06ASoC: Check for NULL register bank in snd_soc_get_cache_val()Mark Brown1-0/+3
Signed-off-by: Mark Brown <[email protected]> Acked-by: Liam Girdwood <[email protected]>
2011-06-06ASoC: Enforce the mask in snd_soc_update_bits()Mark Brown1-1/+1
Avoids issues if someone does a read followed by restore and doesn't mask out only the bits being updated. Signed-off-by: Mark Brown <[email protected]> Acked-by: Liam Girdwood <[email protected]>
2011-06-06ASoC: Error out when FLL lock interrupt is not delivered on WM8915Mark Brown1-2/+14
When the FLL locks on the WM8915 an interrupt is generated. For safety error out if we don't get that interrupt when the IRQ output of the WM8915 is hooked up. Since we *really* expect an interrupt but the threaded IRQ handler may take a bit longer than expected to get scheduled also dramatically increase the delay in this case. Signed-off-by: Mark Brown <[email protected]> Acked-by: Liam Girdwood <[email protected]>
2011-06-06ASoC: Suppress noop SYSCLK updates in WM8915Mark Brown1-0/+6
Signed-off-by: Mark Brown <[email protected]> Acked-by: Liam Girdwood <[email protected]>