Commit graph

144 commits

Author SHA1 Message Date
Lars-Peter Clausen d754fa9ad1 ASoC: blackfin: Don't set unused struct snd_pcm_hardware fields
The ASoC core assumes that the PCM component of the ASoC card transparently
moves data around and does not impose any restrictions on the memory layout or
the transfer speed. It ignores all fields from the snd_pcm_hardware struct for
the PCM driver that are related to this. Setting these fields in the PCM driver
might suggest otherwise though, so rather not set them.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-12-23 12:49:36 +00:00
Linus Torvalds 73d75ba99e sound fixes for 3.13-rc1
Two peaks in diffstat are for the audio EQ init of IDT codecs and the
 EMU2004 usb mixer addition, both of which are pretty device-specific,
 so safe to apply.  The rest are a bunch of small fixes, most of them
 are regression fixes.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.22 (GNU/Linux)
 
 iQIcBAABAgAGBQJSh0+UAAoJEGwxgFQ9KSmkFpcQAK8+FlQyzjkUD8SAd9xINjm1
 gC7b8cIldx9+LLDvKCshcqM8+RID3EhtUz5DgDmpG7LnJy30aYjhc1McGMiBXLE1
 Lwxi5oM8Rka5OSeW1J98gApeS1QxKRRCjE/6X3Vnnzymy4YziBEf1E6u3o2ZqPiM
 jCLe3nuElrGKrfzoYIf4uI+oA2+iDzc29f/gFV0wl0TXBbuNwNgapfZjeDpyTM49
 D9nhZ5bKddwxo8wgqySqfSrHU37tquNTTayTvD31Q9AQQzXWgTnv4uDpXACTY5h8
 ynYEvkaOD3jMmjTLHU2ygVRKu1ydl+FV6I9JQGvaJbLl/KCGIW3IRQYowH/NltUu
 U/PmYuEOYL5tXNkkO1lN49Ohj2dmgmfO8I1cSUjPyKdNuFEE/AuTIFuSogKittgV
 vuQwyKhZ3sp8g1cQ5YbxSVJI7O+NyFd/XzeL6mIxnBIa6tf2NIIWVkvCFuEmrnKp
 nsVf+JV8wr2tCRHWXRpW9wdLCt5XvKfwXfMZxUKLkxdZMKWy4qwh5ROEs+Tap4D+
 dMThpWDOpC5H92Ygei5dpFav2dL+Iq8+QzLwzgN+JFvtNVUfqKTo7a+jbRdQhoec
 w3DDxhS3MUwpenwiCX9M61RZZhQFNSn1t6J+wA5MCAnOfco71nkN1gf45iry3Vww
 j9zeFh22uHWN0ttyF5zl
 =lXBM
 -----END PGP SIGNATURE-----

Merge tag 'sound-fix-3.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound

Pull sound fixes from Takashi Iwai:
 "Two peaks in diffstat are for the audio EQ init of IDT codecs and the
  EMU2004 usb mixer addition, both of which are pretty device-specific,
  so safe to apply.  The rest are a bunch of small fixes, most of them
  are regression fixes"

* tag 'sound-fix-3.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (26 commits)
  ALSA: hda - load EQ params into IDT codec on HP bNB13 systems
  ASoC: cs42l52: Correct MIC CTL mask
  ASoC: wm8962: Turn on regcache_cache_only before disabling regulator
  ALSA: jack: Unregister input device at disconnection
  ALSA: pcsp: Fix the order of input device unregistration
  ASoC: fsl: imx-pcm-fiq: omit fiq counter to avoid harm in unbalanced situations
  ASoC: blackfin: Fix missing break
  ALSA: usb-audio: add front jack channel selector for EMU0204
  ALSA: hda - Don't clear the power state at snd_hda_codec_reset()
  ASoC: arizona: Fix typo in name of EQ coefficient controls
  ALSA: hda - Control EAPD for Master volume on Lenovo N100
  ALSA: hda - Don't turn off EAPD for headphone on Lenovo N100
  ALSA: isa: not allocating enough space
  ALSA: snd-aoa: two copy and paste bugs
  ASoC: wm8997: Correct typo in ISRC mux routes
  ALSA: hda - Check keep_eapd_on before inv_eapd
  ALSA: hda - Fix Line Out automute on Realtek multifunction jacks
  ALSA: msnd: Avoid duplicated driver name
  ALSA: compress_core: don't return -EBADFD from poll if paused
  ALSA: hda - hdmi: Fix wrong baseline length in ATI/AMD generated ELD
  ...
