aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2011-07-15ASoC: WM8983: Initial driverDimitris Papastamos4-0/+2238
The WM8983 is a low power, high quality stereo CODEC designed for portable multimedia applications. Highly flexible analogue mixing functions enable new application features, combining hi-fi quality audio with voice communication. Signed-off-by: Dimitris Papastamos <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2011-07-15Merge branch 'for-3.0' into for-3.1Mark Brown1-1/+1
2011-07-15ASoC: Fix shift in WM8958 accessory detection default implementationMark Brown1-1/+1
Signed-off-by: Mark Brown <[email protected]> Cc: [email protected]
2011-07-14ASoC: wm8900: fix a memory leak if wm8900_set_fll failsAxel Lin1-0/+1
Signed-off-by: Axel Lin <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2011-07-14ASoC: Log WM8994 FIFO errors from the interruptMark Brown1-0/+14
We should spot them anyway on state changes but logging them gives us better time information about when the misconfiguration happened. Signed-off-by: Mark Brown <[email protected]>
2011-07-14ASoC: SAMSUNG: 24-bit audio playback on Exynos4210Giridhar Maruthy1-1/+4
Using 256fs or 512fs will result in distortion of 24-bit audio samples. This is because the lrclk generated is not proper. Using 384 fs generates proper output. Signed-off-by: Giridhar Maruthy <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2011-07-14ASoC: Don't warn on low WM8994/58 AIFnCLKsMark Brown1-4/+0
We can have valid but very low clocks in accessory detection modes. Signed-off-by: Mark Brown <[email protected]>
2011-07-14ASoC: Use WM8994 FLL lock interruptMark Brown2-1/+42
If we have interrupts then wait for the FLL lock interrupt rather than using dead reckoning when waiting for the FLL to start. Signed-off-by: Mark Brown <[email protected]>
2011-07-14ASoC: Hook up DC servo completion IRQ for WM8994 and WM8958Mark Brown1-0/+11
Signed-off-by: Mark Brown <[email protected]>
2011-07-14ASoC: Implement DC servo completion IRQ handling for wm_hubs devicesMark Brown2-5/+37
The individual devices should set the flag dcs_done_irq in the hubs shared data structure to indicate that they will flag the interrupt by calling wm_hubs_dcs_done(). Signed-off-by: Mark Brown <[email protected]>
2011-07-14ASoC: Use late enable handling for direct voice, speaker and headphoneMark Brown3-13/+22
This ensures appropriate clocking for bypass paths to speaker and headphone and direct voice paths on affected revisions. Signed-off-by: Mark Brown <[email protected]>
2011-07-14ASoC: STA32x: Preserve reserved register bitsJohannes Stezenbach1-0/+16
Chip documentation explicitly requires that the reset values of reserved register bits are left untouched. It is possible there are differences between STA326 and STA328 or future chip revisions in these bits, and clobbering them might cause malfunction. Signed-off-by: Johannes Stezenbach <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2011-07-14ASoC: STA32x: Add mixer controls for biquad coefficientsJohannes Stezenbach1-0/+124
The STA32x has a number of preset EQ settings, but also allows full user control of the biquad filter coeffcients (when "Automode EQ" is set to "User"). Each biquad has five signed, 24bit, fixed-point coefficients representing the range -1...1. The five biquad coefficients can be uploaded in one atomic operation into on-chip coefficient RAM. There are also a few prescale, postscale and mixing coefficients, in the same numeric format and range (a negative coefficient inverts phase). These coefficients are made available as SNDRV_CTL_ELEM_TYPE_BYTES mixer controls. Signed-off-by: Johannes Stezenbach <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2011-07-09ASoC: Conditionalize the enable of WM8994 ADC TDM modeMark Brown1-4/+12
Future devices will not benefit from this. Signed-off-by: Mark Brown <[email protected]> Acked-by: Liam Girdwood <[email protected]>
2011-07-09Merge branch 'topic/asoc' of ↵Mark Brown7-15/+361
git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6 into for-3.1
2011-07-09Merge branch 'for-3.0' into for-3.1Mark Brown3-11/+11
2011-07-09ASoC: sh: fsi-hdmi: fixup snd_soc_card nameKuninori Morimoto1-2/+2
it shouldn't contain space letters and special letters like parentheses. aplay will be "Segmentation fault" without this patch special thanks to Takashi. Signed-off-by: Kuninori Morimoto <[email protected]> Acked-by: Liam Girdwood <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2011-07-09ASoC: sh: fsi-da7210: fixup snd_soc_card nameKuninori Morimoto1-1/+1
it shouldn't contain space letters and special letters like parentheses. aplay will be "Segmentation fault" without this patch. special thanks to Takashi. Signed-off-by: Kuninori Morimoto <[email protected]> Acked-by: Liam Girdwood <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2011-07-09ASoC: sh: fsi-ak4642: fixup snd_soc_card nameKuninori Morimoto1-8/+8
it shouldn't contain space letters and special letters like parentheses. aplay will be "Segmentation fault" without this patch. special thanks to Takashi. Signed-off-by: Kuninori Morimoto <[email protected]> Acked-by: Liam Girdwood <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2011-07-09Merge branch 'for-3.1' of ↵Takashi Iwai12-30/+976
git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound-2.6 into topic/asoc
2011-07-09Merge branch 'for-3.0' into for-3.1Mark Brown3-6/+22
2011-07-09Merge branch 'for-3.0' of ↵Takashi Iwai2-27/+4
git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound-2.6 into fix/asoc
2011-07-07Merge branch 'for-3.0' into for-3.1Mark Brown1-1/+1
2011-07-07ASoC: pxa2xx-pcm: remove unused variable 'dai'Axel Lin1-1/+0
Remove unused variable 'dai' to eliminate below warning. CC sound/soc/pxa/pxa2xx-pcm.o sound/soc/pxa/pxa2xx-pcm.c: In function 'pxa2xx_soc_pcm_new': sound/soc/pxa/pxa2xx-pcm.c:91: warning: unused variable 'dai' Signed-off-by: Axel Lin <[email protected]> Acked-by: Liam Girdwood <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2011-07-07ASoC: ak4642: fixup snd_soc_update_bits mask for PW_MGMT2Kuninori Morimoto1-1/+1
mask didn't cover update-data Signed-off-by: Kuninori Morimoto <[email protected]> Acked-by: Liam Girdwood <[email protected]> Signed-off-by: Mark Brown <[email protected]> Cc: [email protected]
2011-07-05ASoC: Tegra: Implement SPDIF CPU DAIStephen Warren4-0/+855
This is a minimal driver for the Tegra SPDIF controller. In hardware, the SPDIF output signal is always routed to any active HDMI display controllers, and may also be routed to external pins on Tegra using the pinmux. Signed-off-by: Stephen Warren <[email protected]> Acked-by: Liam Girdwood <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2011-07-05ASoC: core - Add platform IO tracingLiam Girdwood2-0/+47
Trace platform IO just like CODEC IO. Signed-off-by: Liam Girdwood <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2011-07-05ASoC: core - Add convenience register for platform kcontrol and DAPMLiam Girdwood2-0/+19
Allow platform probe to register platform kcontrols and DAPM just like the CODEC probe(). Signed-off-by: Liam Girdwood <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2011-07-05ASoC: core - Add platform widget IOLiam Girdwood4-2/+19
Allow platform driver widgets to perform any IO required for DAPM. Signed-off-by: Liam Girdwood <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2011-07-05ASoC: core - Add API call to register platform kcontrols.Liam Girdwood2-0/+32
In preparation for Dynamic PCM (AKA DSP) support. Allow platform drivers to register kcontrols. Signed-off-by: Liam Girdwood <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2011-07-05ASoC: Manage WM8731 ACTIVE bit as a supply widgetMark Brown1-26/+3
Now we have supply widgets there's no need to open code the handling of the ACTIVE bit. Signed-off-by: Mark Brown <[email protected]> Tested-by: Nicolas Ferre <[email protected]> Acked-by: Liam Girdwood <[email protected]>
2011-07-05ASoC: Manage WM8731 ACTIVE bit as a supply widgetMark Brown1-26/+3
Now we have supply widgets there's no need to open code the handling of the ACTIVE bit. Signed-off-by: Mark Brown <[email protected]> Tested-by: Nicolas Ferre <[email protected]> Acked-by: Liam Girdwood <[email protected]>
2011-07-05ASoC: Don't set invalid name string to snd_card->driver fieldTakashi Iwai1-2/+3
The snd_card->driver field contains a driver name string, and in general it shouldn't contain space or special letters. The commit 2b39535b9e54888649923beaab443af212b6c0fd changed the string copy from card->name, but the long name string may contain such letters, thus it may still lead to a segfault. A temporary fix is not to copy the long name string but just keep it empty as the earlier version did. Reported-by: Kuninori Morimoto <[email protected]> Acked-by: Liam Girdwood <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2011-07-05Merge branch 'for-3.1' of ↵Takashi Iwai21-136/+1622
git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound-2.6 into topic/asoc
2011-07-05Merge branch 'for-3.0' of ↵Takashi Iwai3-2/+19
git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound-2.6 into fix/asoc
2011-07-05Merge branch 'for-3.1' of ↵Takashi Iwai7-15/+361
git://git.kernel.org/pub/scm/linux/kernel/git/lrg/asoc-2.6 into topic/asoc
2011-07-05Merge branch 'for-3.0' of ↵Takashi Iwai2-4/+19
git://git.kernel.org/pub/scm/linux/kernel/git/lrg/asoc-2.6 into fix/asoc
2011-07-04ASoC: core - Add platform read and write.Liam Girdwood2-0/+38
In preparation for ASoC Dynamic PCM (AKA DSP) support. Allow platform driver to perform IO. Intended for platform DAPM. Signed-off-by: Liam Girdwood <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2011-07-04ASoC: tlv320aic3x: Add correct hw registers to Line1 cross connect muxesJarkko Nikula1-13/+21
Commit af46800 ("ASoC: Implement mux control sharing") revealed that "Left Line1[L | R] Mux" and "Right Line1[L | R] Mux" widgets were pointing to the same kcontrols and codec registers and thus soc-core falsely detected them as shared controls. This is actually wrong since there are separate registers in hardware that configure Line1L to RADC and Line1R to LADC cross connects so these muxes should not be shared. Signed-off-by: Jarkko Nikula <[email protected]> Acked-by: Mark Brown <[email protected]> Signed-off-by: Liam Girdwood <[email protected]>
2011-07-04Merge branch 'for-3.0' into for-3.1Mark Brown2-0/+8
2011-07-04ASoC: Ensure we delay long enough for WM8994 FLL to lock when startingMark Brown1-0/+2
This delay is very conservative. Signed-off-by: Mark Brown <[email protected]> Acked-by: Liam Girdwood <[email protected]> Cc: [email protected]
2011-07-04ASoC: Tegra: I2S: s/clk_get_sys/clk_get/Stephen Warren1-3/+1
The clock needed by the I2S driver is associated with the I2S device name in the standard fashion. Hence, use clk_get(dev) instead of clk_get_sys(clk_name). Signed-off-by: Stephen Warren <[email protected]> Acked-by: Liam Girdwood <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2011-07-04ASoC: Tegra: I2S: Ensure clock is enabled when writing regsStephen Warren1-0/+6
The I2S controller needs a clock to respond to register writes. Without this, register writes will at worst hang the CPU. In practice, I've only observed writes being dropped. Luckily, the dropped register writes historically had no effect: TEGRA_I2S_TIMING: The value we wrote was the reset default. TEGRA_I2S_FIFO_SCR: The default was for the FIFOs to request more data when one slot was empty. The requested value was for the FIFOs to request when four slots were empty. The DMA controller in the mainline kernel is configured to burst a single entry at a time into the FIFO, hence there was no issue. The only negative effect was on bus efficiency losses due to an increased number of arbitration attempts. However, in various non-upstream changes, the DMA controller now bursts four entries at a time into the FIFO. If there is only space for one entry, the data is simply dropped. In practice, this resulted in 3/4 of samples being dropped, and playback at 4x the expected rate and pitch. By fixing the clocking issue, this is solved. Signed-off-by: Stephen Warren <[email protected]> Acked-by: Liam Girdwood <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2011-07-02ASoC: core - Make platform probe more like codec probe.Liam Girdwood1-15/+36
In preparation for ASoC dynamic PCM support (AKA ASoC DSP) Platform will also support DAPM so separate out the probe function to simplify the code (just like the codec probe). Signed-off-by: Liam Girdwood <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2011-06-30ASoC: Improve error reporting in Speyside WM8962 driverMark Brown1-4/+8
Signed-off-by: Mark Brown <[email protected]> Acked-by: Liam Girdwood <[email protected]>
2011-06-29Merge branch 'for-3.0' into for-3.1Mark Brown1-2/+11
2011-06-29ASoC: Change WM9081 speaker output enable to _OUT_DRVMark Brown1-1/+1
More for neatness than any actual performance improvement. Signed-off-by: Mark Brown <[email protected]> Acked-by: Liam Girdwood <[email protected]>
2011-06-29ASoC: Correct left/right swap in wm_hubs DC offset correctionMark Brown1-8/+8
It was consistently wrong for everything except WM8993 so should be no functional change. Signed-off-by: Mark Brown <[email protected]> Acked-by: Liam Girdwood <[email protected]>
2011-06-29ASoC: Fix Blackfin I2S _pointer() implementation return in bounds valuesMark Brown1-2/+11
The Blackfin DMA controller can report one frame beyond the end of the buffer in the wraparound case but ALSA requires that the pointer always be in the buffer. Do the wraparound to handle this. A similar bug is likely to apply to the other Blackfin PCM drivers but the code is less obvious to inspection and I don't have a user to test. Reported-by: Kieran O'Leary <Kieran.O'[email protected]> Acked-by: Liam Girdwood <[email protected]> Signed-off-by: Mark Brown <[email protected]> Cc: [email protected]
2011-06-28ASoC: Blackfin: Add machine driver for EVAL-ADAV80X boardsLars-Peter Clausen3-0/+188
Add a machine driver to support the EVAL-ADAV801 and EVAL-ADAV803 boards connected to a Analog Devices BF5XX evaluation board. Signed-off-by: Lars-Peter Clausen <[email protected]> Acked-by: Mike Frysinger <[email protected]> Acked-by: Liam Girdwood <[email protected]> Signed-off-by: Mark Brown <[email protected]>