Commit Graph

6056 Commits

Author SHA1 Message Date
Mark Brown
278d064bb8 Merge remote-tracking branch 'asoc/topic/ak4642' into asoc-next 2013-02-11 11:06:25 +00:00
Mark Brown
c331a23b3c Merge remote-tracking branch 'asoc/topic/adsp' into asoc-next 2013-02-11 11:06:24 +00:00
Mark Brown
708558d378 Merge remote-tracking branch 'asoc/fix/wm2200' into asoc-next 2013-02-11 11:06:22 +00:00
Mark Brown
af861779ec Merge remote-tracking branch 'asoc/fix/wm2000' into asoc-next 2013-02-11 11:06:20 +00:00
Mark Brown
6d60568b3b Merge remote-tracking branch 'asoc/fix/ux500' into asoc-next 2013-02-11 11:06:19 +00:00
Mark Brown
dd31f59101 Merge remote-tracking branch 'asoc/fix/tlv320aic3x' into asoc-next 2013-02-11 11:06:18 +00:00
Mark Brown
89bc3f2c93 Merge remote-tracking branch 'asoc/fix/samsung' into asoc-next 2013-02-11 11:06:17 +00:00
Mark Brown
1df63cc0f0 Merge remote-tracking branch 'asoc/fix/dwc' into asoc-next 2013-02-11 11:06:17 +00:00
Mark Brown
8e37fcb624 Merge remote-tracking branch 'asoc/fix/davinci' into asoc-next 2013-02-11 11:06:16 +00:00
Mark Brown
810195256e Merge remote-tracking branch 'asoc/fix/arizona' into asoc-next 2013-02-11 11:06:15 +00:00
Mark Brown
4d631a0bed Merge remote-tracking branch 'asoc/fix/adsp' into asoc-next 2013-02-11 11:06:14 +00:00
Chris Rattray
bdaacea359 ASoC: wm_adsp: round to 4-byte boundary for coeff file blocks
Signed-off-by: Chris Rattray <crattray@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-02-11 10:53:34 +00:00
Mark Brown
9092a6ea16 ASoC: arizona: Fix debug logging level for FLLs and AIFs
Use _dbg for debug messages.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-02-07 11:41:19 +00:00
Takashi Iwai
6baa4afa04 Merge branch 'fix/fsl' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus-uncursed
We need this for fixing build error regressions in soc/fsl.
2013-02-06 15:49:07 +01:00
Mark Brown
cf17c83c4a ASoC: wm_adsp: Use asynchronous I/O to write firmware and coefficients
Allow the regmap API to use asynchronous I/O where supported to minimise
the delay between transfers, reducing firmware download times.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-02-04 19:52:35 +00:00
Chris Rattray
0d2b642252 ASoC: wm2200: correct IN2L and IN3L digital mute
Signed-off-by: Chris Rattray <crattray@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: stable@vger.kernel.org
2013-02-04 18:44:27 +00:00
Ryo Tsutsui
01f58153ae ASoC: arizona: Fixed a bug in FLL fractional calculation
Previously arizona_calc_fll() was checking if the target frequency is
exactly divisible by reference frequency, but should have been product
of the ratio and the reference frequency.

Also scale down the Lamba and Theta coefficients be under 16-bits in
order to match the registers.

Signed-off-by: Ryo Tsutsui <ryo.tsutsui@wolfsonmicro.com>
Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: stable@vger.kernel.org
2013-02-04 18:29:04 +00:00
Lee Jones
9fc4cd8281 ASoC: Ux500: Fix build error pertaining to missing include file
Some compilers complain when building sound for MOP500:

sound/soc/ux500/mop500.c:27:27:
        fatal error: mop500_ab8500.h: No such file or directory

That file is actually in the local directory rather than include.

