Commit 2ff38c9f authored by Takashi Iwai's avatar Takashi Iwai

Merge branch 'fix/asoc' into for-linus

parents c949e3d6 af745bd7
...@@ -526,7 +526,7 @@ static int wm8731_probe(struct snd_soc_codec *codec) ...@@ -526,7 +526,7 @@ static int wm8731_probe(struct snd_soc_codec *codec)
snd_soc_update_bits(codec, WM8731_RINVOL, 0x100, 0); snd_soc_update_bits(codec, WM8731_RINVOL, 0x100, 0);
/* Disable bypass path by default */ /* Disable bypass path by default */
snd_soc_update_bits(codec, WM8731_APANA, 0x4, 0); snd_soc_update_bits(codec, WM8731_APANA, 0x8, 0);
snd_soc_add_controls(codec, wm8731_snd_controls, snd_soc_add_controls(codec, wm8731_snd_controls,
ARRAY_SIZE(wm8731_snd_controls)); ARRAY_SIZE(wm8731_snd_controls));
......
...@@ -498,6 +498,7 @@ static int mpc8610_hpcd_probe(struct platform_device *pdev) ...@@ -498,6 +498,7 @@ static int mpc8610_hpcd_probe(struct platform_device *pdev)
dev_err(&pdev->dev, "platform device add failed\n"); dev_err(&pdev->dev, "platform device add failed\n");
goto error; goto error;
} }
dev_set_drvdata(&pdev->dev, sound_device);
of_node_put(codec_np); of_node_put(codec_np);
......
...@@ -498,6 +498,7 @@ static int p1022_ds_probe(struct platform_device *pdev) ...@@ -498,6 +498,7 @@ static int p1022_ds_probe(struct platform_device *pdev)
dev_err(&pdev->dev, "platform device add failed\n"); dev_err(&pdev->dev, "platform device add failed\n");
goto error; goto error;
} }
dev_set_drvdata(&pdev->dev, sound_device);
of_node_put(codec_np); of_node_put(codec_np);
......
...@@ -49,7 +49,7 @@ static unsigned short nuc900_ac97_read(struct snd_ac97 *ac97, ...@@ -49,7 +49,7 @@ static unsigned short nuc900_ac97_read(struct snd_ac97 *ac97,
mutex_lock(&ac97_mutex); mutex_lock(&ac97_mutex);
val = nuc900_checkready(); val = nuc900_checkready();
if (!!val) { if (val) {
dev_err(nuc900_audio->dev, "AC97 codec is not ready\n"); dev_err(nuc900_audio->dev, "AC97 codec is not ready\n");
goto out; goto out;
} }
...@@ -102,7 +102,7 @@ static void nuc900_ac97_write(struct snd_ac97 *ac97, unsigned short reg, ...@@ -102,7 +102,7 @@ static void nuc900_ac97_write(struct snd_ac97 *ac97, unsigned short reg,
mutex_lock(&ac97_mutex); mutex_lock(&ac97_mutex);
tmp = nuc900_checkready(); tmp = nuc900_checkready();
if (!!tmp) if (tmp)
dev_err(nuc900_audio->dev, "AC97 codec is not ready\n"); dev_err(nuc900_audio->dev, "AC97 codec is not ready\n");
/* clear the R_WB bit and write register index */ /* clear the R_WB bit and write register index */
...@@ -149,7 +149,7 @@ static void nuc900_ac97_warm_reset(struct snd_ac97 *ac97) ...@@ -149,7 +149,7 @@ static void nuc900_ac97_warm_reset(struct snd_ac97 *ac97)
udelay(100); udelay(100);
val = nuc900_checkready(); val = nuc900_checkready();
if (!!val) if (val)
dev_err(nuc900_audio->dev, "AC97 codec is not ready\n"); dev_err(nuc900_audio->dev, "AC97 codec is not ready\n");
mutex_unlock(&ac97_mutex); mutex_unlock(&ac97_mutex);
...@@ -263,8 +263,7 @@ static int nuc900_ac97_trigger(struct snd_pcm_substream *substream, ...@@ -263,8 +263,7 @@ static int nuc900_ac97_trigger(struct snd_pcm_substream *substream,
return ret; return ret;
} }
static int nuc900_ac97_probe(struct platform_device *pdev, static int nuc900_ac97_probe(struct snd_soc_dai *dai)
struct snd_soc_dai *dai)
{ {
struct nuc900_audio *nuc900_audio = nuc900_ac97_data; struct nuc900_audio *nuc900_audio = nuc900_ac97_data;
unsigned long val; unsigned long val;
...@@ -284,12 +283,12 @@ static int nuc900_ac97_probe(struct platform_device *pdev, ...@@ -284,12 +283,12 @@ static int nuc900_ac97_probe(struct platform_device *pdev,
return 0; return 0;
} }
static void nuc900_ac97_remove(struct platform_device *pdev, static int nuc900_ac97_remove(struct snd_soc_dai *dai)
struct snd_soc_dai *dai)
{ {
struct nuc900_audio *nuc900_audio = nuc900_ac97_data; struct nuc900_audio *nuc900_audio = nuc900_ac97_data;
clk_disable(nuc900_audio->clk); clk_disable(nuc900_audio->clk);
return 0;
} }
static struct snd_soc_dai_ops nuc900_ac97_dai_ops = { static struct snd_soc_dai_ops nuc900_ac97_dai_ops = {
...@@ -313,7 +312,7 @@ static struct snd_soc_dai_driver nuc900_ac97_dai = { ...@@ -313,7 +312,7 @@ static struct snd_soc_dai_driver nuc900_ac97_dai = {
.channels_max = 2, .channels_max = 2,
}, },
.ops = &nuc900_ac97_dai_ops, .ops = &nuc900_ac97_dai_ops,
} };
static int __devinit nuc900_ac97_drvprobe(struct platform_device *pdev) static int __devinit nuc900_ac97_drvprobe(struct platform_device *pdev)
{ {
......
...@@ -110,4 +110,6 @@ struct nuc900_audio { ...@@ -110,4 +110,6 @@ struct nuc900_audio {
}; };
extern struct nuc900_audio *nuc900_ac97_data;
#endif /*end _NUC900_AUDIO_H */ #endif /*end _NUC900_AUDIO_H */
...@@ -50,12 +50,12 @@ static int nuc900_dma_hw_params(struct snd_pcm_substream *substream, ...@@ -50,12 +50,12 @@ static int nuc900_dma_hw_params(struct snd_pcm_substream *substream,
unsigned long flags; unsigned long flags;
int ret = 0; int ret = 0;
spin_lock_irqsave(&nuc900_audio->lock, flags);
ret = snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(params)); ret = snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(params));
if (ret < 0) if (ret < 0)
return ret; return ret;
spin_lock_irqsave(&nuc900_audio->lock, flags);
nuc900_audio->substream = substream; nuc900_audio->substream = substream;
nuc900_audio->dma_addr[substream->stream] = runtime->dma_addr; nuc900_audio->dma_addr[substream->stream] = runtime->dma_addr;
nuc900_audio->buffersize[substream->stream] = nuc900_audio->buffersize[substream->stream] =
...@@ -169,6 +169,7 @@ static int nuc900_dma_prepare(struct snd_pcm_substream *substream) ...@@ -169,6 +169,7 @@ static int nuc900_dma_prepare(struct snd_pcm_substream *substream)
struct snd_pcm_runtime *runtime = substream->runtime; struct snd_pcm_runtime *runtime = substream->runtime;
struct nuc900_audio *nuc900_audio = runtime->private_data; struct nuc900_audio *nuc900_audio = runtime->private_data;
unsigned long flags, val; unsigned long flags, val;
int ret = 0;
spin_lock_irqsave(&nuc900_audio->lock, flags); spin_lock_irqsave(&nuc900_audio->lock, flags);
...@@ -197,10 +198,10 @@ static int nuc900_dma_prepare(struct snd_pcm_substream *substream) ...@@ -197,10 +198,10 @@ static int nuc900_dma_prepare(struct snd_pcm_substream *substream)
AUDIO_WRITE(nuc900_audio->mmio + ACTL_RESET, val); AUDIO_WRITE(nuc900_audio->mmio + ACTL_RESET, val);
break; break;
default: default:
return -EINVAL; ret = -EINVAL;
} }
spin_unlock_irqrestore(&nuc900_audio->lock, flags); spin_unlock_irqrestore(&nuc900_audio->lock, flags);
return 0; return ret;
} }
static int nuc900_dma_trigger(struct snd_pcm_substream *substream, int cmd) static int nuc900_dma_trigger(struct snd_pcm_substream *substream, int cmd)
...@@ -332,7 +333,7 @@ static struct snd_soc_platform_driver nuc900_soc_platform = { ...@@ -332,7 +333,7 @@ static struct snd_soc_platform_driver nuc900_soc_platform = {
.ops = &nuc900_dma_ops, .ops = &nuc900_dma_ops,
.pcm_new = nuc900_dma_new, .pcm_new = nuc900_dma_new,
.pcm_free = nuc900_dma_free_dma_buffers, .pcm_free = nuc900_dma_free_dma_buffers,
} };
static int __devinit nuc900_soc_platform_probe(struct platform_device *pdev) static int __devinit nuc900_soc_platform_probe(struct platform_device *pdev)
{ {
......
...@@ -12,8 +12,8 @@ config SND_OMAP_SOC_MCPDM ...@@ -12,8 +12,8 @@ config SND_OMAP_SOC_MCPDM
config SND_OMAP_SOC_N810 config SND_OMAP_SOC_N810
tristate "SoC Audio support for Nokia N810" tristate "SoC Audio support for Nokia N810"
depends on SND_OMAP_SOC && MACH_NOKIA_N810 && I2C depends on SND_OMAP_SOC && MACH_NOKIA_N810 && I2C
depends on OMAP_MUX
select SND_OMAP_SOC_MCBSP select SND_OMAP_SOC_MCBSP
select OMAP_MUX
select SND_SOC_TLV320AIC3X select SND_SOC_TLV320AIC3X
help help
Say Y if you want to add support for SoC audio on Nokia N810. Say Y if you want to add support for SoC audio on Nokia N810.
......
...@@ -434,7 +434,7 @@ static struct snd_soc_dai_driver s6000_i2s_dai = { ...@@ -434,7 +434,7 @@ static struct snd_soc_dai_driver s6000_i2s_dai = {
.rate_max = 1562500, .rate_max = 1562500,
}, },
.ops = &s6000_i2s_dai_ops, .ops = &s6000_i2s_dai_ops,
} };
static int __devinit s6000_i2s_probe(struct platform_device *pdev) static int __devinit s6000_i2s_probe(struct platform_device *pdev)
{ {
......
...@@ -473,7 +473,7 @@ static int s6000_pcm_new(struct snd_card *card, ...@@ -473,7 +473,7 @@ static int s6000_pcm_new(struct snd_card *card,
} }
res = request_irq(params->irq, s6000_pcm_irq, IRQF_SHARED, res = request_irq(params->irq, s6000_pcm_irq, IRQF_SHARED,
s6000_soc_platform.name, pcm); "s6000-audio", pcm);
if (res) { if (res) {
printk(KERN_ERR "s6000-pcm couldn't get IRQ\n"); printk(KERN_ERR "s6000-pcm couldn't get IRQ\n");
return res; return res;
......
...@@ -167,7 +167,7 @@ static int s6105_aic3x_init(struct snd_soc_pcm_runtime *rtd) ...@@ -167,7 +167,7 @@ static int s6105_aic3x_init(struct snd_soc_pcm_runtime *rtd)
snd_soc_dapm_sync(codec); snd_soc_dapm_sync(codec);
snd_ctl_add(codec->snd_card, snd_ctl_new1(&audio_out_mux, codec)); snd_ctl_add(codec->card->snd_card, snd_ctl_new1(&audio_out_mux, codec));
return 0; return 0;
} }
......
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