aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
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]>
2011-06-06Merge branch 'for-3.0' into for-3.1Mark Brown1-1/+2
2011-06-06ASoC: Add missing break in WM8915 FLL source selectionMark Brown1-0/+1
Signed-off-by: Mark Brown <[email protected]> Acked-by: Liam Girdwood <[email protected]>
2011-06-06ASoC: Only update SYSCLK_ENA when pausing WM8915 SYSCLKMark Brown1-1/+1
Signed-off-by: Mark Brown <[email protected]> Acked-by: Liam Girdwood <[email protected]>
2011-06-06Merge branch 'for-3.0' into for-3.1Mark Brown7576-378954/+451486
2011-06-06Merge branch 'for-3.0' of ↵Mark Brown3-7/+11
git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound-2.6 into for-3.0
2011-06-03ASoC: OMAP: Update Makefile and Kconfig for HDMI audioRicardo Neri2-0/+15
Update Makefile and Kconfig to build HDMI audio support for OMAP4 SDP and Panda boards. Signed-off-by: Ricardo Neri <[email protected]> Acked-by: Mark Brown <[email protected]> Signed-off-by: Liam Girdwood <[email protected]>
2011-06-03ASoC: OMAP4: Add HDMI Audio machine driver for OMAP4 boardsRicardo Neri1-0/+129
Add machine driver for HDMI audio on OMAP4 boards. This driver is in charge of putting together the HDMI audio codec and the CPU DAI and register the HDMI sound card with ALSA. Signed-off-by: Ricardo Neri <[email protected]> Acked-by: Mark Brown <[email protected]> Signed-off-by: Liam Girdwood <[email protected]>
2011-06-03ASoC: OMAP: Add CPU DAI driver for HDMIRicardo Neri2-0/+194
Addition of the HDMI CPU DAI driver for OMAP4. This driver is in charge of configuring DMA settings for HDMI. Also, it finds the HDMI video device and determines if audio playback can proceed. Signed-off-by: Ricardo Neri <[email protected]> Acked-by: Mark Brown <[email protected]> Signed-off-by: Liam Girdwood <[email protected]>
2011-06-03ASoC: atmel_ssc: Don't try to free ssc if request failedJoachim Eastwood1-2/+3
We should only call ssc_free() when ssc_request() succeeds or bad things will happen. Signed-off-by: Joachim Eastwood <[email protected]> Acked-by: Liam Girdwood <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2011-06-02ASoC: Use a lower detection rate when monitoring headphones on WM8915Mark Brown1-6/+14
We only need to increase the detection rate to maximum if we're monitoring for button presses as the response times needed for user interaction there are much lower. Signed-off-by: Mark Brown <[email protected]> Acked-by: Liam Girdwood <[email protected]>
2011-06-01ASoC: Update speyside audio driver for hardware revision 2Mark Brown1-4/+4
Revision 2 of the Speyside platform supplies a 32kHz clock on MCLK2 rather than MCLK1. Signed-off-by: Mark Brown <[email protected]> Acked-by: Liam Girdwood <[email protected]>
2011-06-01ASoC: Remove internally generated WM8915 suppliesMark Brown1-7/+1
DCVDD and MICVDD are intended to be (and almost always are) generated by on-board LDOs which are transparently controlled by the driver so we shouldn't really be requesting them from the regulator API. If the driver is updated to support external supply of these then we will need to change the way we handle this. Signed-off-by: Mark Brown <[email protected]> Acked-by: Liam Girdwood <[email protected]>
2011-06-01ASoC: add missing clk_put to nuc900-ac97Julia Lawall1-1/+1
This goto is after the call to clk_get, so it should go to the label that includes a call to clk_put. A simplified version of the semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // <smpl> @r exists@ expression e1,e2; statement S; @@ e1 = clk_get@p1(...); ... when != e1 = e2 when != clk_put(e1) when any if (...) { ... when != clk_put(e1) when != if (...) { ... clk_put(e1) ... } * return@p3 ...; } else S // </smpl> Signed-off-by: Julia Lawall <[email protected]> Acked-by: Liam Girdwood <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2011-06-01ASoC: Support edge triggered IRQs for WM8915Mark Brown1-2/+22
Really this should be something the IRQ core can cope with for us but since it doesn't currently do so (at least for threaded interrupts like this) do so in the driver. This allows us to run with interrupt controllers that only support edge triggered interrupts. Signed-off-by: Mark Brown <[email protected]> Acked-by: Liam Girdwood <[email protected]>
2011-06-01ASoC: Staticize ak4641_daiMark Brown1-1/+1
Signed-off-by: Mark Brown <[email protected]> Acked-by: Liam Girdwood <[email protected]>