Title: [7167] trunk/sound/soc/codecs/ad1836.c: Update according to feedback from maintainer
Revision
7167
Author
bhsong
Date
2009-08-12 18:43:15 -0400 (Wed, 12 Aug 2009)

Log Message

Update according to feedback from maintainer

Modified Paths


Diff

Modified: trunk/sound/soc/codecs/ad1836.c (7166 => 7167)


--- trunk/sound/soc/codecs/ad1836.c	2009-08-12 22:41:06 UTC (rev 7166)
+++ trunk/sound/soc/codecs/ad1836.c	2009-08-12 22:43:15 UTC (rev 7167)
@@ -52,11 +52,11 @@
 
 static const struct snd_kcontrol_new ad1836_snd_controls[] = {
 	/* DAC volume control */
-	SOC_DOUBLE_R("DAC1  Volume", AD1836_DAC_L1_VOL,
+	SOC_DOUBLE_R("DAC1 Volume", AD1836_DAC_L1_VOL,
 			AD1836_DAC_R1_VOL, 0, 0x3FF, 0),
-	SOC_DOUBLE_R("DAC2  Volume", AD1836_DAC_L2_VOL,
+	SOC_DOUBLE_R("DAC2 Volume", AD1836_DAC_L2_VOL,
 			AD1836_DAC_R2_VOL, 0, 0x3FF, 0),
-	SOC_DOUBLE_R("DAC3  Volume", AD1836_DAC_L3_VOL,
+	SOC_DOUBLE_R("DAC3 Volume", AD1836_DAC_L3_VOL,
 			AD1836_DAC_R3_VOL, 0, 0x3FF, 0),
 
 	/* ADC switch control */
@@ -108,19 +108,6 @@
  * DAI ops entries
  */
 
-static int ad1836_set_tdm_slot(struct snd_soc_dai *dai,
-		unsigned int mask, int slots)
-{
-	switch (slots) {
-	case 8:
-		break;
-	default:
-		return -EINVAL;
-	}
-
-	return 0;
-}
-
 static int ad1836_set_dai_fmt(struct snd_soc_dai *codec_dai,
 		unsigned int fmt)
 {
@@ -156,7 +143,7 @@
 		struct snd_pcm_hw_params *params,
 		struct snd_soc_dai *dai)
 {
-	int word_len = 0, reg = 0;
+	int word_len = 0;
 
 	struct snd_soc_pcm_runtime *rtd = substream->private_data;
 	struct snd_soc_device *socdev = rtd->socdev;
@@ -176,13 +163,11 @@
 		break;
 	}
 
-	reg = codec->read(codec, AD1836_DAC_CTRL1);
-	reg = (reg & (~AD1836_DAC_WORD_LEN_MASK)) | word_len;
-	codec->write(codec, AD1836_DAC_CTRL1, reg);
+	snd_soc_update_bits(codec, AD1836_DAC_CTRL1,
+		AD1836_DAC_WORD_LEN_MASK, word_len);
 
-	reg = codec->read(codec, AD1836_ADC_CTRL2);
-	reg = (reg & (~AD1836_ADC_WORD_LEN_MASK)) | word_len;
-	codec->write(codec, AD1836_ADC_CTRL2, reg);
+	snd_soc_update_bits(codec, AD1836_ADC_CTRL2,
+		AD1836_ADC_WORD_LEN_MASK, word_len);
 
 	return 0;
 }
@@ -277,7 +262,6 @@
 
 static struct snd_soc_dai_ops ad1836_dai_ops = {
 	.hw_params = ad1836_hw_params,
-	.set_tdm_slot = ad1836_set_tdm_slot,
 	.set_fmt = ad1836_set_dai_fmt,
 };
 
@@ -354,6 +338,7 @@
 	ret = snd_soc_register_codec(codec);
 	if (ret != 0) {
 		dev_err(codec->dev, "Failed to register codec: %d\n", ret);
+		kfree(ad1836);
 		return ret;
 	}
 
@@ -361,6 +346,7 @@
 	if (ret != 0) {
 		dev_err(codec->dev, "Failed to register DAI: %d\n", ret);
 		snd_soc_unregister_codec(codec);
+		kfree(ad1836);
 		return ret;
 	}
 
@@ -461,5 +447,5 @@
 module_exit(ad1836_exit);
 
 MODULE_DESCRIPTION("ASoC ad1836 driver");
-MODULE_AUTHOR("Barry Song ");
+MODULE_AUTHOR("Barry Song <[email protected]>");
 MODULE_LICENSE("GPL");
_______________________________________________
Linux-kernel-commits mailing list
[email protected]
https://blackfin.uclinux.org/mailman/listinfo/linux-kernel-commits

Reply via email to