aboutsummaryrefslogtreecommitdiffstats
path: root/sound
diff options
context:
space:
mode:
authorMarek Belisko <marek.belisko@open-nandra.com>2011-03-09 15:46:20 -0500
committerMark Brown <broonie@opensource.wolfsonmicro.com>2011-03-11 07:17:11 -0500
commita110f4ef810ee29d810876df725f41d66629733e (patch)
treee5b0d7e9689b8a79065963e39ee5c98a16a2aaf6 /sound
parent27380fb83079bc7bd644e1115bb001dfdcec307f (diff)
ASoC: mini2440: Fix uda134x codec problem.
ASoC audio for mini2440 platform in current kenrel doesn't work. First problem is samsung_asoc_dma device is missing in initialization. Next problem is with codec. Codec is initialized but never probed because no platform_device exist for codec driver. It leads to errors during codec binding to asoc dai. Next problem was platform data which was passed from board to asoc main driver but not passed to codec when called codec_soc_probe(). Following patch should fix issues. But not sure if in correct way. Please review. Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: stable@kernel.org
Diffstat (limited to 'sound')
-rw-r--r--sound/soc/codecs/uda134x.c3
-rw-r--r--sound/soc/samsung/s3c24xx_uda134x.c3
2 files changed, 4 insertions, 2 deletions
diff --git a/sound/soc/codecs/uda134x.c b/sound/soc/codecs/uda134x.c
index e76847a9438b..48ffd406a71d 100644
--- a/sound/soc/codecs/uda134x.c
+++ b/sound/soc/codecs/uda134x.c
@@ -486,7 +486,8 @@ static struct snd_soc_dai_driver uda134x_dai = {
486static int uda134x_soc_probe(struct snd_soc_codec *codec) 486static int uda134x_soc_probe(struct snd_soc_codec *codec)
487{ 487{
488 struct uda134x_priv *uda134x; 488 struct uda134x_priv *uda134x;
489 struct uda134x_platform_data *pd = dev_get_drvdata(codec->card->dev); 489 struct uda134x_platform_data *pd = codec->card->dev->platform_data;
490
490 int ret; 491 int ret;
491 492
492 printk(KERN_INFO "UDA134X SoC Audio Codec\n"); 493 printk(KERN_INFO "UDA134X SoC Audio Codec\n");
diff --git a/sound/soc/samsung/s3c24xx_uda134x.c b/sound/soc/samsung/s3c24xx_uda134x.c
index 3cb700751078..dc9d551f6788 100644
--- a/sound/soc/samsung/s3c24xx_uda134x.c
+++ b/sound/soc/samsung/s3c24xx_uda134x.c
@@ -219,7 +219,7 @@ static struct snd_soc_ops s3c24xx_uda134x_ops = {
219static struct snd_soc_dai_link s3c24xx_uda134x_dai_link = { 219static struct snd_soc_dai_link s3c24xx_uda134x_dai_link = {
220 .name = "UDA134X", 220 .name = "UDA134X",
221 .stream_name = "UDA134X", 221 .stream_name = "UDA134X",
222 .codec_name = "uda134x-hifi", 222 .codec_name = "uda134x-codec",
223 .codec_dai_name = "uda134x-hifi", 223 .codec_dai_name = "uda134x-hifi",
224 .cpu_dai_name = "s3c24xx-iis", 224 .cpu_dai_name = "s3c24xx-iis",
225 .ops = &s3c24xx_uda134x_ops, 225 .ops = &s3c24xx_uda134x_ops,
@@ -314,6 +314,7 @@ static int s3c24xx_uda134x_probe(struct platform_device *pdev)
314 314
315 platform_set_drvdata(s3c24xx_uda134x_snd_device, 315 platform_set_drvdata(s3c24xx_uda134x_snd_device,
316 &snd_soc_s3c24xx_uda134x); 316 &snd_soc_s3c24xx_uda134x);
317 platform_device_add_data(s3c24xx_uda134x_snd_device, &s3c24xx_uda134x, sizeof(s3c24xx_uda134x));
317 ret = platform_device_add(s3c24xx_uda134x_snd_device); 318 ret = platform_device_add(s3c24xx_uda134x_snd_device);
318 if (ret) { 319 if (ret) {
319 printk(KERN_ERR "S3C24XX_UDA134X SoC Audio: Unable to add\n"); 320 printk(KERN_ERR "S3C24XX_UDA134X SoC Audio: Unable to add\n");