Lines Matching defs:kctl
1688 * @kctl: the control element to assign
1701 * specifies if kctl->private_value is a HDA amplifier value.
1704 struct snd_kcontrol *kctl)
1710 if (kctl->id.subdevice & HDA_SUBDEV_AMP_FLAG) {
1713 nid = get_amp_nid_(kctl->private_value);
1715 if ((kctl->id.subdevice & HDA_SUBDEV_NID_FLAG) != 0 && nid == 0)
1716 nid = kctl->id.subdevice & 0xffff;
1717 if (kctl->id.subdevice & (HDA_SUBDEV_NID_FLAG|HDA_SUBDEV_AMP_FLAG))
1718 kctl->id.subdevice = 0;
1719 err = snd_ctl_add(codec->card, kctl);
1725 item->kctl = kctl;
1736 * @kctl: the control element to assign
1737 * @index: index to kctl
1743 int snd_hda_add_nid(struct hda_codec *codec, struct snd_kcontrol *kctl,
1752 item->kctl = kctl;
1758 kctl->id.name, kctl->id.index, index);
1773 snd_ctl_remove(codec->card, items[i].kctl);
1868 struct snd_kcontrol *sctl = items[i].kctl;
1896 /* call kctl->put with the given value(s) */
1897 static int put_kctl_with_value(struct snd_kcontrol *kctl, int val)
1905 kctl->put(kctl, ucontrol);
1917 struct snd_kcontrol *kctl,
1926 if (kctl->vd[0].access & SNDRV_CTL_ELEM_ACCESS_TLV_CALLBACK) {
1927 if (kctl->tlv.c != snd_hda_mixer_amp_tlv) {
1930 kctl->id.name, kctl->id.index);
1933 get_ctl_amp_tlv(kctl, _tlv);
1935 } else if (kctl->vd[0].access & SNDRV_CTL_ELEM_ACCESS_TLV_READ)
1936 tlv = kctl->tlv.p;
1964 struct snd_kcontrol *kctl,
2001 struct snd_kcontrol *kctl;
2012 kctl = snd_ctl_make_virtual_master(name, tlv);
2013 if (!kctl)
2015 kctl->vd[0].access |= access;
2016 err = snd_hda_ctl_add(codec, 0, kctl);
2020 err = map_followers(codec, followers, suffix, add_follower, kctl);
2025 put_kctl_with_value(kctl, 0);
2031 snd_ctl_apply_vmaster_followers(kctl,
2037 *ctl_ret = kctl;
2055 * Add a hw specific hook (like EAPD) with the given vmaster switch kctl.
2444 struct snd_kcontrol *kctl;
2461 kctl = find_mixer_ctl(codec, dig_mix->name, 0, 0);
2462 if (!kctl)
2464 id = kctl->id;
2466 snd_ctl_rename_id(codec->card, &kctl->id, &id);
2482 kctl = snd_ctl_new1(dig_mix, codec);
2483 if (!kctl)
2485 kctl->id.index = idx;
2486 kctl->private_value = codec->spdif_out.used - 1;
2487 err = snd_hda_ctl_add(codec, associated_nid, kctl);
2602 struct snd_kcontrol *kctl;
2607 kctl = snd_ctl_new1(&spdif_share_sw, mout);
2608 if (!kctl)
2611 return snd_hda_ctl_add(codec, mout->dig_out_nid, kctl);
2698 struct snd_kcontrol *kctl;
2708 kctl = snd_ctl_new1(dig_mix, codec);
2709 if (!kctl)
2711 kctl->private_value = nid;
2712 err = snd_hda_ctl_add(codec, nid, kctl);
3386 struct snd_kcontrol *kctl;
3391 kctl = snd_ctl_new1(knew, codec);
3392 if (!kctl)
3400 kctl->id.device = addr;
3402 kctl->id.index = idx;
3403 err = snd_hda_ctl_add(codec, 0, kctl);