Title: [9627] trunk/sound/soc: asoc: ad193x driver update to 2.6.37
Revision
9627
Author
scott
Date
2011-02-24 01:50:00 -0500 (Thu, 24 Feb 2011)

Log Message

asoc: ad193x driver update to 2.6.37

Modified Paths


Diff

Modified: trunk/sound/soc/blackfin/Kconfig (9626 => 9627)


--- trunk/sound/soc/blackfin/Kconfig	2011-02-24 06:11:39 UTC (rev 9626)
+++ trunk/sound/soc/blackfin/Kconfig	2011-02-24 06:50:00 UTC (rev 9627)
@@ -118,12 +118,28 @@
 	depends on SND_BF5XX_TDM && (SPI_MASTER || I2C)
 	select SND_BF5XX_SOC_TDM
 	select SND_SOC_AD193X
-	select SND_SOC_AD193X_SPI if SPI_MASTER
-	select SND_SOC_AD193X_I2C if I2C
 	help
 	  Say Y if you want to add support for AD193X codec on Blackfin.
 	  This driver supports AD1936, AD1937, AD1938 and AD1939.
 
+choice
+	prompt "AD193X control type select"
+	depends on SND_BF5XX_SOC_AD193X
+
+config SND_SOC_AD193X_SPI
+	bool "use SPI to control AD193X"
+	depends on SPI_MASTER
+	help
+	  Say Y if you want to use SPI to control AD193X codec.
+
+config SND_SOC_AD193X_I2C
+	bool "use I2C to control AD193X"
+	depends on I2C
+	help
+	  Say Y if you want to use I2C to control AD193X codec.
+
+endchoice
+
 config SND_BF5XX_AC97
 	tristate "SoC AC97 Audio for the ADI BF5xx chip"
 	depends on BLACKFIN

Modified: trunk/sound/soc/blackfin/bf5xx-ad193x.c (9626 => 9627)


--- trunk/sound/soc/blackfin/bf5xx-ad193x.c	2011-02-24 06:11:39 UTC (rev 9626)
+++ trunk/sound/soc/blackfin/bf5xx-ad193x.c	2011-02-24 06:50:00 UTC (rev 9627)
@@ -87,10 +87,14 @@
 static struct snd_soc_dai_link bf5xx_ad193x_dai = {
 	.name = "ad193x",
 	.stream_name = "AD193X",
-	.cpu_dai_name = "bf5xx-tdm",
+	.cpu_dai_name = "bfin-tdm.0",
 	.codec_dai_name ="ad193x-hifi",
-	.platform_name = "bf5xx-tdm-pcm-audio",
-	.codec_name = "ad193x-codec.5",
+	.platform_name = "bfin-pcm-audio",
+#if defined(CONFIG_SND_SOC_AD193X_SPI)
+	.codec_name = "spi0.5",
+#elif defined(CONFIG_SND_SOC_AD193X_I2C)
+	.codec_name = "ad193x-codec.0-0004",
+#endif
 	.ops = &bf5xx_ad193x_ops,
 };
 

Modified: trunk/sound/soc/codecs/ad193x.c (9626 => 9627)


--- trunk/sound/soc/codecs/ad193x.c	2011-02-24 06:11:39 UTC (rev 9626)
+++ trunk/sound/soc/codecs/ad193x.c	2011-02-24 06:50:00 UTC (rev 9627)
@@ -24,9 +24,7 @@
 
 /* codec private data */
 struct ad193x_priv {
-	u8 reg_cache[AD193X_NUM_REGS];
-	enum snd_soc_control_type bus_type;
-	void *control_data;
+	enum snd_soc_control_type control_type;
 	int sysclk;
 };
 
@@ -355,15 +353,12 @@
 	struct ad193x_priv *ad193x = snd_soc_codec_get_drvdata(codec);
 	int ret;
 
-	codec->control_data = ad193x->control_data;
-	if (ad193x->bus_type == SND_SOC_I2C)
-		ret = snd_soc_codec_set_cache_io(codec, 8, 8, ad193x->bus_type);
+	if (ad193x->control_type == SND_SOC_I2C)
+		ret = snd_soc_codec_set_cache_io(codec, 8, 8, ad193x->control_type);
 	else
-		ret = snd_soc_codec_set_cache_io(codec, 16, 8, ad193x->bus_type);
+		ret = snd_soc_codec_set_cache_io(codec, 16, 8, ad193x->control_type);
 	if (ret < 0) {
-		dev_err(codec->dev, "failed to set cache I/O: %d\n",
-				ret);
-		kfree(ad193x);
+		dev_err(codec->dev, "failed to set cache I/O: %d\n", ret);
 		return ret;
 	}
 
@@ -392,8 +387,14 @@
 	return ret;
 }
 
+static int ad193x_remove(struct snd_soc_codec *codec)
+{
+	return 0;
+}
+
 static struct snd_soc_codec_driver soc_codec_dev_ad193x = {
 	.probe = 	ad193x_probe,
+	.remove =	ad193x_remove,
 	.reg_cache_default = ad193x_reg,
 	.reg_cache_size = AD193X_NUM_REGS,
 	.reg_word_size = sizeof(u16),
@@ -410,8 +411,7 @@
 		return -ENOMEM;
 
 	spi_set_drvdata(spi, ad193x);
-	ad193x->control_data = spi;
-	ad193x->bus_type = SND_SOC_SPI;
+	ad193x->control_type = SND_SOC_SPI;
 
 	ret = snd_soc_register_codec(&spi->dev,
 			&soc_codec_dev_ad193x, &ad193x_dai, 1);
@@ -456,8 +456,7 @@
 		return -ENOMEM;
 
 	i2c_set_clientdata(client, ad193x);
-	ad193x->control_data = client;
-	ad193x->bus_type = SND_SOC_I2C;
+	ad193x->control_type = SND_SOC_I2C;
 
 	ret =  snd_soc_register_codec(&client->dev,
 			&soc_codec_dev_ad193x, &ad193x_dai, 1);
_______________________________________________
Linux-kernel-commits mailing list
[email protected]
https://blackfin.uclinux.org/mailman/listinfo/linux-kernel-commits

Reply via email to