diff options
-rw-r--r-- | sound/soc/codecs/rt5677.c | 100 | ||||
-rw-r--r-- | sound/soc/codecs/wm8960.c | 2 | ||||
-rw-r--r-- | sound/soc/codecs/wm8962.c | 4 | ||||
-rw-r--r-- | sound/soc/soc-topology.c | 2 | ||||
-rw-r--r-- | sound/soc/sti/uniperif_player.c | 9 | ||||
-rw-r--r-- | sound/soc/sti/uniperif_reader.c | 3 | ||||
-rw-r--r-- | sound/soc/sunxi/sun4i-codec.c | 27 |
7 files changed, 86 insertions, 61 deletions
diff --git a/sound/soc/codecs/rt5677.c b/sound/soc/codecs/rt5677.c index b4cd7e3bf5f8..69d987a9935c 100644 --- a/sound/soc/codecs/rt5677.c +++ b/sound/soc/codecs/rt5677.c | |||
@@ -1386,90 +1386,90 @@ static const struct snd_kcontrol_new rt5677_dac_r_mix[] = { | |||
1386 | }; | 1386 | }; |
1387 | 1387 | ||
1388 | static const struct snd_kcontrol_new rt5677_sto1_dac_l_mix[] = { | 1388 | static const struct snd_kcontrol_new rt5677_sto1_dac_l_mix[] = { |
1389 | SOC_DAPM_SINGLE("ST L Switch", RT5677_STO1_DAC_MIXER, | 1389 | SOC_DAPM_SINGLE_AUTODISABLE("ST L Switch", RT5677_STO1_DAC_MIXER, |
1390 | RT5677_M_ST_DAC1_L_SFT, 1, 1), | 1390 | RT5677_M_ST_DAC1_L_SFT, 1, 1), |
1391 | SOC_DAPM_SINGLE("DAC1 L Switch", RT5677_STO1_DAC_MIXER, | 1391 | SOC_DAPM_SINGLE_AUTODISABLE("DAC1 L Switch", RT5677_STO1_DAC_MIXER, |
1392 | RT5677_M_DAC1_L_STO_L_SFT, 1, 1), | 1392 | RT5677_M_DAC1_L_STO_L_SFT, 1, 1), |
1393 | SOC_DAPM_SINGLE("DAC2 L Switch", RT5677_STO1_DAC_MIXER, | 1393 | SOC_DAPM_SINGLE_AUTODISABLE("DAC2 L Switch", RT5677_STO1_DAC_MIXER, |
1394 | RT5677_M_DAC2_L_STO_L_SFT, 1, 1), | 1394 | RT5677_M_DAC2_L_STO_L_SFT, 1, 1), |
1395 | SOC_DAPM_SINGLE("DAC1 R Switch", RT5677_STO1_DAC_MIXER, | 1395 | SOC_DAPM_SINGLE_AUTODISABLE("DAC1 R Switch", RT5677_STO1_DAC_MIXER, |
1396 | RT5677_M_DAC1_R_STO_L_SFT, 1, 1), | 1396 | RT5677_M_DAC1_R_STO_L_SFT, 1, 1), |
1397 | }; | 1397 | }; |
1398 | 1398 | ||
1399 | static const struct snd_kcontrol_new rt5677_sto1_dac_r_mix[] = { | 1399 | static const struct snd_kcontrol_new rt5677_sto1_dac_r_mix[] = { |
1400 | SOC_DAPM_SINGLE("ST R Switch", RT5677_STO1_DAC_MIXER, | 1400 | SOC_DAPM_SINGLE_AUTODISABLE("ST R Switch", RT5677_STO1_DAC_MIXER, |
1401 | RT5677_M_ST_DAC1_R_SFT, 1, 1), | 1401 | RT5677_M_ST_DAC1_R_SFT, 1, 1), |
1402 | SOC_DAPM_SINGLE("DAC1 R Switch", RT5677_STO1_DAC_MIXER, | 1402 | SOC_DAPM_SINGLE_AUTODISABLE("DAC1 R Switch", RT5677_STO1_DAC_MIXER, |
1403 | RT5677_M_DAC1_R_STO_R_SFT, 1, 1), | 1403 | RT5677_M_DAC1_R_STO_R_SFT, 1, 1), |
1404 | SOC_DAPM_SINGLE("DAC2 R Switch", RT5677_STO1_DAC_MIXER, | 1404 | SOC_DAPM_SINGLE_AUTODISABLE("DAC2 R Switch", RT5677_STO1_DAC_MIXER, |
1405 | RT5677_M_DAC2_R_STO_R_SFT, 1, 1), | 1405 | RT5677_M_DAC2_R_STO_R_SFT, 1, 1), |
1406 | SOC_DAPM_SINGLE("DAC1 L Switch", RT5677_STO1_DAC_MIXER, | 1406 | SOC_DAPM_SINGLE_AUTODISABLE("DAC1 L Switch", RT5677_STO1_DAC_MIXER, |
1407 | RT5677_M_DAC1_L_STO_R_SFT, 1, 1), | 1407 | RT5677_M_DAC1_L_STO_R_SFT, 1, 1), |
1408 | }; | 1408 | }; |
1409 | 1409 | ||
1410 | static const struct snd_kcontrol_new rt5677_mono_dac_l_mix[] = { | 1410 | static const struct snd_kcontrol_new rt5677_mono_dac_l_mix[] = { |
1411 | SOC_DAPM_SINGLE("ST L Switch", RT5677_MONO_DAC_MIXER, | 1411 | SOC_DAPM_SINGLE_AUTODISABLE("ST L Switch", RT5677_MONO_DAC_MIXER, |
1412 | RT5677_M_ST_DAC2_L_SFT, 1, 1), | 1412 | RT5677_M_ST_DAC2_L_SFT, 1, 1), |
1413 | SOC_DAPM_SINGLE("DAC1 L Switch", RT5677_MONO_DAC_MIXER, | 1413 | SOC_DAPM_SINGLE_AUTODISABLE("DAC1 L Switch", RT5677_MONO_DAC_MIXER, |
1414 | RT5677_M_DAC1_L_MONO_L_SFT, 1, 1), | 1414 | RT5677_M_DAC1_L_MONO_L_SFT, 1, 1), |
1415 | SOC_DAPM_SINGLE("DAC2 L Switch", RT5677_MONO_DAC_MIXER, | 1415 | SOC_DAPM_SINGLE_AUTODISABLE("DAC2 L Switch", RT5677_MONO_DAC_MIXER, |
1416 | RT5677_M_DAC2_L_MONO_L_SFT, 1, 1), | 1416 | RT5677_M_DAC2_L_MONO_L_SFT, 1, 1), |
1417 | SOC_DAPM_SINGLE("DAC2 R Switch", RT5677_MONO_DAC_MIXER, | 1417 | SOC_DAPM_SINGLE_AUTODISABLE("DAC2 R Switch", RT5677_MONO_DAC_MIXER, |
1418 | RT5677_M_DAC2_R_MONO_L_SFT, 1, 1), | 1418 | RT5677_M_DAC2_R_MONO_L_SFT, 1, 1), |
1419 | }; | 1419 | }; |
1420 | 1420 | ||
1421 | static const struct snd_kcontrol_new rt5677_mono_dac_r_mix[] = { | 1421 | static const struct snd_kcontrol_new rt5677_mono_dac_r_mix[] = { |
1422 | SOC_DAPM_SINGLE("ST R Switch", RT5677_MONO_DAC_MIXER, | 1422 | SOC_DAPM_SINGLE_AUTODISABLE("ST R Switch", RT5677_MONO_DAC_MIXER, |
1423 | RT5677_M_ST_DAC2_R_SFT, 1, 1), | 1423 | RT5677_M_ST_DAC2_R_SFT, 1, 1), |
1424 | SOC_DAPM_SINGLE("DAC1 R Switch", RT5677_MONO_DAC_MIXER, | 1424 | SOC_DAPM_SINGLE_AUTODISABLE("DAC1 R Switch", RT5677_MONO_DAC_MIXER, |
1425 | RT5677_M_DAC1_R_MONO_R_SFT, 1, 1), | 1425 | RT5677_M_DAC1_R_MONO_R_SFT, 1, 1), |
1426 | SOC_DAPM_SINGLE("DAC2 R Switch", RT5677_MONO_DAC_MIXER, | 1426 | SOC_DAPM_SINGLE_AUTODISABLE("DAC2 R Switch", RT5677_MONO_DAC_MIXER, |
1427 | RT5677_M_DAC2_R_MONO_R_SFT, 1, 1), | 1427 | RT5677_M_DAC2_R_MONO_R_SFT, 1, 1), |
1428 | SOC_DAPM_SINGLE("DAC2 L Switch", RT5677_MONO_DAC_MIXER, | 1428 | SOC_DAPM_SINGLE_AUTODISABLE("DAC2 L Switch", RT5677_MONO_DAC_MIXER, |
1429 | RT5677_M_DAC2_L_MONO_R_SFT, 1, 1), | 1429 | RT5677_M_DAC2_L_MONO_R_SFT, 1, 1), |
1430 | }; | 1430 | }; |
1431 | 1431 | ||
1432 | static const struct snd_kcontrol_new rt5677_dd1_l_mix[] = { | 1432 | static const struct snd_kcontrol_new rt5677_dd1_l_mix[] = { |
1433 | SOC_DAPM_SINGLE("Sto DAC Mix L Switch", RT5677_DD1_MIXER, | 1433 | SOC_DAPM_SINGLE_AUTODISABLE("Sto DAC Mix L Switch", RT5677_DD1_MIXER, |
1434 | RT5677_M_STO_L_DD1_L_SFT, 1, 1), | 1434 | RT5677_M_STO_L_DD1_L_SFT, 1, 1), |
1435 | SOC_DAPM_SINGLE("Mono DAC Mix L Switch", RT5677_DD1_MIXER, | 1435 | SOC_DAPM_SINGLE_AUTODISABLE("Mono DAC Mix L Switch", RT5677_DD1_MIXER, |
1436 | RT5677_M_MONO_L_DD1_L_SFT, 1, 1), | 1436 | RT5677_M_MONO_L_DD1_L_SFT, 1, 1), |
1437 | SOC_DAPM_SINGLE("DAC3 L Switch", RT5677_DD1_MIXER, | 1437 | SOC_DAPM_SINGLE_AUTODISABLE("DAC3 L Switch", RT5677_DD1_MIXER, |
1438 | RT5677_M_DAC3_L_DD1_L_SFT, 1, 1), | 1438 | RT5677_M_DAC3_L_DD1_L_SFT, 1, 1), |
1439 | SOC_DAPM_SINGLE("DAC3 R Switch", RT5677_DD1_MIXER, | 1439 | SOC_DAPM_SINGLE_AUTODISABLE("DAC3 R Switch", RT5677_DD1_MIXER, |
1440 | RT5677_M_DAC3_R_DD1_L_SFT, 1, 1), | 1440 | RT5677_M_DAC3_R_DD1_L_SFT, 1, 1), |
1441 | }; | 1441 | }; |
1442 | 1442 | ||
1443 | static const struct snd_kcontrol_new rt5677_dd1_r_mix[] = { | 1443 | static const struct snd_kcontrol_new rt5677_dd1_r_mix[] = { |
1444 | SOC_DAPM_SINGLE("Sto DAC Mix R Switch", RT5677_DD1_MIXER, | 1444 | SOC_DAPM_SINGLE_AUTODISABLE("Sto DAC Mix R Switch", RT5677_DD1_MIXER, |
1445 | RT5677_M_STO_R_DD1_R_SFT, 1, 1), | 1445 | RT5677_M_STO_R_DD1_R_SFT, 1, 1), |
1446 | SOC_DAPM_SINGLE("Mono DAC Mix R Switch", RT5677_DD1_MIXER, | 1446 | SOC_DAPM_SINGLE_AUTODISABLE("Mono DAC Mix R Switch", RT5677_DD1_MIXER, |
1447 | RT5677_M_MONO_R_DD1_R_SFT, 1, 1), | 1447 | RT5677_M_MONO_R_DD1_R_SFT, 1, 1), |
1448 | SOC_DAPM_SINGLE("DAC3 R Switch", RT5677_DD1_MIXER, | 1448 | SOC_DAPM_SINGLE_AUTODISABLE("DAC3 R Switch", RT5677_DD1_MIXER, |
1449 | RT5677_M_DAC3_R_DD1_R_SFT, 1, 1), | 1449 | RT5677_M_DAC3_R_DD1_R_SFT, 1, 1), |
1450 | SOC_DAPM_SINGLE("DAC3 L Switch", RT5677_DD1_MIXER, | 1450 | SOC_DAPM_SINGLE_AUTODISABLE("DAC3 L Switch", RT5677_DD1_MIXER, |
1451 | RT5677_M_DAC3_L_DD1_R_SFT, 1, 1), | 1451 | RT5677_M_DAC3_L_DD1_R_SFT, 1, 1), |
1452 | }; | 1452 | }; |
1453 | 1453 | ||
1454 | static const struct snd_kcontrol_new rt5677_dd2_l_mix[] = { | 1454 | static const struct snd_kcontrol_new rt5677_dd2_l_mix[] = { |
1455 | SOC_DAPM_SINGLE("Sto DAC Mix L Switch", RT5677_DD2_MIXER, | 1455 | SOC_DAPM_SINGLE_AUTODISABLE("Sto DAC Mix L Switch", RT5677_DD2_MIXER, |
1456 | RT5677_M_STO_L_DD2_L_SFT, 1, 1), | 1456 | RT5677_M_STO_L_DD2_L_SFT, 1, 1), |
1457 | SOC_DAPM_SINGLE("Mono DAC Mix L Switch", RT5677_DD2_MIXER, | 1457 | SOC_DAPM_SINGLE_AUTODISABLE("Mono DAC Mix L Switch", RT5677_DD2_MIXER, |
1458 | RT5677_M_MONO_L_DD2_L_SFT, 1, 1), | 1458 | RT5677_M_MONO_L_DD2_L_SFT, 1, 1), |
1459 | SOC_DAPM_SINGLE("DAC4 L Switch", RT5677_DD2_MIXER, | 1459 | SOC_DAPM_SINGLE_AUTODISABLE("DAC4 L Switch", RT5677_DD2_MIXER, |
1460 | RT5677_M_DAC4_L_DD2_L_SFT, 1, 1), | 1460 | RT5677_M_DAC4_L_DD2_L_SFT, 1, 1), |
1461 | SOC_DAPM_SINGLE("DAC4 R Switch", RT5677_DD2_MIXER, | 1461 | SOC_DAPM_SINGLE_AUTODISABLE("DAC4 R Switch", RT5677_DD2_MIXER, |
1462 | RT5677_M_DAC4_R_DD2_L_SFT, 1, 1), | 1462 | RT5677_M_DAC4_R_DD2_L_SFT, 1, 1), |
1463 | }; | 1463 | }; |
1464 | 1464 | ||
1465 | static const struct snd_kcontrol_new rt5677_dd2_r_mix[] = { | 1465 | static const struct snd_kcontrol_new rt5677_dd2_r_mix[] = { |
1466 | SOC_DAPM_SINGLE("Sto DAC Mix R Switch", RT5677_DD2_MIXER, | 1466 | SOC_DAPM_SINGLE_AUTODISABLE("Sto DAC Mix R Switch", RT5677_DD2_MIXER, |
1467 | RT5677_M_STO_R_DD2_R_SFT, 1, 1), | 1467 | RT5677_M_STO_R_DD2_R_SFT, 1, 1), |
1468 | SOC_DAPM_SINGLE("Mono DAC Mix R Switch", RT5677_DD2_MIXER, | 1468 | SOC_DAPM_SINGLE_AUTODISABLE("Mono DAC Mix R Switch", RT5677_DD2_MIXER, |
1469 | RT5677_M_MONO_R_DD2_R_SFT, 1, 1), | 1469 | RT5677_M_MONO_R_DD2_R_SFT, 1, 1), |
1470 | SOC_DAPM_SINGLE("DAC4 R Switch", RT5677_DD2_MIXER, | 1470 | SOC_DAPM_SINGLE_AUTODISABLE("DAC4 R Switch", RT5677_DD2_MIXER, |
1471 | RT5677_M_DAC4_R_DD2_R_SFT, 1, 1), | 1471 | RT5677_M_DAC4_R_DD2_R_SFT, 1, 1), |
1472 | SOC_DAPM_SINGLE("DAC4 L Switch", RT5677_DD2_MIXER, | 1472 | SOC_DAPM_SINGLE_AUTODISABLE("DAC4 L Switch", RT5677_DD2_MIXER, |
1473 | RT5677_M_DAC4_L_DD2_R_SFT, 1, 1), | 1473 | RT5677_M_DAC4_L_DD2_R_SFT, 1, 1), |
1474 | }; | 1474 | }; |
1475 | 1475 | ||
@@ -2596,6 +2596,21 @@ static int rt5677_vref_event(struct snd_soc_dapm_widget *w, | |||
2596 | return 0; | 2596 | return 0; |
2597 | } | 2597 | } |
2598 | 2598 | ||
2599 | static int rt5677_filter_power_event(struct snd_soc_dapm_widget *w, | ||
2600 | struct snd_kcontrol *kcontrol, int event) | ||
2601 | { | ||
2602 | switch (event) { | ||
2603 | case SND_SOC_DAPM_POST_PMU: | ||
2604 | msleep(50); | ||
2605 | break; | ||
2606 | |||
2607 | default: | ||
2608 | return 0; | ||
2609 | } | ||
2610 | |||
2611 | return 0; | ||
2612 | } | ||
2613 | |||
2599 | static const struct snd_soc_dapm_widget rt5677_dapm_widgets[] = { | 2614 | static const struct snd_soc_dapm_widget rt5677_dapm_widgets[] = { |
2600 | SND_SOC_DAPM_SUPPLY("PLL1", RT5677_PWR_ANLG2, RT5677_PWR_PLL1_BIT, | 2615 | SND_SOC_DAPM_SUPPLY("PLL1", RT5677_PWR_ANLG2, RT5677_PWR_PLL1_BIT, |
2601 | 0, rt5677_set_pll1_event, SND_SOC_DAPM_PRE_PMU | | 2616 | 0, rt5677_set_pll1_event, SND_SOC_DAPM_PRE_PMU | |
@@ -3072,19 +3087,26 @@ static const struct snd_soc_dapm_widget rt5677_dapm_widgets[] = { | |||
3072 | 3087 | ||
3073 | /* DAC Mixer */ | 3088 | /* DAC Mixer */ |
3074 | SND_SOC_DAPM_SUPPLY("dac stereo1 filter", RT5677_PWR_DIG2, | 3089 | SND_SOC_DAPM_SUPPLY("dac stereo1 filter", RT5677_PWR_DIG2, |
3075 | RT5677_PWR_DAC_S1F_BIT, 0, NULL, 0), | 3090 | RT5677_PWR_DAC_S1F_BIT, 0, rt5677_filter_power_event, |
3091 | SND_SOC_DAPM_POST_PMU), | ||
3076 | SND_SOC_DAPM_SUPPLY("dac mono2 left filter", RT5677_PWR_DIG2, | 3092 | SND_SOC_DAPM_SUPPLY("dac mono2 left filter", RT5677_PWR_DIG2, |
3077 | RT5677_PWR_DAC_M2F_L_BIT, 0, NULL, 0), | 3093 | RT5677_PWR_DAC_M2F_L_BIT, 0, rt5677_filter_power_event, |
3094 | SND_SOC_DAPM_POST_PMU), | ||
3078 | SND_SOC_DAPM_SUPPLY("dac mono2 right filter", RT5677_PWR_DIG2, | 3095 | SND_SOC_DAPM_SUPPLY("dac mono2 right filter", RT5677_PWR_DIG2, |
3079 | RT5677_PWR_DAC_M2F_R_BIT, 0, NULL, 0), | 3096 | RT5677_PWR_DAC_M2F_R_BIT, 0, rt5677_filter_power_event, |
3097 | SND_SOC_DAPM_POST_PMU), | ||
3080 | SND_SOC_DAPM_SUPPLY("dac mono3 left filter", RT5677_PWR_DIG2, | 3098 | SND_SOC_DAPM_SUPPLY("dac mono3 left filter", RT5677_PWR_DIG2, |
3081 | RT5677_PWR_DAC_M3F_L_BIT, 0, NULL, 0), | 3099 | RT5677_PWR_DAC_M3F_L_BIT, 0, rt5677_filter_power_event, |
3100 | SND_SOC_DAPM_POST_PMU), | ||
3082 | SND_SOC_DAPM_SUPPLY("dac mono3 right filter", RT5677_PWR_DIG2, | 3101 | SND_SOC_DAPM_SUPPLY("dac mono3 right filter", RT5677_PWR_DIG2, |
3083 | RT5677_PWR_DAC_M3F_R_BIT, 0, NULL, 0), | 3102 | RT5677_PWR_DAC_M3F_R_BIT, 0, rt5677_filter_power_event, |
3103 | SND_SOC_DAPM_POST_PMU), | ||
3084 | SND_SOC_DAPM_SUPPLY("dac mono4 left filter", RT5677_PWR_DIG2, | 3104 | SND_SOC_DAPM_SUPPLY("dac mono4 left filter", RT5677_PWR_DIG2, |
3085 | RT5677_PWR_DAC_M4F_L_BIT, 0, NULL, 0), | 3105 | RT5677_PWR_DAC_M4F_L_BIT, 0, rt5677_filter_power_event, |
3106 | SND_SOC_DAPM_POST_PMU), | ||
3086 | SND_SOC_DAPM_SUPPLY("dac mono4 right filter", RT5677_PWR_DIG2, | 3107 | SND_SOC_DAPM_SUPPLY("dac mono4 right filter", RT5677_PWR_DIG2, |
3087 | RT5677_PWR_DAC_M4F_R_BIT, 0, NULL, 0), | 3108 | RT5677_PWR_DAC_M4F_R_BIT, 0, rt5677_filter_power_event, |
3109 | SND_SOC_DAPM_POST_PMU), | ||
3088 | 3110 | ||
3089 | SND_SOC_DAPM_MIXER("Stereo DAC MIXL", SND_SOC_NOPM, 0, 0, | 3111 | SND_SOC_DAPM_MIXER("Stereo DAC MIXL", SND_SOC_NOPM, 0, 0, |
3090 | rt5677_sto1_dac_l_mix, ARRAY_SIZE(rt5677_sto1_dac_l_mix)), | 3112 | rt5677_sto1_dac_l_mix, ARRAY_SIZE(rt5677_sto1_dac_l_mix)), |
diff --git a/sound/soc/codecs/wm8960.c b/sound/soc/codecs/wm8960.c index 056375339ea3..5380798883b5 100644 --- a/sound/soc/codecs/wm8960.c +++ b/sound/soc/codecs/wm8960.c | |||
@@ -229,7 +229,7 @@ SOC_DOUBLE_R_TLV("Capture Volume", WM8960_LINVOL, WM8960_RINVOL, | |||
229 | SOC_DOUBLE_R("Capture Volume ZC Switch", WM8960_LINVOL, WM8960_RINVOL, | 229 | SOC_DOUBLE_R("Capture Volume ZC Switch", WM8960_LINVOL, WM8960_RINVOL, |
230 | 6, 1, 0), | 230 | 6, 1, 0), |
231 | SOC_DOUBLE_R("Capture Switch", WM8960_LINVOL, WM8960_RINVOL, | 231 | SOC_DOUBLE_R("Capture Switch", WM8960_LINVOL, WM8960_RINVOL, |
232 | 7, 1, 0), | 232 | 7, 1, 1), |
233 | 233 | ||
234 | SOC_SINGLE_TLV("Right Input Boost Mixer RINPUT3 Volume", | 234 | SOC_SINGLE_TLV("Right Input Boost Mixer RINPUT3 Volume", |
235 | WM8960_INBMIX1, 4, 7, 0, lineinboost_tlv), | 235 | WM8960_INBMIX1, 4, 7, 0, lineinboost_tlv), |
diff --git a/sound/soc/codecs/wm8962.c b/sound/soc/codecs/wm8962.c index 39ebd7bf4f53..a7e79784fc16 100644 --- a/sound/soc/codecs/wm8962.c +++ b/sound/soc/codecs/wm8962.c | |||
@@ -365,8 +365,8 @@ static const struct reg_default wm8962_reg[] = { | |||
365 | { 16924, 0x0059 }, /* R16924 - HDBASS_PG_1 */ | 365 | { 16924, 0x0059 }, /* R16924 - HDBASS_PG_1 */ |
366 | { 16925, 0x999A }, /* R16925 - HDBASS_PG_0 */ | 366 | { 16925, 0x999A }, /* R16925 - HDBASS_PG_0 */ |
367 | 367 | ||
368 | { 17048, 0x0083 }, /* R17408 - HPF_C_1 */ | 368 | { 17408, 0x0083 }, /* R17408 - HPF_C_1 */ |
369 | { 17049, 0x98AD }, /* R17409 - HPF_C_0 */ | 369 | { 17409, 0x98AD }, /* R17409 - HPF_C_0 */ |
370 | 370 | ||
371 | { 17920, 0x007F }, /* R17920 - ADCL_RETUNE_C1_1 */ | 371 | { 17920, 0x007F }, /* R17920 - ADCL_RETUNE_C1_1 */ |
372 | { 17921, 0xFFFF }, /* R17921 - ADCL_RETUNE_C1_0 */ | 372 | { 17921, 0xFFFF }, /* R17921 - ADCL_RETUNE_C1_0 */ |
diff --git a/sound/soc/soc-topology.c b/sound/soc/soc-topology.c index cce63fe65dd9..6963ba20991c 100644 --- a/sound/soc/soc-topology.c +++ b/sound/soc/soc-topology.c | |||
@@ -531,7 +531,7 @@ static int soc_tplg_kcontrol_bind_io(struct snd_soc_tplg_ctl_hdr *hdr, | |||
531 | /* TLV bytes controls need standard kcontrol info handler, | 531 | /* TLV bytes controls need standard kcontrol info handler, |
532 | * TLV callback and extended put/get handlers. | 532 | * TLV callback and extended put/get handlers. |
533 | */ | 533 | */ |
534 | k->info = snd_soc_bytes_info; | 534 | k->info = snd_soc_bytes_info_ext; |
535 | k->tlv.c = snd_soc_bytes_tlv_callback; | 535 | k->tlv.c = snd_soc_bytes_tlv_callback; |
536 | 536 | ||
537 | ext_ops = tplg->bytes_ext_ops; | 537 | ext_ops = tplg->bytes_ext_ops; |
diff --git a/sound/soc/sti/uniperif_player.c b/sound/soc/sti/uniperif_player.c index 843f037a317d..5c2bc53f0a9b 100644 --- a/sound/soc/sti/uniperif_player.c +++ b/sound/soc/sti/uniperif_player.c | |||
@@ -669,6 +669,7 @@ static int uni_player_startup(struct snd_pcm_substream *substream, | |||
669 | { | 669 | { |
670 | struct sti_uniperiph_data *priv = snd_soc_dai_get_drvdata(dai); | 670 | struct sti_uniperiph_data *priv = snd_soc_dai_get_drvdata(dai); |
671 | struct uniperif *player = priv->dai_data.uni; | 671 | struct uniperif *player = priv->dai_data.uni; |
672 | player->substream = substream; | ||
672 | 673 | ||
673 | player->clk_adj = 0; | 674 | player->clk_adj = 0; |
674 | 675 | ||
@@ -950,6 +951,8 @@ static void uni_player_shutdown(struct snd_pcm_substream *substream, | |||
950 | if (player->state != UNIPERIF_STATE_STOPPED) | 951 | if (player->state != UNIPERIF_STATE_STOPPED) |
951 | /* Stop the player */ | 952 | /* Stop the player */ |
952 | uni_player_stop(player); | 953 | uni_player_stop(player); |
954 | |||
955 | player->substream = NULL; | ||
953 | } | 956 | } |
954 | 957 | ||
955 | static int uni_player_parse_dt_clk_glue(struct platform_device *pdev, | 958 | static int uni_player_parse_dt_clk_glue(struct platform_device *pdev, |
@@ -989,7 +992,7 @@ static int uni_player_parse_dt(struct platform_device *pdev, | |||
989 | if (!info) | 992 | if (!info) |
990 | return -ENOMEM; | 993 | return -ENOMEM; |
991 | 994 | ||
992 | if (of_property_read_u32(pnode, "version", &player->ver) || | 995 | if (of_property_read_u32(pnode, "st,version", &player->ver) || |
993 | player->ver == SND_ST_UNIPERIF_VERSION_UNKNOWN) { | 996 | player->ver == SND_ST_UNIPERIF_VERSION_UNKNOWN) { |
994 | dev_err(dev, "Unknown uniperipheral version "); | 997 | dev_err(dev, "Unknown uniperipheral version "); |
995 | return -EINVAL; | 998 | return -EINVAL; |
@@ -998,13 +1001,13 @@ static int uni_player_parse_dt(struct platform_device *pdev, | |||
998 | if (player->ver >= SND_ST_UNIPERIF_VERSION_UNI_PLR_TOP_1_0) | 1001 | if (player->ver >= SND_ST_UNIPERIF_VERSION_UNI_PLR_TOP_1_0) |
999 | info->underflow_enabled = 1; | 1002 | info->underflow_enabled = 1; |
1000 | 1003 | ||
1001 | if (of_property_read_u32(pnode, "uniperiph-id", &info->id)) { | 1004 | if (of_property_read_u32(pnode, "st,uniperiph-id", &info->id)) { |
1002 | dev_err(dev, "uniperipheral id not defined"); | 1005 | dev_err(dev, "uniperipheral id not defined"); |
1003 | return -EINVAL; | 1006 | return -EINVAL; |
1004 | } | 1007 | } |
1005 | 1008 | ||
1006 | /* Read the device mode property */ | 1009 | /* Read the device mode property */ |
1007 | if (of_property_read_string(pnode, "mode", &mode)) { | 1010 | if (of_property_read_string(pnode, "st,mode", &mode)) { |
1008 | dev_err(dev, "uniperipheral mode not defined"); | 1011 | dev_err(dev, "uniperipheral mode not defined"); |
1009 | return -EINVAL; | 1012 | return -EINVAL; |
1010 | } | 1013 | } |
diff --git a/sound/soc/sti/uniperif_reader.c b/sound/soc/sti/uniperif_reader.c index f791239a3087..8a0eb2050169 100644 --- a/sound/soc/sti/uniperif_reader.c +++ b/sound/soc/sti/uniperif_reader.c | |||
@@ -316,7 +316,7 @@ static int uni_reader_parse_dt(struct platform_device *pdev, | |||
316 | if (!info) | 316 | if (!info) |
317 | return -ENOMEM; | 317 | return -ENOMEM; |
318 | 318 | ||
319 | if (of_property_read_u32(node, "version", &reader->ver) || | 319 | if (of_property_read_u32(node, "st,version", &reader->ver) || |
320 | reader->ver == SND_ST_UNIPERIF_VERSION_UNKNOWN) { | 320 | reader->ver == SND_ST_UNIPERIF_VERSION_UNKNOWN) { |
321 | dev_err(&pdev->dev, "Unknown uniperipheral version "); | 321 | dev_err(&pdev->dev, "Unknown uniperipheral version "); |
322 | return -EINVAL; | 322 | return -EINVAL; |
@@ -346,7 +346,6 @@ int uni_reader_init(struct platform_device *pdev, | |||
346 | reader->hw = &uni_reader_pcm_hw; | 346 | reader->hw = &uni_reader_pcm_hw; |
347 | reader->dai_ops = &uni_reader_dai_ops; | 347 | reader->dai_ops = &uni_reader_dai_ops; |
348 | 348 | ||
349 | dev_err(reader->dev, "%s: enter\n", __func__); | ||
350 | ret = uni_reader_parse_dt(pdev, reader); | 349 | ret = uni_reader_parse_dt(pdev, reader); |
351 | if (ret < 0) { | 350 | if (ret < 0) { |
352 | dev_err(reader->dev, "Failed to parse DeviceTree"); | 351 | dev_err(reader->dev, "Failed to parse DeviceTree"); |
diff --git a/sound/soc/sunxi/sun4i-codec.c b/sound/soc/sunxi/sun4i-codec.c index bcbf4da168b6..1bb896d78d09 100644 --- a/sound/soc/sunxi/sun4i-codec.c +++ b/sound/soc/sunxi/sun4i-codec.c | |||
@@ -2,6 +2,7 @@ | |||
2 | * Copyright 2014 Emilio López <emilio@elopez.com.ar> | 2 | * Copyright 2014 Emilio López <emilio@elopez.com.ar> |
3 | * Copyright 2014 Jon Smirl <jonsmirl@gmail.com> | 3 | * Copyright 2014 Jon Smirl <jonsmirl@gmail.com> |
4 | * Copyright 2015 Maxime Ripard <maxime.ripard@free-electrons.com> | 4 | * Copyright 2015 Maxime Ripard <maxime.ripard@free-electrons.com> |
5 | * Copyright 2015 Adam Sampson <ats@offog.org> | ||
5 | * | 6 | * |
6 | * Based on the Allwinner SDK driver, released under the GPL. | 7 | * Based on the Allwinner SDK driver, released under the GPL. |
7 | * | 8 | * |
@@ -404,7 +405,7 @@ static const struct snd_kcontrol_new sun4i_codec_pa_mute = | |||
404 | static DECLARE_TLV_DB_SCALE(sun4i_codec_pa_volume_scale, -6300, 100, 1); | 405 | static DECLARE_TLV_DB_SCALE(sun4i_codec_pa_volume_scale, -6300, 100, 1); |
405 | 406 | ||
406 | static const struct snd_kcontrol_new sun4i_codec_widgets[] = { | 407 | static const struct snd_kcontrol_new sun4i_codec_widgets[] = { |
407 | SOC_SINGLE_TLV("PA Volume", SUN4I_CODEC_DAC_ACTL, | 408 | SOC_SINGLE_TLV("Power Amplifier Volume", SUN4I_CODEC_DAC_ACTL, |
408 | SUN4I_CODEC_DAC_ACTL_PA_VOL, 0x3F, 0, | 409 | SUN4I_CODEC_DAC_ACTL_PA_VOL, 0x3F, 0, |
409 | sun4i_codec_pa_volume_scale), | 410 | sun4i_codec_pa_volume_scale), |
410 | }; | 411 | }; |
@@ -452,12 +453,12 @@ static const struct snd_soc_dapm_widget sun4i_codec_dapm_widgets[] = { | |||
452 | SND_SOC_DAPM_SUPPLY("Mixer Enable", SUN4I_CODEC_DAC_ACTL, | 453 | SND_SOC_DAPM_SUPPLY("Mixer Enable", SUN4I_CODEC_DAC_ACTL, |
453 | SUN4I_CODEC_DAC_ACTL_MIXEN, 0, NULL, 0), | 454 | SUN4I_CODEC_DAC_ACTL_MIXEN, 0, NULL, 0), |
454 | 455 | ||
455 | /* Pre-Amplifier */ | 456 | /* Power Amplifier */ |
456 | SND_SOC_DAPM_MIXER("Pre-Amplifier", SUN4I_CODEC_ADC_ACTL, | 457 | SND_SOC_DAPM_MIXER("Power Amplifier", SUN4I_CODEC_ADC_ACTL, |
457 | SUN4I_CODEC_ADC_ACTL_PA_EN, 0, | 458 | SUN4I_CODEC_ADC_ACTL_PA_EN, 0, |
458 | sun4i_codec_pa_mixer_controls, | 459 | sun4i_codec_pa_mixer_controls, |
459 | ARRAY_SIZE(sun4i_codec_pa_mixer_controls)), | 460 | ARRAY_SIZE(sun4i_codec_pa_mixer_controls)), |
460 | SND_SOC_DAPM_SWITCH("Pre-Amplifier Mute", SND_SOC_NOPM, 0, 0, | 461 | SND_SOC_DAPM_SWITCH("Power Amplifier Mute", SND_SOC_NOPM, 0, 0, |
461 | &sun4i_codec_pa_mute), | 462 | &sun4i_codec_pa_mute), |
462 | 463 | ||
463 | SND_SOC_DAPM_OUTPUT("HP Right"), | 464 | SND_SOC_DAPM_OUTPUT("HP Right"), |
@@ -480,16 +481,16 @@ static const struct snd_soc_dapm_route sun4i_codec_dapm_routes[] = { | |||
480 | { "Left Mixer", NULL, "Mixer Enable" }, | 481 | { "Left Mixer", NULL, "Mixer Enable" }, |
481 | { "Left Mixer", "Left DAC Playback Switch", "Left DAC" }, | 482 | { "Left Mixer", "Left DAC Playback Switch", "Left DAC" }, |
482 | 483 | ||
483 | /* Pre-Amplifier Mixer Routes */ | 484 | /* Power Amplifier Routes */ |
484 | { "Pre-Amplifier", "Mixer Playback Switch", "Left Mixer" }, | 485 | { "Power Amplifier", "Mixer Playback Switch", "Left Mixer" }, |
485 | { "Pre-Amplifier", "Mixer Playback Switch", "Right Mixer" }, | 486 | { "Power Amplifier", "Mixer Playback Switch", "Right Mixer" }, |
486 | { "Pre-Amplifier", "DAC Playback Switch", "Left DAC" }, | 487 | { "Power Amplifier", "DAC Playback Switch", "Left DAC" }, |
487 | { "Pre-Amplifier", "DAC Playback Switch", "Right DAC" }, | 488 | { "Power Amplifier", "DAC Playback Switch", "Right DAC" }, |
488 | 489 | ||
489 | /* PA -> HP path */ | 490 | /* Headphone Output Routes */ |
490 | { "Pre-Amplifier Mute", "Switch", "Pre-Amplifier" }, | 491 | { "Power Amplifier Mute", "Switch", "Power Amplifier" }, |
491 | { "HP Right", NULL, "Pre-Amplifier Mute" }, | 492 | { "HP Right", NULL, "Power Amplifier Mute" }, |
492 | { "HP Left", NULL, "Pre-Amplifier Mute" }, | 493 | { "HP Left", NULL, "Power Amplifier Mute" }, |
493 | }; | 494 | }; |
494 | 495 | ||
495 | static struct snd_soc_codec_driver sun4i_codec_codec = { | 496 | static struct snd_soc_codec_driver sun4i_codec_codec = { |