diff options
author | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2009-08-15 11:20:44 +0100 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2009-08-15 11:20:44 +0100 |
commit | 08229de4b42816079ed5d15f0689fcd0af946d5e (patch) | |
tree | 7126dc7b220fbbce745cb5d9a8864e9690587da4 /sound/arm | |
parent | fbb474dedab871c7382858c374acd287dad4ab38 (diff) | |
parent | 2a708137fd7d3e0928f27157aaed8aba404b11c9 (diff) |
Merge branch 'for-2.6.32' into mxc
Conflicts:
sound/soc/Makefile
Diffstat (limited to 'sound/arm')
-rw-r--r-- | sound/arm/aaci.c | 2 | ||||
-rw-r--r-- | sound/arm/pxa2xx-ac97.c | 10 | ||||
-rw-r--r-- | sound/arm/pxa2xx-pcm-lib.c | 2 |
3 files changed, 12 insertions, 2 deletions
diff --git a/sound/arm/aaci.c b/sound/arm/aaci.c index 5c48e36038f..dc78272fc39 100644 --- a/sound/arm/aaci.c +++ b/sound/arm/aaci.c @@ -1089,7 +1089,7 @@ static int __devinit aaci_probe(struct amba_device *dev, struct amba_id *id) goto out; } - aaci->base = ioremap(dev->res.start, SZ_4K); + aaci->base = ioremap(dev->res.start, resource_size(&dev->res)); if (!aaci->base) { ret = -ENOMEM; goto out; diff --git a/sound/arm/pxa2xx-ac97.c b/sound/arm/pxa2xx-ac97.c index c570ebd9d17..6c00ea45d5c 100644 --- a/sound/arm/pxa2xx-ac97.c +++ b/sound/arm/pxa2xx-ac97.c @@ -170,6 +170,13 @@ static int __devinit pxa2xx_ac97_probe(struct platform_device *dev) struct snd_ac97_bus *ac97_bus; struct snd_ac97_template ac97_template; int ret; + pxa2xx_audio_ops_t *pdata = dev->dev.platform_data; + + if (dev->id >= 0) { + dev_err(&dev->dev, "PXA2xx has only one AC97 port.\n"); + ret = -ENXIO; + goto err_dev; + } ret = snd_card_create(SNDRV_DEFAULT_IDX1, SNDRV_DEFAULT_STR1, THIS_MODULE, 0, &card); @@ -200,6 +207,8 @@ static int __devinit pxa2xx_ac97_probe(struct platform_device *dev) snprintf(card->longname, sizeof(card->longname), "%s (%s)", dev->dev.driver->name, card->mixername); + if (pdata && pdata->codec_data) + snd_ac97_dev_add_pdata(ac97_bus->codec[0], pdata->codec_pdata); snd_card_set_dev(card, &dev->dev); ret = snd_card_register(card); if (ret == 0) { @@ -212,6 +221,7 @@ err_remove: err: if (card) snd_card_free(card); +err_dev: return ret; } diff --git a/sound/arm/pxa2xx-pcm-lib.c b/sound/arm/pxa2xx-pcm-lib.c index 108b643229b..6205f37d547 100644 --- a/sound/arm/pxa2xx-pcm-lib.c +++ b/sound/arm/pxa2xx-pcm-lib.c @@ -75,7 +75,7 @@ int __pxa2xx_pcm_hw_free(struct snd_pcm_substream *substream) { struct pxa2xx_runtime_data *rtd = substream->runtime->private_data; - if (rtd && rtd->params) + if (rtd && rtd->params && rtd->params->drcmr) *rtd->params->drcmr = 0; snd_pcm_set_runtime_buffer(substream, NULL); |