Commit c012cdc8 authored by Takashi Iwai's avatar Takashi Iwai

Merge branch 'fix/asoc' into for-linus

parents 15439bde f6b864a9
...@@ -4604,7 +4604,7 @@ F: arch/arm/mach-omap2/clockdomain2xxx_3xxx.c ...@@ -4604,7 +4604,7 @@ F: arch/arm/mach-omap2/clockdomain2xxx_3xxx.c
F: arch/arm/mach-omap2/clockdomain44xx.c F: arch/arm/mach-omap2/clockdomain44xx.c
OMAP AUDIO SUPPORT OMAP AUDIO SUPPORT
M: Jarkko Nikula <jhnikula@gmail.com> M: Jarkko Nikula <jarkko.nikula@bitmer.com>
L: alsa-devel@alsa-project.org (subscribers-only) L: alsa-devel@alsa-project.org (subscribers-only)
L: linux-omap@vger.kernel.org L: linux-omap@vger.kernel.org
S: Maintained S: Maintained
......
/* /*
* Platform data for Texas Instruments TLV320AIC3x codec * Platform data for Texas Instruments TLV320AIC3x codec
* *
* Author: Jarkko Nikula <jhnikula@gmail.com> * Author: Jarkko Nikula <jarkko.nikula@bitmer.com>
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as * it under the terms of the GNU General Public License version 2 as
......
...@@ -778,11 +778,19 @@ static int __devexit wm8750_spi_remove(struct spi_device *spi) ...@@ -778,11 +778,19 @@ static int __devexit wm8750_spi_remove(struct spi_device *spi)
return 0; return 0;
} }
static const struct spi_device_id wm8750_spi_ids[] = {
{ "wm8750", 0 },
{ "wm8987", 0 },
{ },
};
MODULE_DEVICE_TABLE(spi, wm8750_spi_ids);
static struct spi_driver wm8750_spi_driver = { static struct spi_driver wm8750_spi_driver = {
.driver = { .driver = {
.name = "wm8750-codec", .name = "wm8750-codec",
.owner = THIS_MODULE, .owner = THIS_MODULE,
}, },
.id_table = wm8750_spi_ids,
.probe = wm8750_spi_probe, .probe = wm8750_spi_probe,
.remove = __devexit_p(wm8750_spi_remove), .remove = __devexit_p(wm8750_spi_remove),
}; };
......
...@@ -2046,8 +2046,13 @@ static int wm8903_probe(struct snd_soc_codec *codec) ...@@ -2046,8 +2046,13 @@ static int wm8903_probe(struct snd_soc_codec *codec)
/* power down chip */ /* power down chip */
static int wm8903_remove(struct snd_soc_codec *codec) static int wm8903_remove(struct snd_soc_codec *codec)
{ {
struct wm8903_priv *wm8903 = snd_soc_codec_get_drvdata(codec);
wm8903_free_gpio(codec); wm8903_free_gpio(codec);
wm8903_set_bias_level(codec, SND_SOC_BIAS_OFF); wm8903_set_bias_level(codec, SND_SOC_BIAS_OFF);
if (wm8903->irq)
free_irq(wm8903->irq, codec);
return 0; return 0;
} }
......
...@@ -2981,6 +2981,7 @@ static int wm8994_codec_probe(struct snd_soc_codec *codec) ...@@ -2981,6 +2981,7 @@ static int wm8994_codec_probe(struct snd_soc_codec *codec)
wm8994->hubs.dcs_readback_mode = 1; wm8994->hubs.dcs_readback_mode = 1;
break; break;
} }
break;
case WM8958: case WM8958:
wm8994->hubs.dcs_readback_mode = 1; wm8994->hubs.dcs_readback_mode = 1;
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* *
* Copyright (C) 2008 Nokia Corporation * Copyright (C) 2008 Nokia Corporation
* *
* Contact: Jarkko Nikula <jhnikula@gmail.com> * Contact: Jarkko Nikula <jarkko.nikula@bitmer.com>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License * modify it under the terms of the GNU General Public License
...@@ -402,6 +402,6 @@ static void __exit n810_soc_exit(void) ...@@ -402,6 +402,6 @@ static void __exit n810_soc_exit(void)
module_init(n810_soc_init); module_init(n810_soc_init);
module_exit(n810_soc_exit); module_exit(n810_soc_exit);
MODULE_AUTHOR("Jarkko Nikula <jhnikula@gmail.com>"); MODULE_AUTHOR("Jarkko Nikula <jarkko.nikula@bitmer.com>");
MODULE_DESCRIPTION("ALSA SoC Nokia N810"); MODULE_DESCRIPTION("ALSA SoC Nokia N810");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* *
* Copyright (C) 2008 Nokia Corporation * Copyright (C) 2008 Nokia Corporation
* *
* Contact: Jarkko Nikula <jhnikula@gmail.com> * Contact: Jarkko Nikula <jarkko.nikula@bitmer.com>
* Peter Ujfalusi <peter.ujfalusi@ti.com> * Peter Ujfalusi <peter.ujfalusi@ti.com>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
...@@ -780,6 +780,6 @@ static void __exit snd_omap_mcbsp_exit(void) ...@@ -780,6 +780,6 @@ static void __exit snd_omap_mcbsp_exit(void)
} }
module_exit(snd_omap_mcbsp_exit); module_exit(snd_omap_mcbsp_exit);
MODULE_AUTHOR("Jarkko Nikula <jhnikula@gmail.com>"); MODULE_AUTHOR("Jarkko Nikula <jarkko.nikula@bitmer.com>");
MODULE_DESCRIPTION("OMAP I2S SoC Interface"); MODULE_DESCRIPTION("OMAP I2S SoC Interface");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* *
* Copyright (C) 2008 Nokia Corporation * Copyright (C) 2008 Nokia Corporation
* *
* Contact: Jarkko Nikula <jhnikula@gmail.com> * Contact: Jarkko Nikula <jarkko.nikula@bitmer.com>
* Peter Ujfalusi <peter.ujfalusi@ti.com> * Peter Ujfalusi <peter.ujfalusi@ti.com>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* *
* Copyright (C) 2008 Nokia Corporation * Copyright (C) 2008 Nokia Corporation
* *
* Contact: Jarkko Nikula <jhnikula@gmail.com> * Contact: Jarkko Nikula <jarkko.nikula@bitmer.com>
* Peter Ujfalusi <peter.ujfalusi@ti.com> * Peter Ujfalusi <peter.ujfalusi@ti.com>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
...@@ -436,6 +436,6 @@ static void __exit snd_omap_pcm_exit(void) ...@@ -436,6 +436,6 @@ static void __exit snd_omap_pcm_exit(void)
} }
module_exit(snd_omap_pcm_exit); module_exit(snd_omap_pcm_exit);
MODULE_AUTHOR("Jarkko Nikula <jhnikula@gmail.com>"); MODULE_AUTHOR("Jarkko Nikula <jarkko.nikula@bitmer.com>");
MODULE_DESCRIPTION("OMAP PCM DMA module"); MODULE_DESCRIPTION("OMAP PCM DMA module");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* *
* Copyright (C) 2008 Nokia Corporation * Copyright (C) 2008 Nokia Corporation
* *
* Contact: Jarkko Nikula <jhnikula@gmail.com> * Contact: Jarkko Nikula <jarkko.nikula@bitmer.com>
* Peter Ujfalusi <peter.ujfalusi@ti.com> * Peter Ujfalusi <peter.ujfalusi@ti.com>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
* *
* Contact: Peter Ujfalusi <peter.ujfalusi@ti.com> * Contact: Peter Ujfalusi <peter.ujfalusi@ti.com>
* Eduardo Valentin <eduardo.valentin@nokia.com> * Eduardo Valentin <eduardo.valentin@nokia.com>
* Jarkko Nikula <jhnikula@gmail.com> * Jarkko Nikula <jarkko.nikula@bitmer.com>
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License * modify it under the terms of the GNU General Public License
......
# S3c24XX Platform Support # S3c24XX Platform Support
snd-soc-s3c24xx-objs := dma.o snd-soc-s3c24xx-objs := dma.o
snd-soc-idma-objs := idma.o
snd-soc-s3c24xx-i2s-objs := s3c24xx-i2s.o snd-soc-s3c24xx-i2s-objs := s3c24xx-i2s.o
snd-soc-s3c2412-i2s-objs := s3c2412-i2s.o snd-soc-s3c2412-i2s-objs := s3c2412-i2s.o
snd-soc-ac97-objs := ac97.o snd-soc-ac97-objs := ac97.o
...@@ -16,6 +17,7 @@ obj-$(CONFIG_SND_S3C_I2SV2_SOC) += snd-soc-s3c-i2s-v2.o ...@@ -16,6 +17,7 @@ obj-$(CONFIG_SND_S3C_I2SV2_SOC) += snd-soc-s3c-i2s-v2.o
obj-$(CONFIG_SND_SAMSUNG_SPDIF) += snd-soc-samsung-spdif.o obj-$(CONFIG_SND_SAMSUNG_SPDIF) += snd-soc-samsung-spdif.o
obj-$(CONFIG_SND_SAMSUNG_PCM) += snd-soc-pcm.o obj-$(CONFIG_SND_SAMSUNG_PCM) += snd-soc-pcm.o
obj-$(CONFIG_SND_SAMSUNG_I2S) += snd-soc-i2s.o obj-$(CONFIG_SND_SAMSUNG_I2S) += snd-soc-i2s.o
obj-$(CONFIG_SND_SAMSUNG_I2S) += snd-soc-idma.o
# S3C24XX Machine Support # S3C24XX Machine Support
snd-soc-jive-wm8750-objs := jive_wm8750.o snd-soc-jive-wm8750-objs := jive_wm8750.o
......
This diff is collapsed.
/*
* sound/soc/samsung/idma.h
*
* Copyright (c) 2011 Samsung Electronics Co., Ltd
* http://www.samsung.com
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*
*/
#ifndef __SND_SOC_SAMSUNG_IDMA_H_
#define __SND_SOC_SAMSUNG_IDMA_H_
extern void idma_reg_addr_init(void *regs, dma_addr_t addr);
/* dma_state */
#define LPAM_DMA_STOP 0
#define LPAM_DMA_START 1
#define MAX_IDMA_PERIOD (128 * 1024)
#define MAX_IDMA_BUFFER (160 * 1024)
#endif /* __SND_SOC_SAMSUNG_IDMA_H_ */
...@@ -131,7 +131,7 @@ static struct snd_soc_dai_link jive_dai = { ...@@ -131,7 +131,7 @@ static struct snd_soc_dai_link jive_dai = {
.cpu_dai_name = "s3c2412-i2s", .cpu_dai_name = "s3c2412-i2s",
.codec_dai_name = "wm8750-hifi", .codec_dai_name = "wm8750-hifi",
.platform_name = "samsung-audio", .platform_name = "samsung-audio",
.codec_name = "wm8750-codec.0-0x1a", .codec_name = "wm8750-codec.0-001a",
.init = jive_wm8750_init, .init = jive_wm8750_init,
.ops = &jive_ops, .ops = &jive_ops,
}; };
......
...@@ -37,7 +37,7 @@ static int speyside_wm8962_set_bias_level(struct snd_soc_card *card, ...@@ -37,7 +37,7 @@ static int speyside_wm8962_set_bias_level(struct snd_soc_card *card,
44100 * 256, 44100 * 256,
SND_SOC_CLOCK_IN); SND_SOC_CLOCK_IN);
if (ret < 0) { if (ret < 0) {
pr_err("Failed to set SYSCLK: %d\n"); pr_err("Failed to set SYSCLK: %d\n", ret);
return ret; return ret;
} }
} }
......
...@@ -309,9 +309,14 @@ static int tegra_pcm_preallocate_dma_buffer(struct snd_pcm *pcm, int stream) ...@@ -309,9 +309,14 @@ static int tegra_pcm_preallocate_dma_buffer(struct snd_pcm *pcm, int stream)
static void tegra_pcm_deallocate_dma_buffer(struct snd_pcm *pcm, int stream) static void tegra_pcm_deallocate_dma_buffer(struct snd_pcm *pcm, int stream)
{ {
struct snd_pcm_substream *substream = pcm->streams[stream].substream; struct snd_pcm_substream *substream;
struct snd_dma_buffer *buf = &substream->dma_buffer; struct snd_dma_buffer *buf;
substream = pcm->streams[stream].substream;
if (!substream)
return;
buf = &substream->dma_buffer;
if (!buf->area) if (!buf->area)
return; return;
......
...@@ -56,6 +56,7 @@ ...@@ -56,6 +56,7 @@
#define GPIO_HP_MUTE BIT(1) #define GPIO_HP_MUTE BIT(1)
#define GPIO_INT_MIC_EN BIT(2) #define GPIO_INT_MIC_EN BIT(2)
#define GPIO_EXT_MIC_EN BIT(3) #define GPIO_EXT_MIC_EN BIT(3)
#define GPIO_HP_DET BIT(4)
struct tegra_wm8903 { struct tegra_wm8903 {
struct tegra_asoc_utils_data util_data; struct tegra_asoc_utils_data util_data;
...@@ -304,6 +305,7 @@ static int tegra_wm8903_init(struct snd_soc_pcm_runtime *rtd) ...@@ -304,6 +305,7 @@ static int tegra_wm8903_init(struct snd_soc_pcm_runtime *rtd)
snd_soc_jack_add_gpios(&tegra_wm8903_hp_jack, snd_soc_jack_add_gpios(&tegra_wm8903_hp_jack,
1, 1,
&tegra_wm8903_hp_jack_gpio); &tegra_wm8903_hp_jack_gpio);
machine->gpio_requested |= GPIO_HP_DET;
} }
snd_soc_jack_new(codec, "Mic Jack", SND_JACK_MICROPHONE, snd_soc_jack_new(codec, "Mic Jack", SND_JACK_MICROPHONE,
...@@ -429,10 +431,10 @@ static int __devexit tegra_wm8903_driver_remove(struct platform_device *pdev) ...@@ -429,10 +431,10 @@ static int __devexit tegra_wm8903_driver_remove(struct platform_device *pdev)
struct tegra_wm8903 *machine = snd_soc_card_get_drvdata(card); struct tegra_wm8903 *machine = snd_soc_card_get_drvdata(card);
struct tegra_wm8903_platform_data *pdata = machine->pdata; struct tegra_wm8903_platform_data *pdata = machine->pdata;
snd_soc_unregister_card(card); if (machine->gpio_requested & GPIO_HP_DET)
snd_soc_jack_free_gpios(&tegra_wm8903_hp_jack,
tegra_asoc_utils_fini(&machine->util_data); 1,
&tegra_wm8903_hp_jack_gpio);
if (machine->gpio_requested & GPIO_EXT_MIC_EN) if (machine->gpio_requested & GPIO_EXT_MIC_EN)
gpio_free(pdata->gpio_ext_mic_en); gpio_free(pdata->gpio_ext_mic_en);
if (machine->gpio_requested & GPIO_INT_MIC_EN) if (machine->gpio_requested & GPIO_INT_MIC_EN)
...@@ -441,6 +443,11 @@ static int __devexit tegra_wm8903_driver_remove(struct platform_device *pdev) ...@@ -441,6 +443,11 @@ static int __devexit tegra_wm8903_driver_remove(struct platform_device *pdev)
gpio_free(pdata->gpio_hp_mute); gpio_free(pdata->gpio_hp_mute);
if (machine->gpio_requested & GPIO_SPKR_EN) if (machine->gpio_requested & GPIO_SPKR_EN)
gpio_free(pdata->gpio_spkr_en); gpio_free(pdata->gpio_spkr_en);
machine->gpio_requested = 0;
snd_soc_unregister_card(card);
tegra_asoc_utils_fini(&machine->util_data);
kfree(machine); kfree(machine);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment