Skip to content

Commit

Permalink
Merge branch 'fix/asoc' into for-linus
Browse files Browse the repository at this point in the history
  • Loading branch information
tiwai committed Nov 26, 2010
2 parents 5a8cfb4 + 2543618 commit 37fa84d
Show file tree
Hide file tree
Showing 23 changed files with 85 additions and 38 deletions.
9 changes: 6 additions & 3 deletions sound/soc/atmel/sam9g20_wm8731.c
Original file line number Diff line number Diff line change
Expand Up @@ -222,9 +222,9 @@ static int __init at91sam9g20ek_init(void)
}

pllb = clk_get(NULL, "pllb");
if (IS_ERR(mclk)) {
if (IS_ERR(pllb)) {
printk(KERN_ERR "ASoC: Failed to get PLLB\n");
ret = PTR_ERR(mclk);
ret = PTR_ERR(pllb);
goto err_mclk;
}
ret = clk_set_parent(mclk, pllb);
Expand All @@ -240,6 +240,7 @@ static int __init at91sam9g20ek_init(void)
if (!at91sam9g20ek_snd_device) {
printk(KERN_ERR "ASoC: Platform device allocation failed\n");
ret = -ENOMEM;
goto err_mclk;
}

platform_set_drvdata(at91sam9g20ek_snd_device,
Expand All @@ -248,11 +249,13 @@ static int __init at91sam9g20ek_init(void)
ret = platform_device_add(at91sam9g20ek_snd_device);
if (ret) {
printk(KERN_ERR "ASoC: Platform device allocation failed\n");
platform_device_put(at91sam9g20ek_snd_device);
goto err_device_add;
}

return ret;

err_device_add:
platform_device_put(at91sam9g20ek_snd_device);
err_mclk:
clk_put(mclk);
mclk = NULL;
Expand Down
1 change: 0 additions & 1 deletion sound/soc/atmel/snd-soc-afeb9260.c
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,6 @@ static int __init afeb9260_soc_init(void)

return 0;
err1:
platform_device_del(afeb9260_snd_device);
platform_device_put(afeb9260_snd_device);
return err;
}
Expand Down
3 changes: 3 additions & 0 deletions sound/soc/codecs/max98088.c
Original file line number Diff line number Diff line change
Expand Up @@ -2019,7 +2019,10 @@ static int max98088_probe(struct snd_soc_codec *codec)

static int max98088_remove(struct snd_soc_codec *codec)
{
struct max98088_priv *max98088 = snd_soc_codec_get_drvdata(codec);

max98088_set_bias_level(codec, SND_SOC_BIAS_OFF);
kfree(max98088->eq_texts);

return 0;
}
Expand Down
1 change: 1 addition & 0 deletions sound/soc/codecs/stac9766.c
Original file line number Diff line number Diff line change
Expand Up @@ -383,6 +383,7 @@ static struct snd_soc_codec_driver soc_codec_dev_stac9766 = {
.reg_cache_size = sizeof(stac9766_reg),
.reg_word_size = sizeof(u16),
.reg_cache_step = 2,
.reg_cache_default = stac9766_reg,
};

static __devinit int stac9766_probe(struct platform_device *pdev)
Expand Down
6 changes: 3 additions & 3 deletions sound/soc/codecs/tlv320aic3x.c
Original file line number Diff line number Diff line change
Expand Up @@ -1176,7 +1176,7 @@ EXPORT_SYMBOL_GPL(aic3x_set_gpio);
int aic3x_get_gpio(struct snd_soc_codec *codec, int gpio)
{
u8 reg = gpio ? AIC3X_GPIO2_REG : AIC3X_GPIO1_REG;
u8 val, bit = gpio ? 2: 1;
u8 val = 0, bit = gpio ? 2 : 1;

aic3x_read(codec, reg, &val);
return (val >> bit) & 1;
Expand Down Expand Up @@ -1204,15 +1204,15 @@ EXPORT_SYMBOL_GPL(aic3x_set_headset_detection);

int aic3x_headset_detected(struct snd_soc_codec *codec)
{
u8 val;
u8 val = 0;
aic3x_read(codec, AIC3X_HEADSET_DETECT_CTRL_B, &val);
return (val >> 4) & 1;
}
EXPORT_SYMBOL_GPL(aic3x_headset_detected);

int aic3x_button_pressed(struct snd_soc_codec *codec)
{
u8 val;
u8 val = 0;
aic3x_read(codec, AIC3X_HEADSET_DETECT_CTRL_B, &val);
return (val >> 5) & 1;
}
Expand Down
4 changes: 3 additions & 1 deletion sound/soc/codecs/tpa6130a2.c
Original file line number Diff line number Diff line change
Expand Up @@ -78,8 +78,10 @@ static int tpa6130a2_i2c_write(int reg, u8 value)

if (data->power_state) {
val = i2c_smbus_write_byte_data(tpa6130a2_client, reg, value);
if (val < 0)
if (val < 0) {
dev_err(&tpa6130a2_client->dev, "Write failed\n");
return val;
}
}

/* Either powered on or off, we save the context */
Expand Down
1 change: 0 additions & 1 deletion sound/soc/codecs/wm8523.c
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,6 @@ static int wm8523_startup(struct snd_pcm_substream *substream,
return -EINVAL;
}

return 0;
snd_pcm_hw_constraint_list(substream->runtime, 0,
SNDRV_PCM_HW_PARAM_RATE,
&wm8523->rate_constraint);
Expand Down
2 changes: 2 additions & 0 deletions sound/soc/codecs/wm8904.c
Original file line number Diff line number Diff line change
Expand Up @@ -2498,6 +2498,8 @@ static int wm8904_remove(struct snd_soc_codec *codec)

wm8904_set_bias_level(codec, SND_SOC_BIAS_OFF);
regulator_bulk_free(ARRAY_SIZE(wm8904->supplies), wm8904->supplies);
kfree(wm8904->retune_mobile_texts);
kfree(wm8904->drc_texts);

return 0;
}
Expand Down
4 changes: 2 additions & 2 deletions sound/soc/codecs/wm8961.c
Original file line number Diff line number Diff line change
Expand Up @@ -711,7 +711,7 @@ static int wm8961_hw_params(struct snd_pcm_substream *substream,
if (fs <= 24000)
reg |= WM8961_DACSLOPE;
else
reg &= WM8961_DACSLOPE;
reg &= ~WM8961_DACSLOPE;
snd_soc_write(codec, WM8961_ADC_DAC_CONTROL_2, reg);

return 0;
Expand All @@ -736,7 +736,7 @@ static int wm8961_set_sysclk(struct snd_soc_dai *dai, int clk_id,
freq /= 2;
} else {
dev_dbg(codec->dev, "Using MCLK/1 for %dHz MCLK\n", freq);
reg &= WM8961_MCLKDIV;
reg &= ~WM8961_MCLKDIV;
}

snd_soc_write(codec, WM8961_CLOCKING1, reg);
Expand Down
4 changes: 4 additions & 0 deletions sound/soc/codecs/wm8994.c
Original file line number Diff line number Diff line change
Expand Up @@ -4061,6 +4061,8 @@ static int wm8994_codec_remove(struct snd_soc_codec *codec)
wm8994_free_irq(codec->control_data, WM8994_IRQ_MIC2_DET, wm8994);
wm8994_free_irq(codec->control_data, WM8994_IRQ_MIC1_SHRT, wm8994);
wm8994_free_irq(codec->control_data, WM8994_IRQ_MIC1_DET, wm8994);
kfree(wm8994->retune_mobile_texts);
kfree(wm8994->drc_texts);
kfree(wm8994);

return 0;
Expand All @@ -4073,6 +4075,8 @@ static struct snd_soc_codec_driver soc_codec_dev_wm8994 = {
.resume = wm8994_resume,
.read = wm8994_read,
.write = wm8994_write,
.readable_register = wm8994_readable,
.volatile_register = wm8994_volatile,
.set_bias_level = wm8994_set_bias_level,
};

Expand Down
3 changes: 3 additions & 0 deletions sound/soc/davinci/davinci-vcif.c
Original file line number Diff line number Diff line change
Expand Up @@ -247,7 +247,10 @@ static int davinci_vcif_probe(struct platform_device *pdev)

static int davinci_vcif_remove(struct platform_device *pdev)
{
struct davinci_vcif_dev *davinci_vcif_dev = dev_get_drvdata(&pdev->dev);

snd_soc_unregister_dai(&pdev->dev);
kfree(davinci_vcif_dev);

return 0;
}
Expand Down
18 changes: 10 additions & 8 deletions sound/soc/ep93xx/simone.c
Original file line number Diff line number Diff line change
Expand Up @@ -54,24 +54,26 @@ static int __init simone_init(void)

ret = platform_device_add(simone_snd_ac97_device);
if (ret)
goto fail;
goto fail1;

simone_snd_device = platform_device_alloc("soc-audio", -1);
if (!simone_snd_device) {
ret = -ENOMEM;
goto fail;
goto fail2;
}

platform_set_drvdata(simone_snd_device, &snd_soc_simone);
ret = platform_device_add(simone_snd_device);
if (ret) {
platform_device_put(simone_snd_device);
goto fail;
}
if (ret)
goto fail3;

return ret;
return 0;

fail:
fail3:
platform_device_put(simone_snd_device);
fail2:
platform_device_del(simone_snd_ac97_device);
fail1:
platform_device_put(simone_snd_ac97_device);
return ret;
}
Expand Down
1 change: 1 addition & 0 deletions sound/soc/fsl/efika-audio-fabric.c
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,7 @@ static __init int efika_fabric_init(void)
rc = platform_device_add(pdev);
if (rc) {
pr_err("efika_fabric_init: platform_device_add() failed\n");
platform_device_put(pdev);
return -ENODEV;
}
return 0;
Expand Down
1 change: 0 additions & 1 deletion sound/soc/fsl/mpc5200_dma.c
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
#include <linux/module.h>
#include <linux/of_device.h>
#include <linux/slab.h>
#include <linux/of_device.h>
#include <linux/of_platform.h>

#include <sound/soc.h>
Expand Down
1 change: 1 addition & 0 deletions sound/soc/fsl/pcm030-audio-fabric.c
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,7 @@ static __init int pcm030_fabric_init(void)
rc = platform_device_add(pdev);
if (rc) {
pr_err("pcm030_fabric_init: platform_device_add() failed\n");
platform_device_put(pdev);
return -ENODEV;
}
return 0;
Expand Down
15 changes: 11 additions & 4 deletions sound/soc/imx/imx-ssi.c
Original file line number Diff line number Diff line change
Expand Up @@ -679,8 +679,11 @@ static int imx_ssi_probe(struct platform_device *pdev)
}