2013-11-16 12:50:53 -08:00
Takashi Iwai abfe69dd2e ASoC: Fixes for v3.13
A few fixes in drivers, the i.MX and wm8962 fixes are for a pretty nasty
 issues for users of those drivers if they run into them.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.15 (GNU/Linux)
 
 iQIcBAABAgAGBQJShz3GAAoJELSic+t+oim9HgUP/1LSw7wXaGkzBxd7sQ4bAwLc
 Y8sRASb7fJywELUhaE5YTCTcvx6a5xsrhV1MDx5c9NRMWfxnoreuJX6N4fmMk3Tl
 1hk+IQW0iDA2Na12akxAb1t3sXiSROeqLTeZsMrua75MVW1vTIDiNmUoMqOGxczu
 2uzMCYPOJYNLawFAue28prGomLSpI2zXktQyGUiCzX6zh/JKu/I+2UuOl6N1CI3q
 mbNyR4JQDTiodZpg0Fur6I+2pArqaJPY9OthBI9f1xj1ifJDpQMQQChjRQNKYWeK
 A/TMTYMkrIeZUHnNkluem+JuRIE9HED/fY/Uu0MclvfpqqOKWPBMwoIFwPa+8xnn
 n6c8XnFzpZa4p/0h6JE9SBYvliyit44LSmCfZ/q5u2z9JJXeAPXvJfNErTIHDTa1
 S+Xx11oJ0jrThPTNuwhTfc79odPzGigVFk8GoHE2atZr1+FxQ46XDD3k0Hc8g62o
 f86ipMRHUSQdGMeHteKhFbfQUp2b9Y9oQLliovcA+zmWDrQ1E4jG51pfc4feYzR9
 BHqV2FsPa8KIPObZaf+rFXtoBJlAjk423nFSmH+Pt3PBkDmJWTOUG3O5p4nn7oL1
 /HThe+EjuCFuKZ8U75pOnQEdKPTiz4noDRMiYs51Q5OVtywpQ6uRa5r88Fsetpyp
 Kg4lGPkH4zaCEvHp4/cz
 =qcIh
 -----END PGP SIGNATURE-----

Merge tag 'asoc-v3.13-4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus

ASoC: Fixes for v3.13

A few fixes in drivers, the i.MX and wm8962 fixes are for a pretty nasty
issues for users of those drivers if they run into them.
2013-11-16 11:45:55 +01:00
Linus Torvalds 8ceafbfa91 Merge branch 'for-linus-dma-masks' of git://git.linaro.org/people/rmk/linux-arm
Pull DMA mask updates from Russell King:
 "This series cleans up the handling of DMA masks in a lot of drivers,
  fixing some bugs as we go.

  Some of the more serious errors include:
   - drivers which only set their coherent DMA mask if the attempt to
     set the streaming mask fails.
   - drivers which test for a NULL dma mask pointer, and then set the
     dma mask pointer to a location in their module .data section -
     which will cause problems if the module is reloaded.

  To counter these, I have introduced two helper functions:
   - dma_set_mask_and_coherent() takes care of setting both the
     streaming and coherent masks at the same time, with the correct
     error handling as specified by the API.
   - dma_coerce_mask_and_coherent() which resolves the problem of
     drivers forcefully setting DMA masks.  This is more a marker for
     future work to further clean these locations up - the code which
     creates the devices really should be initialising these, but to fix
     that in one go along with this change could potentially be very
     disruptive.

  The last thing this series does is prise away some of Linux's addition
  to "DMA addresses are physical addresses and RAM always starts at
  zero".  We have ARM LPAE systems where all system memory is above 4GB
  physical, hence having DMA masks interpreted by (eg) the block layers
  as describing physical addresses in the range 0..DMAMASK fails on
  these platforms.  Santosh Shilimkar addresses this in this series; the
  patches were copied to the appropriate people multiple times but were
  ignored.

  Fixing this also gets rid of some ARM weirdness in the setup of the
  max*pfn variables, and brings ARM into line with every other Linux
  architecture as far as those go"