Signed-off-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-01-31 20:37:05 +08:00
Alexey Galakhov
58f5a7151e ASoC: samsung: Fix compilation error on S3C2440
The commit a08485d8 ("ASoC: Samsung: Do not register samsung audio dma
device as pdev") introduced compilation error.

Combination of CONFIG_CPU_S3C2440 and CONFIG_SND_S3C24XX_I2S
caused undefined symbols 's3c_i2sv2_register_dai' and 's3c2412_i2s_dai'
in sound/soc/samsung/s3c24xx-i2s.c.

This patch fixes the problem and makes S3C2440 I2S usable again. It does
not affect S3C2412 (aka I2S-v2).

Signed-off-by: Alexey Galakhov <agalakhov@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-01-31 14:48:39 +08:00
Mark Brown
8e9bb423a2 ASoC: wm2000: Lock state machine updates
Need to ensure we don't get confused by simultaneous updates.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-01-31 12:18:57 +08:00
Mark Brown
31522764c6 ASoC: wm_adsp: Fix support for firmware switching on DSP2 and higher
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-01-30 20:11:01 +08:00
Benoît Thébaudeau
06378da45d ASoC: tlv320aic3x: Remove mono support
Playing a mono stream on the TLV320AIC3x results in too fast playback rate.

Remove mono support so that mono streams can be played correctly on this codec.

Tested with imx-ssi (i.MX25) and TLV320AIC3104.

Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-01-30 10:15:21 +08:00
Mark Brown
06dc374c70 Merge remote-tracking branch 'asoc/fix/adsp' into asoc-adsp
Conflicts:
	sound/soc/codecs/wm_adsp.c
2013-01-29 00:51:05 +08:00
Mark Brown
2d30b5751d ASoC: wm_adsp: Ensure ADSP2 DMAs are quiesced when DSP is halted
Maximise robustness for the widest range of firmwares by ensuring the DSP
is in a consistent state when halted.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-01-29 00:49:09 +08:00
Shawn Guo
1927661b17 ASoC: fsl: fix snd-soc-imx-pcm module build
When building modules with CONFIG_SND_IMX_SOC=m in imx_v6_v7_defconfig,
we will see the following link error.

  LD [M]  sound/soc/fsl/snd-soc-fsl-ssi.o
  LD [M]  sound/soc/fsl/snd-soc-fsl-utils.o
  LD [M]  sound/soc/fsl/snd-soc-imx-ssi.o
  LD [M]  sound/soc/fsl/snd-soc-imx-audmux.o
  LD [M]  sound/soc/fsl/snd-soc-imx-pcm.o
sound/soc/fsl/imx-pcm-dma.o: In function `init_module':
imx-pcm-dma.c:(.init.text+0x0): multiple definition of `init_module'
sound/soc/fsl/imx-pcm-fiq.o:imx-pcm-fiq.c:(.init.text+0x0): first defined here
sound/soc/fsl/imx-pcm-dma.o: In function `cleanup_module':
imx-pcm-dma.c:(.exit.text+0x0): multiple definition of `cleanup_module'
sound/soc/fsl/imx-pcm-fiq.o:imx-pcm-fiq.c:(.exit.text+0x0): first defined here
make[4]: *** [sound/soc/fsl/snd-soc-imx-pcm.o] Error 1

The module snd-soc-imx-pcm is designed to link imx-pcm.o with
imx-pcm-dma.o or imx-pcm-fiq.o depending on if option SND_SOC_IMX_PCM_DMA
or SND_SOC_IMX_PCM_FIQ is enabled.  Both imx-pcm-dma and imx-pcm-fiq
register their own module_platform_driver.  However, these two options
are not mutually exclusive and can be enabled together.  And that's
why we see above multiple init_module definition error.

Instead of having both imx-pcm-dma and imx-pcm-fiq register their
own platform_driver, we should do only once in imx-pcm.c.  Using
platform_device_id to distinguish between imx-pcm-dma and imx-pcm-fiq,
we can run-time call imx-pcm-dma/fiq specific initialization in .probe
hook to have module snd-soc-imx-pcm work for both cases.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-01-28 14:46:09 +08:00
Shawn Guo
93d7b7622c Revert "ASoC: fsl: fix multiple definition of init_module"
This reverts commit 25b8d31488.

While the commit fixes multiple init_module definition error with
module build, it breaks build when both imx-pcm-fiq and imx-pcm-dma
are built in as below.

  LD      sound/soc/fsl/snd-soc-fsl-ssi.o
  LD      sound/soc/fsl/snd-soc-fsl-utils.o
  LD      sound/soc/fsl/snd-soc-imx-ssi.o
  LD      sound/soc/fsl/snd-soc-imx-audmux.o
  LD      sound/soc/fsl/snd-soc-imx-pcm-fiq.o
  LD      sound/soc/fsl/snd-soc-imx-pcm-dma.o
  LD      sound/soc/fsl/snd-soc-eukrea-tlv320.o
  LD      sound/soc/fsl/snd-soc-imx-sgtl5000.o
  LD      sound/soc/fsl/snd-soc-imx-mc13783.o
  LD      sound/soc/fsl/built-in.o
sound/soc/fsl/snd-soc-imx-pcm-dma.o: In function `imx_pcm_free':
imx-pcm.c:(.text+0x464): multiple definition of `imx_pcm_free'
sound/soc/fsl/snd-soc-imx-pcm-fiq.o:imx-pcm-fiq.c:(.text+0x1a8): first defined here
sound/soc/fsl/snd-soc-imx-pcm-dma.o: In function `snd_imx_pcm_mmap':
imx-pcm.c:(.text+0x35c): multiple definition of `snd_imx_pcm_mmap'
sound/soc/fsl/snd-soc-imx-pcm-fiq.o:imx-pcm-fiq.c:(.text+0xa0): first defined here
sound/soc/fsl/snd-soc-imx-pcm-dma.o: In function `imx_pcm_new':
imx-pcm.c:(.text+0x3dc): multiple definition of `imx_pcm_new'
sound/soc/fsl/snd-soc-imx-pcm-fiq.o:imx-pcm-fiq.c:(.text+0x120): first defined here
make[4]: *** [sound/soc/fsl/built-in.o] Error 1

Let's revert the commit and find a proper fix for multiple init_module
definition error later.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-01-28 14:46:09 +08:00
Michal Bachraty
dde109fb46 ASoC: McASP: Fix data rotation for playback. Enables 24bit audio playback
u32 rotate = (32 - word_length) / 4;
This implementation is wrong, but it works only for 16, or 32 bit audio data.
(rotation for 16 or 32 bit is same as in code I present) Mcasp rotated data in
4 bits (max value 0x7)and then masks them . That data are sended to i2s bus.
For 24 bit or 20 bit or other data formats, this code rotates data badly and
you hear somethink like noise.  You need to use
u32 rotate = (word_length / 4) & 0x7;
to proper data rotation.

Signed-off-by: Michal Bachraty <michal.bachraty@streamunlimited.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-01-27 14:14:46 +08:00
Dan Carpenter
0099d24c6b ASoC: dwc: fix support for more than two channels
There were missing break statements so everything used
TWO_CHANNEL_SUPPORT.

Also I added a return statement to silence a GCC warning:

	sound/soc/dwc/designware_i2s.c: In function ‘dw_i2s_hw_params’:
	sound/soc/dwc/designware_i2s.c:236:32: warning: ‘ch_reg’ may be
		used uninitialized in this function
		[-Wmaybe-uninitialized]

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Acked-by: Rajeev Kumar <rajeev-dlh.kumar@st.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-01-26 15:37:09 +08:00
Mark Brown
7480800ea6 ASoC: wm_adsp: Accept 0 as a parameter block address
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-01-26 11:39:44 +08:00
Mark Brown
36e8fe9901 ASoC: wm_adsp: Add speaker Tx as a firmware option
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-01-26 11:39:42 +08:00
Mark Brown
338c5188f6 ASoC: wm_adsp: Correct handling of some coefficeint blocks
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-01-24 00:42:27 +08:00
Mark Brown
a8c136d2eb Merge remote-tracking branch 'asoc/fix/wm2200' into tmp 2013-01-22 16:26:33 +08:00
Mark Brown
32eca984f6 Merge remote-tracking branch 'asoc/fix/fsl' into tmp 2013-01-22 16:26:21 +08:00
Mark Brown
05780d7771 Merge remote-tracking branch 'asoc/fix/core' into tmp 2013-01-22 16:26:15 +08:00
Mark Brown
bc04c93bbc Merge remote-tracking branch 'asoc/fix/arizona' into tmp 2013-01-22 16:26:06 +08:00
Charles Keepax
a4cdbec758 ASoC: wm_adsp: Release firmware on error
This patch correctly releases the firmware if the magic string in the
firmware header does not match.

Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-01-22 16:40:26 +09:00
Charles Keepax
f63d944b71 ASoC: wm_adsp: Release firmware on error
This patch correctly releases the firmware if the magic string in the
firmware header does not match.

Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-01-22 16:27:21 +09:00
Mark Brown
20da6d5ac0 ASoC: wm_adsp: Provide explicit trace of coefficient writes
Helpful for debugging.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-01-21 17:46:35 +09:00
Mark Brown
69485d3e6d Merge remote-tracking branch 'asoc/fix/adsp' into asoc-adsp 2013-01-21 17:46:16 +09:00
Mark Brown
f2a93e2a4c ASoC: wm_adsp: Use GFP_DMA for algorithm readback
Normally kmalloc() returns things that are DMA safe so not visible on all
platforms but we do need to explicitly request DMA safe memory.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-01-20 22:17:30 +09:00
Mark Brown
7881fd0fb3 ASoC: wm_adsp: Use GFP_DMA for things that may be DMAed
Normally kmalloc() returns things that are DMA safe so not visible on all
platforms but we do need to explicitly request DMA safe memory.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-01-20 22:14:34 +09:00
Mark Brown
25c62f7e70 ASoC: wm_adsp: Make region identification errors more informative
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-01-20 22:13:24 +09:00
Chris Rattray
94e205bfb7 ASoC: wm_adsp: Set ADSP1 clock rate to match sys clock
Sets the ADSP1 clock rate to match the system clock
rate. To support this the codec driver provides
details of register containing the system clock
control bits.

Signed-off-by: Chris Rattray <crattray@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-01-18 17:46:28 +09:00
Mark Brown
c712326d6c ASoC: wm_adsp: Implement support for coefficeint file format 1
Implement support for a new revision of the coefficeint file format for
ADSP cores.

Since coefficient file format 0 has not been widely deployed and is very
unlikely to ever be used with this driver code support for it has been
removed.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-01-18 15:02:17 +09:00
Mark Brown
b59e0f82aa ASoC: arizona: Use actual rather than desired BCLK when calculating LRCLK
Otherwise we'll get the wrong LRCLK if we need to pick a higher BCLK than
is required.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: stable@vger.kernel.org
2013-01-17 14:36:07 +09:00
Chris Rattray
a80cc73428 ASoC: wm2200: correct mixer values and text
Signed-off-by: Chris Rattray <crattray@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: stable@vger.kernel.org
2013-01-16 20:47:26 +09:00
Mark Brown
5e7a7a221f ASoC: wm_adsp: Add initialisation function for ADSP1
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-01-16 10:21:57 +09:00
Stephen Rothwell
c890caee54 ASoC: ak4642: remove __devinitconst annotation
CONFIG_HOTPLUG is always true now and the __dev* macros have been removed.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-01-14 13:52:21 +09:00
Mark Brown
1023dbd90c ASoC: wm_adsp: Add basic firmware selection support
There are many firmwares available for ADSP devices. Add basic support
for selecting between them, including a couple of feature sets in the
set of available firmware to start off with.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-01-12 18:36:07 +00:00
Mark Brown
7d5cb4f710 ASoC: wm5110: Correct AEC loopback mask
The generated defines in the header are pre-shifted.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-01-12 00:16:30 +00:00