ssi->soc_platform_pdev_fiq = platform_device_alloc("imx-fiq-pcm-audio", pdev->id);
if (!ssi->soc_platform_pdev_fiq)
if (!ssi->soc_platform_pdev_fiq) {
ret = -ENOMEM;
goto failed_pdev_fiq_alloc;
}

platform_set_drvdata(ssi->soc_platform_pdev_fiq, ssi);
ret = platform_device_add(ssi->soc_platform_pdev_fiq);
if (ret) {
Expand All @@ -689,8 +692,11 @@ static int imx_ssi_probe(struct platform_device *pdev)
}

ssi->soc_platform_pdev = platform_device_alloc("imx-pcm-audio", pdev->id);
if (!ssi->soc_platform_pdev)
if (!ssi->soc_platform_pdev) {
ret = -ENOMEM;
goto failed_pdev_alloc;
}

platform_set_drvdata(ssi->soc_platform_pdev, ssi);
ret = platform_device_add(ssi->soc_platform_pdev);
if (ret) {
Expand All @@ -703,6 +709,7 @@ static int imx_ssi_probe(struct platform_device *pdev)
failed_pdev_add:
platform_device_put(ssi->soc_platform_pdev);
failed_pdev_alloc:
platform_device_del(ssi->soc_platform_pdev_fiq);
failed_pdev_fiq_add:
platform_device_put(ssi->soc_platform_pdev_fiq);
failed_pdev_fiq_alloc:
Expand All @@ -726,8 +733,8 @@ static int __devexit imx_ssi_remove(struct platform_device *pdev)
struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
struct imx_ssi *ssi = platform_get_drvdata(pdev);

platform_device_del(ssi->soc_platform_pdev);
platform_device_put(ssi->soc_platform_pdev);
platform_device_unregister(ssi->soc_platform_pdev);
platform_device_unregister(ssi->soc_platform_pdev_fiq);

snd_soc_unregister_dai(&pdev->dev);

Expand Down
28 changes: 21 additions & 7 deletions sound/soc/imx/phycore-ac97.c
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ static struct snd_soc_card imx_phycore = {
.num_links = ARRAY_SIZE(imx_phycore_dai_ac97),
};

static struct platform_device *imx_phycore_snd_ac97_device;
static struct platform_device *imx_phycore_snd_device;

static int __init imx_phycore_init(void)
Expand All @@ -53,29 +54,42 @@ static int __init imx_phycore_init(void)
/* return happy. We might run on a totally different machine */
return 0;

imx_phycore_snd_device = platform_device_alloc("soc-audio", -1);
if (!imx_phycore_snd_device)
imx_phycore_snd_ac97_device = platform_device_alloc("soc-audio", -1);
if (!imx_phycore_snd_ac97_device)
return -ENOMEM;

platform_set_drvdata(imx_phycore_snd_device, &imx_phycore);
ret = platform_device_add(imx_phycore_snd_device);
platform_set_drvdata(imx_phycore_snd_ac97_device, &imx_phycore);
ret = platform_device_add(imx_phycore_snd_ac97_device);
if (ret)
goto fail1;

imx_phycore_snd_device = platform_device_alloc("wm9712-codec", -1);
if (!imx_phycore_snd_device)
return -ENOMEM;
if (!imx_phycore_snd_device) {
ret = -ENOMEM;
goto fail2;
}
ret = platform_device_add(imx_phycore_snd_device);

if (ret) {
printk(KERN_ERR "ASoC: Platform device allocation failed\n");
platform_device_put(imx_phycore_snd_device);
goto fail3;
}

return 0;

fail3:
platform_device_put(imx_phycore_snd_device);
fail2:
platform_device_del(imx_phycore_snd_ac97_device);
fail1:
platform_device_put(imx_phycore_snd_ac97_device);
return ret;
}

static void __exit imx_phycore_exit(void)
{
platform_device_unregister(imx_phycore_snd_device);
platform_device_unregister(imx_phycore_snd_ac97_device);
}

late_initcall(imx_phycore_init);
Expand Down
2 changes: 1 addition & 1 deletion sound/soc/nuc900/nuc900-ac97.c
Original file line number Diff line number Diff line change
Expand Up @@ -384,14 +384,14 @@ static int __devinit nuc900_ac97_drvprobe(struct platform_device *pdev)

static int __devexit nuc900_ac97_drvremove(struct platform_device *pdev)
{

snd_soc_unregister_dai(&pdev->dev);

clk_put(nuc900_ac97_data->clk);
iounmap(nuc900_ac97_data->mmio);
release_mem_region(nuc900_ac97_data->res->start,
resource_size(nuc900_ac97_data->res));

kfree(nuc900_ac97_data);
nuc900_ac97_data = NULL;

return 0;
Expand Down
1 change: 1 addition & 0 deletions sound/soc/omap/omap3pandora.c
Original file line number Diff line number Diff line change
Expand Up @@ -306,6 +306,7 @@ static int __init omap3pandora_soc_init(void)
pr_err(PREFIX "Failed to get DAC regulator from %s: %ld\n",
dev_name(&omap3pandora_snd_device->dev),
PTR_ERR(omap3pandora_dac_reg));
ret = PTR_ERR(omap3pandora_dac_reg);
goto fail3;
}

