]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - sound/pci/oxygen/hifier.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
[karo-tx-linux.git] / sound / pci / oxygen / hifier.c
index bf39c72a130c686c0466043ebb3e57d0eef9dddc..090dd4354a2838fa2e818265270965c829460c34 100644 (file)
@@ -66,12 +66,12 @@ static void hifier_init(struct oxygen *chip)
 {
        struct hifier_data *data = chip->model_data;
 
-       data->ak4396_ctl2 = AK4396_DEM_OFF | AK4396_DFS_NORMAL;
+       data->ak4396_ctl2 = AK4396_SMUTE | AK4396_DEM_OFF | AK4396_DFS_NORMAL;
        ak4396_write(chip, AK4396_CONTROL_1, AK4396_DIF_24_MSB | AK4396_RSTN);
        ak4396_write(chip, AK4396_CONTROL_2, data->ak4396_ctl2);
        ak4396_write(chip, AK4396_CONTROL_3, AK4396_PCM);
-       ak4396_write(chip, AK4396_LCH_ATT, 0xff);
-       ak4396_write(chip, AK4396_RCH_ATT, 0xff);
+       ak4396_write(chip, AK4396_LCH_ATT, 0);
+       ak4396_write(chip, AK4396_RCH_ATT, 0);
 
        snd_component_add(chip->card, "AK4396");
        snd_component_add(chip->card, "CS5340");
@@ -127,12 +127,8 @@ static const DECLARE_TLV_DB_LINEAR(ak4396_db_scale, TLV_DB_GAIN_MUTE, 0);
 
 static int hifier_control_filter(struct snd_kcontrol_new *template)
 {
-       if (!strcmp(template->name, "Master Playback Volume")) {
-               template->access |= SNDRV_CTL_ELEM_ACCESS_TLV_READ;
-               template->tlv.p = ak4396_db_scale;
-       } else if (!strcmp(template->name, "Stereo Upmixing")) {
+       if (!strcmp(template->name, "Stereo Upmixing"))
                return 1; /* stereo only - we don't need upmixing */
-       }
        return 0;
 }
 
@@ -148,6 +144,7 @@ static const struct oxygen_model model_hifier = {
        .set_adc_params = set_cs5340_params,
        .update_dac_volume = update_ak4396_volume,
        .update_dac_mute = update_ak4396_mute,
+       .dac_tlv = ak4396_db_scale,
        .model_data_size = sizeof(struct hifier_data),
        .pcm_dev_cfg = PLAYBACK_0_TO_I2S |
                       PLAYBACK_1_TO_SPDIF |