* 'for-linus-dma-masks' of git://git.linaro.org/people/rmk/linux-arm: (52 commits)
  ARM: 7805/1: mm: change max*pfn to include the physical offset of memory
  ARM: 7797/1: mmc: Use dma_max_pfn(dev) helper for bounce_limit calculations
  ARM: 7796/1: scsi: Use dma_max_pfn(dev) helper for bounce_limit calculations
  ARM: 7795/1: mm: dma-mapping: Add dma_max_pfn(dev) helper function
  ARM: 7794/1: block: Rename parameter dma_mask to max_addr for blk_queue_bounce_limit()
  ARM: DMA-API: better handing of DMA masks for coherent allocations
  ARM: 7857/1: dma: imx-sdma: setup dma mask
  DMA-API: firmware/google/gsmi.c: avoid direct access to DMA masks
  DMA-API: dcdbas: update DMA mask handing
  DMA-API: dma: edma.c: no need to explicitly initialize DMA masks
  DMA-API: usb: musb: use platform_device_register_full() to avoid directly messing with dma masks
  DMA-API: crypto: remove last references to 'static struct device *dev'
  DMA-API: crypto: fix ixp4xx crypto platform device support
  DMA-API: others: use dma_set_coherent_mask()
  DMA-API: staging: use dma_set_coherent_mask()
  DMA-API: usb: use new dma_coerce_mask_and_coherent()
  DMA-API: usb: use dma_set_coherent_mask()
  DMA-API: parport: parport_pc.c: use dma_coerce_mask_and_coherent()
  DMA-API: net: octeon: use dma_coerce_mask_and_coherent()
  DMA-API: net: nxp/lpc_eth: use dma_coerce_mask_and_coherent()
  ...
2013-11-14 07:55:21 +09:00
Takashi Iwai afed4dbe3a ASoC: blackfin: Fix missing break
Fixes: 4b2ffc205c ('ASoC: Blackfin I2S: add 8-bit sample support')
Reported-by: David Binderman
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Mark Brown <broonie@linaro.org>
Cc: stable@vger.kernel.org
2013-11-13 16:47:42 +00:00
Takashi Iwai ddb146da23 ASoC: blackfin: Use WARN_ON() instead of BUG_ON()
Use WARN_ON() and handle the error cases accordingly.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-11-06 10:26:09 +00:00
Russell King c9bd5e690a DMA-API: sound: fix dma mask handling in a lot of drivers
This code sequence is unsafe in modules:

static u64 mask = DMA_BIT_MASK(something);
...
	if (!dev->dma_mask)
		dev->dma_mask = &mask;

as if a module is reloaded, the mask will be pointing at the original
module's mask address, and this can lead to oopses.  Moreover, they
all follow this with:

	if (!dev->coherent_dma_mask)
		dev->coherent_dma_mask = mask;

where 'mask' is the same value as the statically defined mask, and this
bypasses the architecture's check on whether the DMA mask is possible.

Fix these issues by using the new dma_coerce_coherent_and_mask()
function.

Acked-by: Mark Brown <broonie@linaro.org>
Acked-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2013-10-31 14:48:47 +00:00
Valentin Ilie 4f8ec17377 ASoC: blackfin: Add missing break statement to bf6xx
SNDRV_PCM_FORMAT_S8 isn't supposed to fall through to SNDRV_PCM_FORMAT_S16_LE

