Browse Source

Merge remote-tracking branches 'asoc/fix/axi', 'asoc/fix/cs4265', 'asoc/fix/da732x', 'asoc/fix/omap', 'asoc/fix/rsnd', 'asoc/fix/rt5640', 'asoc/fix/rt5677', 'asoc/fix/simple' and 'asoc/fix/tegra' into asoc-linus

+ 1 - 1
Documentation/devicetree/bindings/sound/adi,axi-spdif-tx.txt

@@ -1,7 +1,7 @@
 ADI AXI-SPDIF controller
 ADI AXI-SPDIF controller
 
 
 Required properties:
 Required properties:
- - compatible : Must be "adi,axi-spdif-1.00.a"
+ - compatible : Must be "adi,axi-spdif-tx-1.00.a"
  - reg : Must contain SPDIF core's registers location and length
  - reg : Must contain SPDIF core's registers location and length
  - clocks : Pairs of phandle and specifier referencing the controller's clocks.
  - clocks : Pairs of phandle and specifier referencing the controller's clocks.
    The controller expects two clocks, the clock used for the AXI interface and
    The controller expects two clocks, the clock used for the AXI interface and

+ 6 - 6
sound/soc/codecs/cs4265.c

@@ -282,10 +282,10 @@ static const struct cs4265_clk_para clk_map_table[] = {
 
 
 	/*64k*/
 	/*64k*/
 	{8192000, 64000, 1, 0},
 	{8192000, 64000, 1, 0},
-	{1228800, 64000, 1, 1},
-	{1693440, 64000, 1, 2},
-	{2457600, 64000, 1, 3},
-	{3276800, 64000, 1, 4},
+	{12288000, 64000, 1, 1},
+	{16934400, 64000, 1, 2},
+	{24576000, 64000, 1, 3},
+	{32768000, 64000, 1, 4},
 
 
 	/* 88.2k */
 	/* 88.2k */
 	{11289600, 88200, 1, 0},
 	{11289600, 88200, 1, 0},
@@ -435,10 +435,10 @@ static int cs4265_pcm_hw_params(struct snd_pcm_substream *substream,
 	index = cs4265_get_clk_index(cs4265->sysclk, params_rate(params));
 	index = cs4265_get_clk_index(cs4265->sysclk, params_rate(params));
 	if (index >= 0) {
 	if (index >= 0) {
 		snd_soc_update_bits(codec, CS4265_ADC_CTL,
 		snd_soc_update_bits(codec, CS4265_ADC_CTL,
-			CS4265_ADC_FM, clk_map_table[index].fm_mode);
+			CS4265_ADC_FM, clk_map_table[index].fm_mode << 6);
 		snd_soc_update_bits(codec, CS4265_MCLK_FREQ,
 		snd_soc_update_bits(codec, CS4265_MCLK_FREQ,
 			CS4265_MCLK_FREQ_MASK,
 			CS4265_MCLK_FREQ_MASK,
-			clk_map_table[index].mclkdiv);
+			clk_map_table[index].mclkdiv << 4);
 
 
 	} else {
 	} else {
 		dev_err(codec->dev, "can't get correct mclk\n");
 		dev_err(codec->dev, "can't get correct mclk\n");

+ 1 - 1
sound/soc/codecs/da732x.h

@@ -11,7 +11,7 @@
  */
  */
 
 
 #ifndef __DA732X_H_
 #ifndef __DA732X_H_
-#define __DA732X_H
+#define __DA732X_H_
 
 
 #include <sound/soc.h>
 #include <sound/soc.h>
 
 

+ 1 - 0
sound/soc/codecs/rt5640.c

@@ -2059,6 +2059,7 @@ static struct snd_soc_codec_driver soc_codec_dev_rt5640 = {
 static const struct regmap_config rt5640_regmap = {
 static const struct regmap_config rt5640_regmap = {
 	.reg_bits = 8,
 	.reg_bits = 8,
 	.val_bits = 16,
 	.val_bits = 16,
+	.use_single_rw = true,
 
 
 	.max_register = RT5640_VENDOR_ID2 + 1 + (ARRAY_SIZE(rt5640_ranges) *
 	.max_register = RT5640_VENDOR_ID2 + 1 + (ARRAY_SIZE(rt5640_ranges) *
 					       RT5640_PR_SPACING),
 					       RT5640_PR_SPACING),

+ 4 - 4
sound/soc/codecs/rt5677.c

@@ -2135,10 +2135,10 @@ static const struct snd_soc_dapm_route rt5677_dapm_routes[] = {
 	{ "BST2", NULL, "IN2P" },
 	{ "BST2", NULL, "IN2P" },
 	{ "BST2", NULL, "IN2N" },
 	{ "BST2", NULL, "IN2N" },
 
 
-	{ "IN1P", NULL, "micbias1" },
-	{ "IN1N", NULL, "micbias1" },
-	{ "IN2P", NULL, "micbias1" },
-	{ "IN2N", NULL, "micbias1" },
+	{ "IN1P", NULL, "MICBIAS1" },
+	{ "IN1N", NULL, "MICBIAS1" },
+	{ "IN2P", NULL, "MICBIAS1" },
+	{ "IN2N", NULL, "MICBIAS1" },
 
 
 	{ "ADC 1", NULL, "BST1" },
 	{ "ADC 1", NULL, "BST1" },
 	{ "ADC 1", NULL, "ADC 1 power" },
 	{ "ADC 1", NULL, "ADC 1 power" },

+ 8 - 0
sound/soc/generic/simple-card.c

@@ -481,12 +481,19 @@ static int asoc_simple_card_probe(struct platform_device *pdev)
 	snd_soc_card_set_drvdata(&priv->snd_card, priv);
 	snd_soc_card_set_drvdata(&priv->snd_card, priv);
 
 
 	ret = devm_snd_soc_register_card(&pdev->dev, &priv->snd_card);
 	ret = devm_snd_soc_register_card(&pdev->dev, &priv->snd_card);
+	if (ret >= 0)
+		return ret;
 
 
 err:
 err:
 	asoc_simple_card_unref(pdev);
 	asoc_simple_card_unref(pdev);
 	return ret;
 	return ret;
 }
 }
 
 
+static int asoc_simple_card_remove(struct platform_device *pdev)
+{
+	return asoc_simple_card_unref(pdev);
+}
+
 static const struct of_device_id asoc_simple_of_match[] = {
 static const struct of_device_id asoc_simple_of_match[] = {
 	{ .compatible = "simple-audio-card", },
 	{ .compatible = "simple-audio-card", },
 	{},
 	{},
@@ -500,6 +507,7 @@ static struct platform_driver asoc_simple_card = {
 		.of_match_table = asoc_simple_of_match,
 		.of_match_table = asoc_simple_of_match,
 	},
 	},
 	.probe = asoc_simple_card_probe,
 	.probe = asoc_simple_card_probe,
+	.remove = asoc_simple_card_remove,
 };
 };
 
 
 module_platform_driver(asoc_simple_card);
 module_platform_driver(asoc_simple_card);

+ 1 - 1
sound/soc/omap/omap-twl4030.c

@@ -260,7 +260,7 @@ static struct snd_soc_dai_link omap_twl4030_dai_links[] = {
 		.stream_name = "TWL4030 Voice",
 		.stream_name = "TWL4030 Voice",
 		.cpu_dai_name = "omap-mcbsp.3",
 		.cpu_dai_name = "omap-mcbsp.3",
 		.codec_dai_name = "twl4030-voice",
 		.codec_dai_name = "twl4030-voice",
-		.platform_name = "omap-mcbsp.2",
+		.platform_name = "omap-mcbsp.3",
 		.codec_name = "twl4030-codec",
 		.codec_name = "twl4030-codec",
 		.dai_fmt = SND_SOC_DAIFMT_DSP_A | SND_SOC_DAIFMT_IB_NF |
 		.dai_fmt = SND_SOC_DAIFMT_DSP_A | SND_SOC_DAIFMT_IB_NF |
 			   SND_SOC_DAIFMT_CBM_CFM,
 			   SND_SOC_DAIFMT_CBM_CFM,

+ 1 - 1
sound/soc/sh/rcar/gen.c

@@ -247,7 +247,7 @@ rsnd_gen2_dma_addr(struct rsnd_priv *priv,
 	};
 	};
 
 
 	/* it shouldn't happen */
 	/* it shouldn't happen */
-	if (use_dvc & !use_src)
+	if (use_dvc && !use_src)
 		dev_err(dev, "DVC is selected without SRC\n");
 		dev_err(dev, "DVC is selected without SRC\n");
 
 
 	/* use SSIU or SSI ? */
 	/* use SSIU or SSI ? */

+ 1 - 1
sound/soc/tegra/tegra_asoc_utils.h

@@ -21,7 +21,7 @@
  */
  */
 
 
 #ifndef __TEGRA_ASOC_UTILS_H__
 #ifndef __TEGRA_ASOC_UTILS_H__
-#define __TEGRA_ASOC_UTILS_H_
+#define __TEGRA_ASOC_UTILS_H__
 
 
 struct clk;
 struct clk;
 struct device;
 struct device;