int snd_hda_mixer_amp_switch_put_beep(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); struct hda_beep *beep = codec->beep; if (beep) snd_hda_enable_beep_device(codec, *ucontrol->value.integer.value); return snd_hda_mixer_amp_switch_put(kcontrol, ucontrol); }
/** * snd_hda_mixer_amp_switch_put_beep - Put callback for beep controls * @kcontrol: ctl element * @ucontrol: pointer to get/store the data */ int snd_hda_mixer_amp_switch_put_beep(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); struct hda_beep *beep = codec->beep; if (beep) { u8 chs = get_amp_channels(kcontrol); int enable = 0; long *valp = ucontrol->value.integer.value; if (chs & 1) { enable |= *valp; valp++; } if (chs & 2) enable |= *valp; snd_hda_enable_beep_device(codec, enable); } if (!ctl_has_mute(kcontrol)) return 0; return snd_hda_mixer_amp_switch_put(kcontrol, ucontrol); }