]> Pileus Git - ~andy/linux/blobdiff - sound/soc/codecs/alc5632.c
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless
[~andy/linux] / sound / soc / codecs / alc5632.c
index f965560cd1584b5b8edc4a5d9f6e35cd7090b2f4..e2111e0ccad7eedad086e5bc791d690f86388a15 100644 (file)
@@ -145,10 +145,9 @@ static const DECLARE_TLV_DB_SCALE(hp_tlv, -4650, 150, 0);
 /* -16.5db min scale, 1.5db steps, no mute */
 static const DECLARE_TLV_DB_SCALE(adc_rec_tlv, -1650, 150, 0);
 static const unsigned int boost_tlv[] = {
-       TLV_DB_RANGE_HEAD(3),
-       0, 0, TLV_DB_SCALE_ITEM(0, 0, 0),
-       1, 1, TLV_DB_SCALE_ITEM(2000, 0, 0),
-       2, 2, TLV_DB_SCALE_ITEM(3000, 0, 0),
+       TLV_DB_RANGE_HEAD(2),
+       0, 1, TLV_DB_SCALE_ITEM(0, 2000, 0),
+       1, 3, TLV_DB_SCALE_ITEM(2000, 1000, 0),
 };
 /* 0db min scale, 6 db steps, no mute */
 static const DECLARE_TLV_DB_SCALE(dig_tlv, 0, 600, 0);
@@ -178,25 +177,25 @@ static const struct snd_kcontrol_new alc5632_snd_controls[] = {
                        ALC5632_VOICE_DAC_VOL, 0, 63, 0, vdac_tlv),
        SOC_SINGLE("Voice DAC Playback Switch",
                        ALC5632_VOICE_DAC_VOL, 12, 1, 1),
-       SOC_SINGLE_TLV("Phone Capture Volume",
+       SOC_SINGLE_TLV("Phone Playback Volume",
                        ALC5632_PHONE_IN_VOL, 8, 31, 1, vol_tlv),
-       SOC_DOUBLE_TLV("LineIn Capture Volume",
+       SOC_DOUBLE_TLV("LineIn Playback Volume",
                        ALC5632_LINE_IN_VOL, 8, 0, 31, 1, vol_tlv),
        SOC_DOUBLE_TLV("Master Playback Volume",
                        ALC5632_STEREO_DAC_IN_VOL, 8, 0, 63, 1, vdac_tlv),
        SOC_DOUBLE("Master Playback Switch",
                        ALC5632_STEREO_DAC_IN_VOL, 15, 7, 1, 1),
-       SOC_SINGLE_TLV("Mic1 Capture Volume",
+       SOC_SINGLE_TLV("Mic1 Playback Volume",
                        ALC5632_MIC_VOL, 8, 31, 1, vol_tlv),
-       SOC_SINGLE_TLV("Mic2 Capture Volume",
+       SOC_SINGLE_TLV("Mic2 Playback Volume",
                        ALC5632_MIC_VOL, 0, 31, 1, vol_tlv),
        SOC_DOUBLE_TLV("Rec Capture Volume",
                        ALC5632_ADC_REC_GAIN, 8, 0, 31, 0, adc_rec_tlv),
        SOC_SINGLE_TLV("Mic 1 Boost Volume",
-                       ALC5632_MIC_CTRL, 10, 2, 0, boost_tlv),
+                       ALC5632_MIC_CTRL, 10, 3, 0, boost_tlv),
        SOC_SINGLE_TLV("Mic 2 Boost Volume",
-                       ALC5632_MIC_CTRL, 8, 2, 0, boost_tlv),
-       SOC_SINGLE_TLV("DMIC Boost Volume",
+                       ALC5632_MIC_CTRL, 8, 3, 0, boost_tlv),
+       SOC_SINGLE_TLV("DMIC Boost Capture Volume",
                        ALC5632_DIGI_BOOST_CTRL, 0, 7, 0, dig_tlv),
        SOC_SINGLE("DMIC En Capture Switch",
                        ALC5632_DIGI_BOOST_CTRL, 15, 1, 0),
@@ -482,6 +481,9 @@ static const struct snd_soc_dapm_route alc5632_dapm_routes[] = {
        {"HP Mix", "VOICE2HP Playback Switch",  "Voice Mix"},
        {"HPR Mix", "DACR2HP Playback Switch",  "DAC Right Channel"},
        {"HPL Mix", "DACL2HP Playback Switch",  "DAC Left Channel"},
+       {"HPOut Mix", NULL, "HP Mix"},
+       {"HPOut Mix", NULL, "HPR Mix"},
+       {"HPOut Mix", NULL, "HPL Mix"},
 
        /* speaker mixer */
        {"Speaker Mix", "LI2SPK Playback Switch",       "Line Mix"},
@@ -786,6 +788,7 @@ static int alc5632_set_dai_sysclk(struct snd_soc_dai *codec_dai,
        struct alc5632_priv *alc5632 = snd_soc_codec_get_drvdata(codec);
 
        switch (freq) {
+       case  4096000:
        case  8192000:
        case 11289600:
        case 12288000: