Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 287326
b: refs/heads/master
c: b97f6bf
h: refs/heads/master
v: v3
  • Loading branch information
Takashi Iwai committed Feb 7, 2012
1 parent bc9a0bb commit eecf32b
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 15 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: cfd0d11ef565fef718118a3bd28afd52f8381bc9
refs/heads/master: b97f6bfdd1af95681de5a9f652da644a6525e376
33 changes: 19 additions & 14 deletions trunk/sound/pci/hda/patch_ca0132.c
Original file line number Diff line number Diff line change
Expand Up @@ -728,18 +728,19 @@ static int ca0132_hp_switch_put(struct snd_kcontrol *kcontrol,

err = chipio_read(codec, REG_CODEC_MUTE, &data);
if (err < 0)
return err;
goto exit;

/* *valp 0 is mute, 1 is unmute */
data = (data & 0x7f) | (*valp ? 0 : 0x80);
chipio_write(codec, REG_CODEC_MUTE, data);
err = chipio_write(codec, REG_CODEC_MUTE, data);
if (err < 0)
return err;
goto exit;

spec->curr_hp_switch = *valp;

exit:
snd_hda_power_down(codec);
return 1;
return err < 0 ? err : 1;
}

static int ca0132_speaker_switch_get(struct snd_kcontrol *kcontrol,
Expand Down Expand Up @@ -770,18 +771,19 @@ static int ca0132_speaker_switch_put(struct snd_kcontrol *kcontrol,

err = chipio_read(codec, REG_CODEC_MUTE, &data);
if (err < 0)
return err;
goto exit;

/* *valp 0 is mute, 1 is unmute */
data = (data & 0xef) | (*valp ? 0 : 0x10);
chipio_write(codec, REG_CODEC_MUTE, data);
err = chipio_write(codec, REG_CODEC_MUTE, data);
if (err < 0)
return err;
goto exit;

spec->curr_speaker_switch = *valp;

exit:
snd_hda_power_down(codec);
return 1;
return err < 0 ? err : 1;
}

static int ca0132_hp_volume_get(struct snd_kcontrol *kcontrol,
Expand Down Expand Up @@ -819,25 +821,26 @@ static int ca0132_hp_volume_put(struct snd_kcontrol *kcontrol,

err = chipio_read(codec, REG_CODEC_HP_VOL_L, &data);
if (err < 0)
return err;
goto exit;

val = 31 - left_vol;
data = (data & 0xe0) | val;
chipio_write(codec, REG_CODEC_HP_VOL_L, data);
err = chipio_write(codec, REG_CODEC_HP_VOL_L, data);
if (err < 0)
return err;
goto exit;

val = 31 - right_vol;
data = (data & 0xe0) | val;
chipio_write(codec, REG_CODEC_HP_VOL_R, data);
err = chipio_write(codec, REG_CODEC_HP_VOL_R, data);
if (err < 0)
return err;
goto exit;

spec->curr_hp_volume[0] = left_vol;
spec->curr_hp_volume[1] = right_vol;

exit:
snd_hda_power_down(codec);
return 1;
return err < 0 ? err : 1;
}

static int add_hp_switch(struct hda_codec *codec, hda_nid_t nid)
Expand Down Expand Up @@ -936,6 +939,8 @@ static int ca0132_build_controls(struct hda_codec *codec)
if (err < 0)
return err;
err = add_in_volume(codec, spec->dig_in, "IEC958");
if (err < 0)
return err;
}
return 0;
}
Expand Down

0 comments on commit eecf32b

Please sign in to comment.