]> err.no Git - linux-2.6/blobdiff - sound/pci/oxygen/hifier.c
Merge branch 'linus' into core/printk
[linux-2.6] / sound / pci / oxygen / hifier.c
index b67888f6745b377a2b398ec11a6bf7cf48f501d2..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,11 +144,14 @@ 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 |
                       CAPTURE_0_FROM_I2S_1,
        .dac_channels = 2,
+       .dac_volume_min = 0,
+       .dac_volume_max = 255,
        .function_flags = OXYGEN_FUNCTION_SPI,
        .dac_i2s_format = OXYGEN_I2S_FORMAT_LJUST,
        .adc_i2s_format = OXYGEN_I2S_FORMAT_LJUST,