diff options
author | Takashi Iwai <tiwai@suse.de> | 2014-08-04 20:28:21 +0400 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2014-08-04 20:28:21 +0400 |
commit | e9e3bdffe38b256f920eacc455d30deba5e97655 (patch) | |
tree | cfa546f6370c117e012c12605da22ce189542127 /sound/soc/s6000 | |
parent | f42bb22243d2ae264d721b055f836059fe35321f (diff) | |
parent | ae34a78c430c37c06404f032fb04e51315204281 (diff) | |
download | linux-e9e3bdffe38b256f920eacc455d30deba5e97655.tar.xz |
Merge tag 'asoc-v3.17' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus
ASoC: Updates for v3.17
This has been a pretty exciting release in terms of the framework, we've
finally got support for multiple CODECs attached to a single DAI link
which has been something there's been interest in as long as I've been
working on ASoC. A big thanks to Benoit and Misael for their work on
this.
Otherwise it's been a fairly standard release for development, including
more componentisation work from Lars-Peter and a good selection of both
CODEC and CPU drivers.
- Support for multiple CODECs attached to a single DAI, enabling
systems with for example multiple DAC/speaker drivers on a single
link, contributed by Benoit Cousson based on work from Misael Lopez
Cruz.
- Support for byte controls larger than 256 bytes based on the use of
TLVs contributed by Omair Mohammed Abdullah.
- More componentisation work from Lars-Peter Clausen.
- The remainder of the conversions of CODEC drivers to params_width()
- Drivers for Cirrus Logic CS4265, Freescale i.MX ASRC blocks, Realtek
RT286 and RT5670, Rockchip RK3xxx I2S controllers and Texas Instruments
TAS2552.
- Lots of updates and fixes, especially to the DaVinci, Intel,
Freescale, Realtek, and rcar drivers.
Diffstat (limited to 'sound/soc/s6000')
-rw-r--r-- | sound/soc/s6000/Kconfig | 13 | ||||
-rw-r--r-- | sound/soc/s6000/Makefile | 2 | ||||
-rw-r--r-- | sound/soc/s6000/s6000-i2s.c | 4 | ||||
-rw-r--r-- | sound/soc/s6000/s6105-ipcam.c | 17 |
4 files changed, 15 insertions, 21 deletions
diff --git a/sound/soc/s6000/Kconfig b/sound/soc/s6000/Kconfig index c74eb3d4a47c..f244a2566f20 100644 --- a/sound/soc/s6000/Kconfig +++ b/sound/soc/s6000/Kconfig @@ -1,17 +1,24 @@ config SND_S6000_SOC tristate "SoC Audio for the Stretch s6000 family" - depends on XTENSA_VARIANT_S6000 + depends on XTENSA_VARIANT_S6000 || COMPILE_TEST + depends on HAS_IOMEM + select SND_S6000_SOC_PCM if XTENSA_VARIANT_S6000 help Say Y or M if you want to add support for codecs attached to s6000 family chips. You will also need to select the platform to support below. +config SND_S6000_SOC_PCM + tristate + config SND_S6000_SOC_I2S tristate config SND_S6000_SOC_S6IPCAM - tristate "SoC Audio support for Stretch 6105 IP Camera" - depends on SND_S6000_SOC && XTENSA_PLATFORM_S6105 + bool "SoC Audio support for Stretch 6105 IP Camera" + depends on SND_S6000_SOC=y + depends on I2C=y + depends on XTENSA_PLATFORM_S6105 || COMPILE_TEST select SND_S6000_SOC_I2S select SND_SOC_TLV320AIC3X help diff --git a/sound/soc/s6000/Makefile b/sound/soc/s6000/Makefile index 7a613612e010..0f0ae2a012aa 100644 --- a/sound/soc/s6000/Makefile +++ b/sound/soc/s6000/Makefile @@ -2,7 +2,7 @@ snd-soc-s6000-objs := s6000-pcm.o snd-soc-s6000-i2s-objs := s6000-i2s.o -obj-$(CONFIG_SND_S6000_SOC) += snd-soc-s6000.o +obj-$(CONFIG_SND_S6000_SOC_PCM) += snd-soc-s6000.o obj-$(CONFIG_SND_S6000_SOC_I2S) += snd-soc-s6000-i2s.o # s6105 Machine Support diff --git a/sound/soc/s6000/s6000-i2s.c b/sound/soc/s6000/s6000-i2s.c index 7eba7979b9af..1c8d01166e5b 100644 --- a/sound/soc/s6000/s6000-i2s.c +++ b/sound/soc/s6000/s6000-i2s.c @@ -570,7 +570,7 @@ err_release_none: return ret; } -static void s6000_i2s_remove(struct platform_device *pdev) +static int s6000_i2s_remove(struct platform_device *pdev) { struct s6000_i2s_dev *dev = dev_get_drvdata(&pdev->dev); struct resource *region; @@ -597,6 +597,8 @@ static void s6000_i2s_remove(struct platform_device *pdev) iounmap(mmio); region = platform_get_resource(pdev, IORESOURCE_IO, 0); release_mem_region(region->start, resource_size(region)); + + return 0; } static struct platform_driver s6000_i2s_driver = { diff --git a/sound/soc/s6000/s6105-ipcam.c b/sound/soc/s6000/s6105-ipcam.c index 0b21d1dc80c1..3510c01f8a6a 100644 --- a/sound/soc/s6000/s6105-ipcam.c +++ b/sound/soc/s6000/s6105-ipcam.c @@ -19,8 +19,6 @@ #include <sound/pcm.h> #include <sound/soc.h> -#include <variant/dmac.h> - #include "s6000-pcm.h" #include "s6000-i2s.h" @@ -135,22 +133,8 @@ static const struct snd_kcontrol_new audio_out_mux = { /* Logic for a aic3x as connected on the s6105 ip camera ref design */ static int s6105_aic3x_init(struct snd_soc_pcm_runtime *rtd) { - struct snd_soc_codec *codec = rtd->codec; - struct snd_soc_dapm_context *dapm = &codec->dapm; struct snd_soc_card *card = rtd->card; - /* not present */ - snd_soc_dapm_nc_pin(dapm, "MONO_LOUT"); - snd_soc_dapm_nc_pin(dapm, "LINE2L"); - snd_soc_dapm_nc_pin(dapm, "LINE2R"); - - /* not connected */ - snd_soc_dapm_nc_pin(dapm, "MIC3L"); /* LINE2L on this chip */ - snd_soc_dapm_nc_pin(dapm, "MIC3R"); /* LINE2R on this chip */ - snd_soc_dapm_nc_pin(dapm, "LLOUT"); - snd_soc_dapm_nc_pin(dapm, "RLOUT"); - snd_soc_dapm_nc_pin(dapm, "HPRCOM"); - /* must correspond to audio_out_mux.private_value initializer */ snd_soc_dapm_disable_pin(&card->dapm, "Audio Out Differential"); @@ -182,6 +166,7 @@ static struct snd_soc_card snd_soc_card_s6105 = { .num_dapm_widgets = ARRAY_SIZE(aic3x_dapm_widgets), .dapm_routes = audio_map, .num_dapm_routes = ARRAY_SIZE(audio_map), + .fully_routed = true, }; static struct s6000_snd_platform_data s6105_snd_data __initdata = { |