Merge commit 'v2.6.39-rc3' into for-2.6.39
[pandora-kernel.git] / sound / soc / codecs / wm8978.c
index 8dfb0a0..85e3e63 100644 (file)
@@ -93,6 +93,7 @@ static const DECLARE_TLV_DB_SCALE(eq_tlv, -1200, 100, 0);
 static const DECLARE_TLV_DB_SCALE(inpga_tlv, -1200, 75, 0);
 static const DECLARE_TLV_DB_SCALE(spk_tlv, -5700, 100, 0);
 static const DECLARE_TLV_DB_SCALE(boost_tlv, -1500, 300, 1);
+static const DECLARE_TLV_DB_SCALE(limiter_tlv, 0, 100, 0);
 
 static const struct snd_kcontrol_new wm8978_snd_controls[] = {
 
@@ -144,8 +145,8 @@ static const struct snd_kcontrol_new wm8978_snd_controls[] = {
 
        SOC_SINGLE("DAC Playback Limiter Threshold",
                WM8978_DAC_LIMITER_2, 4, 7, 0),
-       SOC_SINGLE("DAC Playback Limiter Boost",
-               WM8978_DAC_LIMITER_2, 0, 12, 0),
+       SOC_SINGLE_TLV("DAC Playback Limiter Volume",
+               WM8978_DAC_LIMITER_2, 0, 12, 0, limiter_tlv),
 
        SOC_ENUM("ALC Enable Switch", alc1),
        SOC_SINGLE("ALC Capture Min Gain", WM8978_ALC_CONTROL_1, 0, 7, 0),
@@ -967,7 +968,7 @@ static int wm8978_probe(struct snd_soc_codec *codec)
         * written.
         */
        for (i = 0; i < ARRAY_SIZE(update_reg); i++)
-               ((u16 *)codec->reg_cache)[update_reg[i]] |= 0x100;
+               snd_soc_update_bits(codec, update_reg[i], 0x100, 0x100);
 
        /* Reset the codec */
        ret = snd_soc_write(codec, WM8978_RESET, 0);