static int cs4208_spdif_sw_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { struct hda_codec *codec = snd_kcontrol_chip(kcontrol); struct cs_spec *spec = codec->spec; hda_nid_t pin = spec->gen.autocfg.dig_out_pins[0]; int pinctl = ucontrol->value.integer.value[0] ? PIN_OUT : 0; snd_hda_set_pin_ctl_cache(codec, pin, pinctl); return spec->spdif_sw_put(kcontrol, ucontrol); }
static void set_pin_targets(struct hda_codec *codec, const struct hda_pintbl *cfg) { for (; cfg->nid; cfg++) snd_hda_set_pin_ctl_cache(codec, cfg->nid, cfg->val); }