Signed-off-by: Valentin Ilie <valentin.ilie@gmail.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-09-17 00:47:14 +01:00
Lars-Peter Clausen 50b4dc690a ASoC: bf5xx-ac97: Remove unused extern declaration
The blackfin ac97 driver never defines nor uses a global ac97 struct. So remove
the extern declaration for it.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-07-30 13:01:09 +01:00
Lars-Peter Clausen 610d80eaa9 ASoC: bf5xx-ac97: Fix compile error with SND_BF5XX_HAVE_COLD_RESET
If CONFIG_SND_BF5XX_HAVE_COLD_RESET is enabled building the blackfin ac97 driver
fails with the following compile error:
	sound/soc/blackfin/bf5xx-ac97.c: In function ‘asoc_bfin_ac97_probe’:
	sound/soc/blackfin/bf5xx-ac97.c:297: error: expected ‘;’ before ‘{’ token
	sound/soc/blackfin/bf5xx-ac97.c:302: error: label ‘gpio_err’ used but not defined

The issue was introduced in commit 6dab2fd7 ("ASoC: bf5xx-ac97: Convert to
devm_gpio_request_one()").

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-07-30 12:51:02 +01:00
Mark Brown 1deb57042f ASoC: bfin-ac97: Fix prototype error following AC'97 refactoring
As part of the multiplatform refactoring for AC'97 the AC'97 bus ops were
staticised meaning that the prototype (which was never needed) conflicts
with the declaration causing build failures.

Signed-off-by: Mark Brown <broonie@linaro.org>
Acked-by: Lars-Peter Clausen <lars@metafoo.de>
2013-07-29 17:57:00 +01:00
Takashi Iwai accaf69da1 ASoC: More updates for v3.11
Some more fixes and enhancements, and also a bunch of refectoring for
 AC'97 support which enables more than one AC'97 controller driver to be
 built in.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.12 (GNU/Linux)
 
 iQIcBAABAgAGBQJRzXInAAoJELSic+t+oim9jBoQAJjGBiMyEyPv51CV5h2Cfo7c
 SGvoYwC+Q90fBsCLt4J/ei0rP+LUEbNUdnvs+xFeRiCqWHYs/d3/PeIZnuPMUQvZ
 VQOen7L1S+zd6mvDAr45LFmQOpAi74QkqRL1cwtuxWYeLJvFJwvYFTME6pYgjLi4
 HYAmZPZjMhOu3oNZmQIb+4Cmrf0/YbaIserI5kzHWd4b+pC8QCneBqvfwIaMowe0
 qBHw/bSB/haLTpjjbxZGw8NtnJyBvTT90ixgmv1akcZY/8NEh2bMIlzu52olNCci
 ZsCaS0HnjnICV7X5j6bBSjoqt7BQfXdQGFM7mbLn7BqW16MW/R0ONoSk1vE0RQQ0
 RGNYRA/X5yG4XReFE+93sHbJ2esGYnynwbykJd19DNFq0JRpdEpBUuudk8GsTEGh
 jsdh7YbRRGz1EUCxjiyMKiN7jHUhYGB9RRXjbR8Fo4GmTI1HHkOuv07gUfWr7v8F
 o2EcgvNdsEYtOrHP/Y7NCqkd7GkZOzDm3Xfp8Z5Wb81uKhJ3vbldvvUyjWBHrXLO
 Lzb2EACJYE8rqNN3FPsmNDBiuVlRrHeQQmtLL21lz5ZBK7b93+/NK44jN5OnNgU1
 D1PyErveZwogvtAUhZamx7FoZfnHxXQ4nNUWlLacBl3gRLrjzVqB8LQ9IdTyV1/V
 rqTrG1nTPJRCJLN0DLqq
 =UZaY
 -----END PGP SIGNATURE-----

Merge tag 'asoc-v3.11-2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-next

ASoC: More updates for v3.11

Some more fixes and enhancements, and also a bunch of refectoring for
AC'97 support which enables more than one AC'97 controller driver to be
built in.
2013-06-28 13:36:22 +02:00
Mark Brown b047e1cce8 ASoC: ac97: Support multi-platform AC'97
Currently we can only have a single platform built in with AC'97 support
due to the use of a global variable to provide the bus operations. Fix
this by making that variable a pointer and having the bus drivers set the
operations prior to registering.

This is not a particularly good or nice approach but it avoids blocking
multiplatform and a real fix involves fixing the fairly deep problems
with AC'97 support - we should be converting it to a real bus.

Acked-by: Arnd Bergmann <arnd@arndb.de>
Reviewed-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-27 09:48:42 +01:00
Mark Brown 6dab2fd71c ASoC: bf5xx-ac97: Convert to devm_gpio_request_one()
Also clean up the error reporting from failed requests while we're at it.

Signed-off-by: Mark Brown <broonie@linaro.org>
2013-06-27 09:44:11 +01:00
Lars-Peter Clausen cc37961b21 ASoC: blackfin: Remove bf5xx-tdm driver
Now that the bf5xx-i2s driver supports TDM mode and all users of the bf5xx-tdm
driver have been switch over to using the bf5xx-i2s driver there is no need to
keep the b5fxx-tdm driver around.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-30 12:33:41 +01:00
Lars-Peter Clausen 34f4095564 ASoC: blackfin: Switch bf5xx-ad1836 from bf5xx-tdm to bf5xx-i2s
The bf5xx-i2s driver now has support for TDM mode and the bf5xx-tdm driver is
going to be removed soon, so switch the driver over to bf5xx-i2s.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-30 12:33:41 +01:00
Lars-Peter Clausen b88546324e ASoC: blackfin: Switch bf5xx-ad193x from bf5xx-tdm to bf5xx-i2s
The bf5xx-i2s driver now has support for TDM mode and the bf5xx-tdm driver is
going to be removed soon, so switch the driver over to bf5xx-i2s.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-30 12:33:40 +01:00
Lars-Peter Clausen 8b5e2e396b ASoC: blackfin: bf5xx-i2s: Add support for TDM mode
The bf5xx-i2s{,-pcm} and bf5xx-tdm{-pcm} drivers are nearly identical. Both are
for the same hardware each supporting a slight different subset of the hardware.
The bf5xx-i2s driver supports 2 channel I2S mode while the bf5xx-tdm driver
supports TDM mode and channel remapping. This patch adds support for TDM mode
and channel remapping to the bf5xx-i2s driver so that we'll eventually be able
to retire the bf5xx-tdm driver. Unfortunately the hardware is fixed to using 8
channels in TDM mode. The bf5xx-tdm driver jumps through a few hoops to make it
work well with other channel counts as well:
	* Don't support mmap
	* Translate between internal frame size (which is always 8 * sample_size)
	  and ALSA frame size (which depends on the channel count)
	* Have special copy and silence callbacks which are aware of the mismatch
	  between internal and ALSA frame size
	* Reduce the maximum buffer size to ensure that there is enough headroom for
	  dummy data.

The bf5xx-i2s driver is going to use the same mechanisms when being used int
TDM mode.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-30 12:33:40 +01:00
Lars-Peter Clausen a3935a29f6 ASoC: blackfin: bf5xx-i2s-pcm: Use snd_pcm_lib_preallocate_pages_for_all()
Use snd_pcm_lib_preallocate_pages_for_all() for pre-allocating the DMA buffers
instead of re-implementing the same functionality.  Note that there is no need
to call snd_pcm_lib_free_pages_for_all() since the ALSA core takes care of this
for us.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-30 12:33:40 +01:00
Lars-Peter Clausen 569ef65a97 ASoC: blackfin: bf5xx-i2s: Allocate buffer only as large as requested
There is no need to always allocate the maximum buffer size. While we are at it
also pass errors returned by snd_pcm_lib_malloc_pages() on to the upper layers.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-30 12:33:40 +01:00
Lars-Peter Clausen 6344260484 ASoC: blackfin: bf5xx-sport: Allow setting rx and tx mask independently
Since the hardware supports it there is no need to artificially limit this to
just being able to set the same mask for both tx and rx.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-30 12:33:40 +01:00
Lars-Peter Clausen b7ede5dea0 ASoC: blackfin: bf5xx-i2s: Use dev_{err, dbg} instead of pr_{error, debug}
Using dev_{err,dbg} instead of pr_{error,debug} makes it easier to recognize
which device created the message.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-30 12:33:40 +01:00
Lars-Peter Clausen d65f63da22 ASoC: blackfin: Remove unused bf5xx-{i2s, tdm, ac97}-pcm.h
The structs defined in these files are completely unused, so remove both the
structs and the files.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-30 12:33:40 +01:00
Lars-Peter Clausen 19b6317b8c ASoC: bf5xx-tdm-pcm: Staticize non exported struct
The bf5xx_tdm_pcm_ops struct is only used in bf5xx-tdm-pcm.c, so make it static.

Cc: Scott Jiang <scott.jiang.linux@gmail.com>
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-15 08:50:28 +04:00
Kuninori Morimoto 58309649b4 ASoC: switch over to use snd_soc_register_component() on bf5xx tdm
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-03-26 21:55:25 +00:00
Kuninori Morimoto b56733bd2b ASoC: switch over to use snd_soc_register_component() on bf5xx i2s
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-03-26 21:55:25 +00:00
Kuninori Morimoto 514f6ac78b ASoC: switch over to use snd_soc_register_component() on bf5xx ac97
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-03-26 21:55:24 +00:00
Kuninori Morimoto 3272c51bfa ASoC: switch over to use snd_soc_register_component() on bf6xx i2s
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-03-26 21:55:24 +00:00
Bill Pemberton dca66dab76 ASoC: blackfin: remove __dev* attributes
CONFIG_HOTPLUG is going away as an option.  As result the __dev*
markings will be going away.

Remove use of __devinit, __devexit_p, __devinitdata, __devinitconst,
and __devexit.

Signed-off-by: Bill Pemberton <wfp5p@virginia.edu>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-12-10 00:29:39 +09:00
Mark Brown 75d8f2931a Merge branch 'asoc-omap' into for-3.7 2012-09-05 20:05:11 +08:00
Scott Jiang d14a13d3d9 ASoC: bf5xx-ad1836: convert to use snd_soc_register_card
Cpu dai and codec name are passed in through platform data.

Signed-off-by: Scott Jiang <scott.jiang.linux@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-17 23:25:17 +01:00
Scott Jiang 8b5eae137b ASoC: bfin: fix memory leak in sport3 controller driver
Signed-off-by: Scott Jiang <scott.jiang.linux@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-08-09 14:08:59 +01:00
Scott Jiang f4a6348391 ASoC: bfin: use dev_err to print error log instead of dev_dbg
Signed-off-by: Scott Jiang <scott.jiang.linux@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-06-21 11:07:55 +01:00
Scott Jiang f62ae7bda4 ASoC: add i2s dai driver for bf6xx soc
This driver enables i2s mode support on blackfin bf6xx platform.
We reuse bf5xx-i2s-pcm.c as its i2s pcm driver because it's the same
for both bf5xx and bf6xx soc.

Signed-off-by: Scott Jiang <scott.jiang.linux@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-06-20 11:26:54 +01:00
Scott Jiang d2aae47f80 ASoC: add sport driver for bf6xx soc
The SPORT(Serial Port) module on bf6xx soc has a totally different ip
comparing to bf5xx soc. An individual SPORT module consists of two
independently configurable SPORT halves with identical functionality.
Each SPORT half can be configured for either transmitter or receiver.

Signed-off-by: Scott Jiang <scott.jiang.linux@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-06-20 11:26:12 +01:00
Mark Brown dc2af52c0d Linux 3.4-rc7
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.18 (GNU/Linux)
 
 iQEcBAABAgAGBQJPrxCRAAoJEHm+PkMAQRiGQAgH/icr6rDF/e7Y7LoNErjVag94
 +PUhYx851xH3ApPlB1fBaU1ZTvQS2Pb34B8G8WrqWJ+yTs4XfE9sCPj2yb+7ySA8
 vb0vPsErVvAcRWv8sP22NF2ERKNFj/PtSNAcAUJHb5djrRmJcZJ3aw03cdY/INAS
 2OqJEoMc2IBa5Z+WePQJ8N+J2YgDSDdCnpBKNuSHDGN0rBm4suiWY8PWXgTzMAhG
 TNgNrKIlN8bnaX4hPJr6ooN+sxInkUl8ZglAPxwwjVtmYvGch4FiowpDC7BQbSGB
 WFSVsIuv3jMI6VaYDo/NQOFDQqqoK4h7DmBIqbL5eXBRTJg9xW+1A8zloGd4Rks=
 =IWBQ
 -----END PGP SIGNATURE-----

Merge tag 'v3.4-rc7' into for-3.5

Linux 3.4-rc7

Conflicts):
	drivers/base/regmap/regmap.c         (overlap with bug fixes)
	sound/soc/blackfin/bf5xx-ssm2602.c   (overlap with bug fixes)
2012-05-13 13:32:54 +01:00
Lars-Peter Clausen d9ca8e76f3 ASoC: bf5xx-ssm2602: Setup sysclock in init callback
The sysclock is fixed, so just set it up once in the init callback instead of
setting it repeatably in the hw_params callback.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-04-25 11:19:31 +01:00
Lars-Peter Clausen a3a53fe154 ASoC: bf5xx-ssm2602: Set DAI format
Commit 980b0bc69 ("ASoC: blackfin: Use dai_fmt") converted the blackfin ASoC
machine drivers to use the dai_links dai_fmt field to setup their DAI format.
For the bf5xx-ssm2602 the commit removed the manual call to snd_soc_dai_set_fmt,
but missed to set the dai_links dai_fmt field.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-04-25 11:14:44 +01:00
Lars-Peter Clausen 980b0bc692 ASoC: blackfin: Use dai_fmt
Use the dai_link's dai_fmt attribute to setup the DAI format instead of doing
this manually.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-02-01 18:29:19 +00:00
Joachim Eastwood 25e9e7565f ASoC: check for substream not channels_min in pcm engines
This is a follow up on 53dea36c70 which fixes the other affected
pcm engines.

Description from 53dea36c70:
 Don't rely on the codec's channels_min information to decide wheter or
 not allocate a substream's DMA buffer. Rather check if the substream
 itself was allocated previously.

Without this patch I was seeing null-pointer dereferenc in atmel-pcm.

Signed-off-by: Joachim Eastwood <joachim.eastwood@jotron.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-01-07 11:18:05 -08:00
Axel Lin 30e4953011 ASoC: blackfin: Add .owner to struct snd_soc_card
Missed .owner of struct snd_soc_card will prevent the module from being
removed from underneath its users.

Reported-by: Lothar Waßmann <LW@KARO-electronics.de>
Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-12-22 17:34:34 +00:00
Axel Lin fb80297e43 ASoC: Convert blackfin directory to module_platform_driver
Factor out some boilerplate code.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Acked-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-11-24 10:45:18 +00:00
Lars-Peter Clausen 85e7652d89 ASoC: Constify snd_soc_dai_ops structs
Commit 1ee46ebd("ASoC: Make the DAI ops constant in the DAI structure")
introduced the possibility to have constant DAI ops structures, yet this is
barley used in both existing drivers and also new drivers being submitted,
although none of them modifies its DAI ops structure. The later is not
surprising since existing drivers are often used as templates for new drivers.
So this patch just constifies all existing snd_soc_dai_ops structs to eliminate
the issue altogether.

The patch was generated with the following coccinelle semantic patch:
// <smpl>
@@
identifier ops;
@@
-struct snd_soc_dai_ops ops =
+const struct snd_soc_dai_ops ops =
{ ... };
// </smpl>

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2011-11-23 10:40:46 +00:00
Paul Gortmaker da155d5b40 sound: Add module.h to the previously silent sound users
Lots of sound drivers were getting module.h via the implicit presence
of it in <linux/device.h> but we are going to clean that up.  So
fix up those users now.

Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
2011-10-31 19:31:21 -04:00
Paul Gortmaker 6a550b99a0 blackfin: add module.h to files implicitly expecting to use it.
Its presence was implicit everywhere, but we are aiming to fix that,
so call out the users explicitly.

Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
2011-10-31 19:31:02 -04:00
Axel Lin 3b70e3b55d ASoC: Staticise bf5xx_pcm_i2s_new()
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>
2011-09-21 14:55:50 +01:00
Axel Lin 3156cf73bd ASoC: Staticise bf5xx_pcm_ac97_new()
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>
2011-09-21 14:55:50 +01:00
Mark Brown cc2115cbfc Merge branch 'for-3.1' into for-3.2 2011-09-16 00:54:25 +01:00
Axel Lin 4f6c7e1593 ASoC: bf5xx-ad73311: Fix prototype for bf5xx_probe
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>
2011-09-16 00:50:16 +01:00
Mark Brown 11323e3283 Merge branch 'for-3.1' into for-3.2 2011-09-05 18:13:31 -07:00