Expand Down
11 changes: 8 additions & 3 deletions sound/soc/omap/osk5912.c
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,8 @@ static int __init osk_soc_init(void)
tlv320aic23_mclk = clk_get(dev, "mclk");
if (IS_ERR(tlv320aic23_mclk)) {
printk(KERN_ERR "Could not get mclk clock\n");
return -ENODEV;
err = PTR_ERR(tlv320aic23_mclk);
goto err2;
}

/*
Expand All @@ -188,17 +189,20 @@ static int __init osk_soc_init(void)
if (clk_set_rate(tlv320aic23_mclk, CODEC_CLOCK)) {
printk(KERN_ERR "Cannot set MCLK for AIC23 CODEC\n");
err = -ECANCELED;
goto err1;
goto err3;
}
}

printk(KERN_INFO "MCLK = %d [%d]\n",
(uint) clk_get_rate(tlv320aic23_mclk), CODEC_CLOCK);

return 0;
err1:

err3:
clk_put(tlv320aic23_mclk);
err2:
platform_device_del(osk_snd_device);
err1:
platform_device_put(osk_snd_device);

return err;
Expand All @@ -207,6 +211,7 @@ static int __init osk_soc_init(void)

static void __exit osk_soc_exit(void)
{
clk_put(tlv320aic23_mclk);
platform_device_unregister(osk_snd_device);
}

Expand Down
1 change: 1 addition & 0 deletions sound/soc/pxa/Kconfig
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
config SND_PXA2XX_SOC
tristate "SoC Audio for the Intel PXA2xx chip"
depends on ARCH_PXA
select SND_ARM
select SND_PXA2XX_LIB
help
Say Y or M if you want to add support for codecs attached to
Expand Down
Loading

0 comments on commit 37fa84d

Please sign in to comment.