Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'sound-3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound

Pull sound sound fixes from Takashi Iwai:
"As good as nothing exciting here; just a few trivial fixes for various
ASoC stuff."

* tag 'sound-3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
ASoC: omap-pcm: Free dma buffers in case of error.
ASoC: s3c2412-i2s: Fix dai registration
ASoC: wm8350: Don't use locally allocated codec struct
ASoC: tlv312aic23: unbreak resume
ASoC: bf5xx-ssm2602: Set DAI format
ASoC: core: check of_property_count_strings failure
ASoC: dt: sgtl5000.txt: Add description for 'reg' field
ASoC: wm_hubs: Make sure we don't disable differential line outputs

+29 -17
+2
Documentation/devicetree/bindings/sound/sgtl5000.txt
··· 3 3 Required properties: 4 4 - compatible : "fsl,sgtl5000". 5 5 6 + - reg : the I2C address of the device 7 + 6 8 Example: 7 9 8 10 codec: sgtl5000@0a {
+2
sound/soc/blackfin/bf5xx-ssm2602.c
··· 99 99 .platform_name = "bfin-i2s-pcm-audio", 100 100 .codec_name = "ssm2602.0-001b", 101 101 .ops = &bf5xx_ssm2602_ops, 102 + .dai_fmt = BF5XX_SSM2602_DAIFMT, 102 103 }, 103 104 { 104 105 .name = "ssm2602", ··· 109 108 .platform_name = "bfin-i2s-pcm-audio", 110 109 .codec_name = "ssm2602.0-001b", 111 110 .ops = &bf5xx_ssm2602_ops, 111 + .dai_fmt = BF5XX_SSM2602_DAIFMT, 112 112 }, 113 113 }; 114 114
+2 -2
sound/soc/codecs/tlv320aic23.c
··· 472 472 static int tlv320aic23_set_bias_level(struct snd_soc_codec *codec, 473 473 enum snd_soc_bias_level level) 474 474 { 475 - u16 reg = snd_soc_read(codec, TLV320AIC23_PWR) & 0xff7f; 475 + u16 reg = snd_soc_read(codec, TLV320AIC23_PWR) & 0x17f; 476 476 477 477 switch (level) { 478 478 case SND_SOC_BIAS_ON: ··· 491 491 case SND_SOC_BIAS_OFF: 492 492 /* everything off, dac mute, inactive */ 493 493 snd_soc_write(codec, TLV320AIC23_ACTIVE, 0x0); 494 - snd_soc_write(codec, TLV320AIC23_PWR, 0xffff); 494 + snd_soc_write(codec, TLV320AIC23_PWR, 0x1ff); 495 495 break; 496 496 } 497 497 codec->dapm.bias_level = level;
+6 -5
sound/soc/codecs/wm8350.c
··· 60 60 }; 61 61 62 62 struct wm8350_data { 63 - struct snd_soc_codec codec; 63 + struct wm8350 *wm8350; 64 64 struct wm8350_output out1; 65 65 struct wm8350_output out2; 66 66 struct wm8350_jack_data hpl; ··· 1309 1309 struct wm8350_jack_data *jack, 1310 1310 u16 mask) 1311 1311 { 1312 - struct wm8350 *wm8350 = priv->codec.control_data; 1312 + struct wm8350 *wm8350 = priv->wm8350; 1313 1313 u16 reg; 1314 1314 int report; 1315 1315 ··· 1342 1342 static irqreturn_t wm8350_hp_jack_handler(int irq, void *data) 1343 1343 { 1344 1344 struct wm8350_data *priv = data; 1345 - struct wm8350 *wm8350 = priv->codec.control_data; 1345 + struct wm8350 *wm8350 = priv->wm8350; 1346 1346 struct wm8350_jack_data *jack = NULL; 1347 1347 1348 1348 switch (irq - wm8350->irq_base) { ··· 1427 1427 static irqreturn_t wm8350_mic_handler(int irq, void *data) 1428 1428 { 1429 1429 struct wm8350_data *priv = data; 1430 - struct wm8350 *wm8350 = priv->codec.control_data; 1430 + struct wm8350 *wm8350 = priv->wm8350; 1431 1431 u16 reg; 1432 1432 int report = 0; 1433 1433 ··· 1536 1536 return -ENOMEM; 1537 1537 snd_soc_codec_set_drvdata(codec, priv); 1538 1538 1539 + priv->wm8350 = wm8350; 1540 + 1539 1541 for (i = 0; i < ARRAY_SIZE(supply_names); i++) 1540 1542 priv->supplies[i].supply = supply_names[i]; 1541 1543 ··· 1546 1544 if (ret != 0) 1547 1545 return ret; 1548 1546 1549 - wm8350->codec.codec = codec; 1550 1547 codec->control_data = wm8350; 1551 1548 1552 1549 /* Put the codec into reset if it wasn't already */
+9 -6
sound/soc/codecs/wm_hubs.c
··· 1035 1035 enum snd_soc_bias_level level) 1036 1036 { 1037 1037 struct wm_hubs_data *hubs = snd_soc_codec_get_drvdata(codec); 1038 - int val; 1038 + int mask, val; 1039 1039 1040 1040 switch (level) { 1041 1041 case SND_SOC_BIAS_STANDBY: ··· 1047 1047 case SND_SOC_BIAS_ON: 1048 1048 /* Turn off any unneded single ended outputs */ 1049 1049 val = 0; 1050 + mask = 0; 1051 + 1052 + if (hubs->lineout1_se) 1053 + mask |= WM8993_LINEOUT1N_ENA | WM8993_LINEOUT1P_ENA; 1054 + 1055 + if (hubs->lineout2_se) 1056 + mask |= WM8993_LINEOUT2N_ENA | WM8993_LINEOUT2P_ENA; 1050 1057 1051 1058 if (hubs->lineout1_se && hubs->lineout1n_ena) 1052 1059 val |= WM8993_LINEOUT1N_ENA; ··· 1068 1061 val |= WM8993_LINEOUT2P_ENA; 1069 1062 1070 1063 snd_soc_update_bits(codec, WM8993_POWER_MANAGEMENT_3, 1071 - WM8993_LINEOUT1N_ENA | 1072 - WM8993_LINEOUT1P_ENA | 1073 - WM8993_LINEOUT2N_ENA | 1074 - WM8993_LINEOUT2P_ENA, 1075 - val); 1064 + mask, val); 1076 1065 1077 1066 /* Remove the input clamps */ 1078 1067 snd_soc_update_bits(codec, WM8993_INPUTS_CLAMP_REG,
+4
sound/soc/omap/omap-pcm.c
··· 401 401 } 402 402 403 403 out: 404 + /* free preallocated buffers in case of error */ 405 + if (ret) 406 + omap_pcm_free_dma_buffers(pcm); 407 + 404 408 return ret; 405 409 } 406 410
+1 -1
sound/soc/samsung/s3c2412-i2s.c
··· 166 166 167 167 static __devinit int s3c2412_iis_dev_probe(struct platform_device *pdev) 168 168 { 169 - return snd_soc_register_dai(&pdev->dev, &s3c2412_i2s_dai); 169 + return s3c_i2sv2_register_dai(&pdev->dev, -1, &s3c2412_i2s_dai); 170 170 } 171 171 172 172 static __devexit int s3c2412_iis_dev_remove(struct platform_device *pdev)
+3 -3
sound/soc/soc-core.c
··· 3625 3625 int i, ret; 3626 3626 3627 3627 num_routes = of_property_count_strings(np, propname); 3628 - if (num_routes & 1) { 3628 + if (num_routes < 0 || num_routes & 1) { 3629 3629 dev_err(card->dev, 3630 - "Property '%s's length is not even\n", 3631 - propname); 3630 + "Property '%s' does not exist or its length is not even\n", 3631 + propname); 3632 3632 return -EINVAL; 3633 3633 } 3634 3634 num_routes /= 2;