Lines Matching refs:cval

140 #define filter_error(cval, err) \  argument
141 ((cval)->head.mixer->ignore_ctl_error ? 0 : (err))
154 struct usb_mixer_elem_info *cval) in check_mapped_dB() argument
157 cval->dBmin = p->dB->min; in check_mapped_dB()
158 cval->dBmax = p->dB->max; in check_mapped_dB()
159 cval->initialized = 1; in check_mapped_dB()
213 static int convert_signed_value(struct usb_mixer_elem_info *cval, int val) in convert_signed_value() argument
215 switch (cval->val_type) { in convert_signed_value()
243 static int convert_bytes_value(struct usb_mixer_elem_info *cval, int val) in convert_bytes_value() argument
245 switch (cval->val_type) { in convert_bytes_value()
260 static int get_relative_value(struct usb_mixer_elem_info *cval, int val) in get_relative_value() argument
262 if (!cval->res) in get_relative_value()
263 cval->res = 1; in get_relative_value()
264 if (val < cval->min) in get_relative_value()
266 else if (val >= cval->max) in get_relative_value()
267 return (cval->max - cval->min + cval->res - 1) / cval->res; in get_relative_value()
269 return (val - cval->min) / cval->res; in get_relative_value()
272 static int get_abs_value(struct usb_mixer_elem_info *cval, int val) in get_abs_value() argument
275 return cval->min; in get_abs_value()
276 if (!cval->res) in get_abs_value()
277 cval->res = 1; in get_abs_value()
278 val *= cval->res; in get_abs_value()
279 val += cval->min; in get_abs_value()
280 if (val > cval->max) in get_abs_value()
281 return cval->max; in get_abs_value()
305 static int get_ctl_value_v1(struct usb_mixer_elem_info *cval, int request, in get_ctl_value_v1() argument
308 struct snd_usb_audio *chip = cval->head.mixer->chip; in get_ctl_value_v1()
310 int val_len = cval->val_type >= USB_MIXER_S16 ? 2 : 1; in get_ctl_value_v1()
319 idx = snd_usb_ctrl_intf(chip) | (cval->head.id << 8); in get_ctl_value_v1()
323 *value_ret = convert_signed_value(cval, snd_usb_combine_bytes(buf, val_len)); in get_ctl_value_v1()
330 request, validx, idx, cval->val_type); in get_ctl_value_v1()
338 static int get_ctl_value_v2(struct usb_mixer_elem_info *cval, int request, in get_ctl_value_v2() argument
341 struct snd_usb_audio *chip = cval->head.mixer->chip; in get_ctl_value_v2()
349 size = uac2_ctl_value_size(cval->val_type); in get_ctl_value_v2()
361 idx = snd_usb_ctrl_intf(chip) | (cval->head.id << 8); in get_ctl_value_v2()
371 request, validx, idx, cval->val_type); in get_ctl_value_v2()
394 *value_ret = convert_signed_value(cval, snd_usb_combine_bytes(val, sizeof(__u16))); in get_ctl_value_v2()
399 static int get_ctl_value(struct usb_mixer_elem_info *cval, int request, in get_ctl_value() argument
402 validx += cval->idx_off; in get_ctl_value()
404 return (cval->head.mixer->protocol == UAC_VERSION_1) ? in get_ctl_value()
405 get_ctl_value_v1(cval, request, validx, value_ret) : in get_ctl_value()
406 get_ctl_value_v2(cval, request, validx, value_ret); in get_ctl_value()
409 static int get_cur_ctl_value(struct usb_mixer_elem_info *cval, in get_cur_ctl_value() argument
412 return get_ctl_value(cval, UAC_GET_CUR, validx, value); in get_cur_ctl_value()
416 static inline int get_cur_mix_raw(struct usb_mixer_elem_info *cval, in get_cur_mix_raw() argument
419 return get_ctl_value(cval, UAC_GET_CUR, in get_cur_mix_raw()
420 (cval->control << 8) | channel, in get_cur_mix_raw()
424 int snd_usb_get_cur_mix_value(struct usb_mixer_elem_info *cval, in snd_usb_get_cur_mix_value() argument
429 if (cval->cached & (1 << channel)) { in snd_usb_get_cur_mix_value()
430 *value = cval->cache_val[index]; in snd_usb_get_cur_mix_value()
433 err = get_cur_mix_raw(cval, channel, value); in snd_usb_get_cur_mix_value()
435 if (!cval->head.mixer->ignore_ctl_error) in snd_usb_get_cur_mix_value()
436 usb_audio_dbg(cval->head.mixer->chip, in snd_usb_get_cur_mix_value()
438 cval->control, channel, err); in snd_usb_get_cur_mix_value()
441 cval->cached |= 1 << channel; in snd_usb_get_cur_mix_value()
442 cval->cache_val[index] = *value; in snd_usb_get_cur_mix_value()
450 int snd_usb_mixer_set_ctl_value(struct usb_mixer_elem_info *cval, in snd_usb_mixer_set_ctl_value() argument
453 struct snd_usb_audio *chip = cval->head.mixer->chip; in snd_usb_mixer_set_ctl_value()
457 validx += cval->idx_off; in snd_usb_mixer_set_ctl_value()
459 if (cval->head.mixer->protocol == UAC_VERSION_1) { in snd_usb_mixer_set_ctl_value()
460 val_len = cval->val_type >= USB_MIXER_S16 ? 2 : 1; in snd_usb_mixer_set_ctl_value()
462 val_len = uac2_ctl_value_size(cval->val_type); in snd_usb_mixer_set_ctl_value()
473 value_set = convert_bytes_value(cval, value_set); in snd_usb_mixer_set_ctl_value()
484 idx = snd_usb_ctrl_intf(chip) | (cval->head.id << 8); in snd_usb_mixer_set_ctl_value()
494 request, validx, idx, cval->val_type, buf[0], buf[1]); in snd_usb_mixer_set_ctl_value()
502 static int set_cur_ctl_value(struct usb_mixer_elem_info *cval, in set_cur_ctl_value() argument
505 return snd_usb_mixer_set_ctl_value(cval, UAC_SET_CUR, validx, value); in set_cur_ctl_value()
508 int snd_usb_set_cur_mix_value(struct usb_mixer_elem_info *cval, int channel, in snd_usb_set_cur_mix_value() argument
513 cval->master_readonly : in snd_usb_set_cur_mix_value()
514 cval->ch_readonly & (1 << (channel - 1)); in snd_usb_set_cur_mix_value()
517 usb_audio_dbg(cval->head.mixer->chip, in snd_usb_set_cur_mix_value()
519 __func__, channel, cval->control); in snd_usb_set_cur_mix_value()
523 err = snd_usb_mixer_set_ctl_value(cval, in snd_usb_set_cur_mix_value()
524 UAC_SET_CUR, (cval->control << 8) | channel, in snd_usb_set_cur_mix_value()
528 cval->cached |= 1 << channel; in snd_usb_set_cur_mix_value()
529 cval->cache_val[index] = value; in snd_usb_set_cur_mix_value()
539 struct usb_mixer_elem_info *cval = kcontrol->private_data; in snd_usb_mixer_vol_tlv() local
544 scale[2] = cval->dBmin; in snd_usb_mixer_vol_tlv()
545 scale[3] = cval->dBmax; in snd_usb_mixer_vol_tlv()
844 static void volume_control_quirks(struct usb_mixer_elem_info *cval, in volume_control_quirks() argument
847 struct snd_usb_audio *chip = cval->head.mixer->chip; in volume_control_quirks()
852 cval->min = 0x0000; in volume_control_quirks()
853 cval->max = 0xffff; in volume_control_quirks()
854 cval->res = 0x00e6; in volume_control_quirks()
859 cval->min = 0x00; in volume_control_quirks()
860 cval->max = 0xff; in volume_control_quirks()
864 cval->min = 0xb706; in volume_control_quirks()
865 cval->max = 0xff7b; in volume_control_quirks()
866 cval->res = 0x0073; in volume_control_quirks()
871 cval->min = 0xb5fb; /* -73 dB = 0xb6ff */ in volume_control_quirks()
872 cval->max = 0xfcfe; in volume_control_quirks()
873 cval->res = 0x0073; in volume_control_quirks()
882 cval->min = 0x0000; in volume_control_quirks()
883 cval->max = 0x7f00; in volume_control_quirks()
884 cval->res = 0x0100; in volume_control_quirks()
891 cval->min = 0x00; in volume_control_quirks()
892 cval->max = 0x7f; in volume_control_quirks()
907 cval->min == -15616) { in volume_control_quirks()
910 cval->max = -256; in volume_control_quirks()
918 cval->min = 6080; in volume_control_quirks()
919 cval->max = 8768; in volume_control_quirks()
920 cval->res = 192; in volume_control_quirks()
941 cval->res = 384; in volume_control_quirks()
950 static int get_min_max_with_quirks(struct usb_mixer_elem_info *cval, in get_min_max_with_quirks() argument
954 cval->min = default_min; in get_min_max_with_quirks()
955 cval->max = cval->min + 1; in get_min_max_with_quirks()
956 cval->res = 1; in get_min_max_with_quirks()
957 cval->dBmin = cval->dBmax = 0; in get_min_max_with_quirks()
959 if (cval->val_type == USB_MIXER_BOOLEAN || in get_min_max_with_quirks()
960 cval->val_type == USB_MIXER_INV_BOOLEAN) { in get_min_max_with_quirks()
961 cval->initialized = 1; in get_min_max_with_quirks()
964 if (cval->cmask) { in get_min_max_with_quirks()
967 if (cval->cmask & (1 << i)) { in get_min_max_with_quirks()
972 if (get_ctl_value(cval, UAC_GET_MAX, (cval->control << 8) | minchn, &cval->max) < 0 || in get_min_max_with_quirks()
973 get_ctl_value(cval, UAC_GET_MIN, (cval->control << 8) | minchn, &cval->min) < 0) { in get_min_max_with_quirks()
974 usb_audio_err(cval->head.mixer->chip, in get_min_max_with_quirks()
976 cval->head.id, snd_usb_ctrl_intf(cval->head.mixer->chip), in get_min_max_with_quirks()
977 cval->control, cval->head.id); in get_min_max_with_quirks()
980 if (get_ctl_value(cval, UAC_GET_RES, in get_min_max_with_quirks()
981 (cval->control << 8) | minchn, in get_min_max_with_quirks()
982 &cval->res) < 0) { in get_min_max_with_quirks()
983 cval->res = 1; in get_min_max_with_quirks()
985 int last_valid_res = cval->res; in get_min_max_with_quirks()
987 while (cval->res > 1) { in get_min_max_with_quirks()
988 if (snd_usb_mixer_set_ctl_value(cval, UAC_SET_RES, in get_min_max_with_quirks()
989 (cval->control << 8) | minchn, in get_min_max_with_quirks()
990 cval->res / 2) < 0) in get_min_max_with_quirks()
992 cval->res /= 2; in get_min_max_with_quirks()
994 if (get_ctl_value(cval, UAC_GET_RES, in get_min_max_with_quirks()
995 (cval->control << 8) | minchn, &cval->res) < 0) in get_min_max_with_quirks()
996 cval->res = last_valid_res; in get_min_max_with_quirks()
998 if (cval->res == 0) in get_min_max_with_quirks()
999 cval->res = 1; in get_min_max_with_quirks()
1007 if (cval->min + cval->res < cval->max) { in get_min_max_with_quirks()
1008 int last_valid_res = cval->res; in get_min_max_with_quirks()
1010 get_cur_mix_raw(cval, minchn, &saved); in get_min_max_with_quirks()
1013 if (test < cval->max) in get_min_max_with_quirks()
1014 test += cval->res; in get_min_max_with_quirks()
1016 test -= cval->res; in get_min_max_with_quirks()
1017 if (test < cval->min || test > cval->max || in get_min_max_with_quirks()
1018 snd_usb_set_cur_mix_value(cval, minchn, 0, test) || in get_min_max_with_quirks()
1019 get_cur_mix_raw(cval, minchn, &check)) { in get_min_max_with_quirks()
1020 cval->res = last_valid_res; in get_min_max_with_quirks()
1025 cval->res *= 2; in get_min_max_with_quirks()
1027 snd_usb_set_cur_mix_value(cval, minchn, 0, saved); in get_min_max_with_quirks()
1030 cval->initialized = 1; in get_min_max_with_quirks()
1034 volume_control_quirks(cval, kctl); in get_min_max_with_quirks()
1039 cval->dBmin = (convert_signed_value(cval, cval->min) * 100) / 256; in get_min_max_with_quirks()
1040 cval->dBmax = (convert_signed_value(cval, cval->max) * 100) / 256; in get_min_max_with_quirks()
1041 if (cval->dBmin > cval->dBmax) { in get_min_max_with_quirks()
1043 if (cval->dBmin < 0) in get_min_max_with_quirks()
1044 cval->dBmax = 0; in get_min_max_with_quirks()
1045 else if (cval->dBmin > 0) in get_min_max_with_quirks()
1046 cval->dBmin = 0; in get_min_max_with_quirks()
1047 if (cval->dBmin > cval->dBmax) { in get_min_max_with_quirks()
1056 #define get_min_max(cval, def) get_min_max_with_quirks(cval, def, NULL) argument
1062 struct usb_mixer_elem_info *cval = kcontrol->private_data; in mixer_ctl_feature_info() local
1064 if (cval->val_type == USB_MIXER_BOOLEAN || in mixer_ctl_feature_info()
1065 cval->val_type == USB_MIXER_INV_BOOLEAN) in mixer_ctl_feature_info()
1069 uinfo->count = cval->channels; in mixer_ctl_feature_info()
1070 if (cval->val_type == USB_MIXER_BOOLEAN || in mixer_ctl_feature_info()
1071 cval->val_type == USB_MIXER_INV_BOOLEAN) { in mixer_ctl_feature_info()
1075 if (!cval->initialized) { in mixer_ctl_feature_info()
1076 get_min_max_with_quirks(cval, 0, kcontrol); in mixer_ctl_feature_info()
1077 if (cval->initialized && cval->dBmin >= cval->dBmax) { in mixer_ctl_feature_info()
1081 snd_ctl_notify(cval->head.mixer->chip->card, in mixer_ctl_feature_info()
1088 (cval->max - cval->min + cval->res - 1) / cval->res; in mixer_ctl_feature_info()
1097 struct usb_mixer_elem_info *cval = kcontrol->private_data; in mixer_ctl_feature_get() local
1100 ucontrol->value.integer.value[0] = cval->min; in mixer_ctl_feature_get()
1101 if (cval->cmask) { in mixer_ctl_feature_get()
1104 if (!(cval->cmask & (1 << c))) in mixer_ctl_feature_get()
1106 err = snd_usb_get_cur_mix_value(cval, c + 1, cnt, &val); in mixer_ctl_feature_get()
1108 return filter_error(cval, err); in mixer_ctl_feature_get()
1109 val = get_relative_value(cval, val); in mixer_ctl_feature_get()
1116 err = snd_usb_get_cur_mix_value(cval, 0, 0, &val); in mixer_ctl_feature_get()
1118 return filter_error(cval, err); in mixer_ctl_feature_get()
1119 val = get_relative_value(cval, val); in mixer_ctl_feature_get()
1129 struct usb_mixer_elem_info *cval = kcontrol->private_data; in mixer_ctl_feature_put() local
1133 if (cval->cmask) { in mixer_ctl_feature_put()
1136 if (!(cval->cmask & (1 << c))) in mixer_ctl_feature_put()
1138 err = snd_usb_get_cur_mix_value(cval, c + 1, cnt, &oval); in mixer_ctl_feature_put()
1140 return filter_error(cval, err); in mixer_ctl_feature_put()
1142 val = get_abs_value(cval, val); in mixer_ctl_feature_put()
1144 snd_usb_set_cur_mix_value(cval, c + 1, cnt, val); in mixer_ctl_feature_put()
1151 err = snd_usb_get_cur_mix_value(cval, 0, 0, &oval); in mixer_ctl_feature_put()
1153 return filter_error(cval, err); in mixer_ctl_feature_put()
1155 val = get_abs_value(cval, val); in mixer_ctl_feature_put()
1157 snd_usb_set_cur_mix_value(cval, 0, 0, val); in mixer_ctl_feature_put()
1234 struct usb_mixer_elem_info *cval; in build_feature_ctl() local
1249 cval = kzalloc(sizeof(*cval), GFP_KERNEL); in build_feature_ctl()
1250 if (!cval) in build_feature_ctl()
1252 snd_usb_mixer_elem_init_std(&cval->head, state->mixer, unitid); in build_feature_ctl()
1253 cval->control = control; in build_feature_ctl()
1254 cval->cmask = ctl_mask; in build_feature_ctl()
1257 cval->val_type = ctl_info->type; in build_feature_ctl()
1259 cval->val_type = ctl_info->type_uac2 >= 0 ? in build_feature_ctl()
1263 cval->channels = 1; /* master channel */ in build_feature_ctl()
1264 cval->master_readonly = readonly_mask; in build_feature_ctl()
1270 cval->channels = c; in build_feature_ctl()
1271 cval->ch_readonly = readonly_mask; in build_feature_ctl()
1279 if (cval->channels == readonly_mask) in build_feature_ctl()
1280 kctl = snd_ctl_new1(&usb_feature_unit_ctl_ro, cval); in build_feature_ctl()
1282 kctl = snd_ctl_new1(&usb_feature_unit_ctl, cval); in build_feature_ctl()
1286 kfree(cval); in build_feature_ctl()
1345 get_min_max_with_quirks(cval, 0, kctl); in build_feature_ctl()
1348 check_mapped_dB(map, cval); in build_feature_ctl()
1349 if (cval->dBmin < cval->dBmax || !cval->initialized) { in build_feature_ctl()
1357 snd_usb_mixer_fu_apply_quirk(state->mixer, cval, unitid, kctl); in build_feature_ctl()
1359 range = (cval->max - cval->min) / cval->res; in build_feature_ctl()
1371 cval->head.id, kctl->id.name, cval->channels, in build_feature_ctl()
1372 cval->min, cval->max, cval->res); in build_feature_ctl()
1376 cval->head.id, kctl->id.name, cval->channels, in build_feature_ctl()
1377 cval->min, cval->max, cval->res); in build_feature_ctl()
1378 snd_usb_mixer_add_control(&cval->head, kctl); in build_feature_ctl()
1538 struct usb_mixer_elem_info *cval; in build_mixer_unit_ctl() local
1548 cval = kzalloc(sizeof(*cval), GFP_KERNEL); in build_mixer_unit_ctl()
1549 if (!cval) in build_mixer_unit_ctl()
1552 snd_usb_mixer_elem_init_std(&cval->head, state->mixer, unitid); in build_mixer_unit_ctl()
1553 cval->control = in_ch + 1; /* based on 1 */ in build_mixer_unit_ctl()
1554 cval->val_type = USB_MIXER_S16; in build_mixer_unit_ctl()
1559 cval->cmask |= (1 << i); in build_mixer_unit_ctl()
1560 cval->channels++; in build_mixer_unit_ctl()
1565 get_min_max(cval, 0); in build_mixer_unit_ctl()
1567 kctl = snd_ctl_new1(&usb_feature_unit_ctl, cval); in build_mixer_unit_ctl()
1570 kfree(cval); in build_mixer_unit_ctl()
1584 cval->head.id, kctl->id.name, cval->channels, cval->min, cval->max); in build_mixer_unit_ctl()
1585 snd_usb_mixer_add_control(&cval->head, kctl); in build_mixer_unit_ctl()
1648 struct usb_mixer_elem_info *cval = kcontrol->private_data; in mixer_ctl_procunit_get() local
1651 err = get_cur_ctl_value(cval, cval->control << 8, &val); in mixer_ctl_procunit_get()
1653 ucontrol->value.integer.value[0] = cval->min; in mixer_ctl_procunit_get()
1654 return filter_error(cval, err); in mixer_ctl_procunit_get()
1656 val = get_relative_value(cval, val); in mixer_ctl_procunit_get()
1665 struct usb_mixer_elem_info *cval = kcontrol->private_data; in mixer_ctl_procunit_put() local
1668 err = get_cur_ctl_value(cval, cval->control << 8, &oval); in mixer_ctl_procunit_put()
1670 return filter_error(cval, err); in mixer_ctl_procunit_put()
1672 val = get_abs_value(cval, val); in mixer_ctl_procunit_put()
1674 set_cur_ctl_value(cval, cval->control << 8, val); in mixer_ctl_procunit_put()
1789 struct usb_mixer_elem_info *cval; in build_audio_procunit() local
1829 cval = kzalloc(sizeof(*cval), GFP_KERNEL); in build_audio_procunit()
1830 if (!cval) in build_audio_procunit()
1832 snd_usb_mixer_elem_init_std(&cval->head, state->mixer, unitid); in build_audio_procunit()
1833 cval->control = valinfo->control; in build_audio_procunit()
1834 cval->val_type = valinfo->val_type; in build_audio_procunit()
1835 cval->channels = 1; in build_audio_procunit()
1838 if (type == UAC_PROCESS_UP_DOWNMIX && cval->control == UAC_UD_MODE_SELECT) { in build_audio_procunit()
1841 cval->min = 1; in build_audio_procunit()
1842 cval->max = control_spec[0]; in build_audio_procunit()
1843 cval->res = 1; in build_audio_procunit()
1844 cval->initialized = 1; in build_audio_procunit()
1851 cval->min = 0; in build_audio_procunit()
1852 cval->max = 5; in build_audio_procunit()
1853 cval->res = 1; in build_audio_procunit()
1854 cval->initialized = 1; in build_audio_procunit()
1856 get_min_max(cval, valinfo->min_value); in build_audio_procunit()
1859 kctl = snd_ctl_new1(&mixer_procunit_ctl, cval); in build_audio_procunit()
1861 kfree(cval); in build_audio_procunit()
1885 cval->head.id, kctl->id.name, cval->channels, in build_audio_procunit()
1886 cval->min, cval->max); in build_audio_procunit()
1888 err = snd_usb_mixer_add_control(&cval->head, kctl); in build_audio_procunit()
1924 struct usb_mixer_elem_info *cval = kcontrol->private_data; in mixer_ctl_selector_info() local
1929 return snd_ctl_enum_info(uinfo, 1, cval->max, itemlist); in mixer_ctl_selector_info()
1936 struct usb_mixer_elem_info *cval = kcontrol->private_data; in mixer_ctl_selector_get() local
1939 err = get_cur_ctl_value(cval, cval->control << 8, &val); in mixer_ctl_selector_get()
1942 return filter_error(cval, err); in mixer_ctl_selector_get()
1944 val = get_relative_value(cval, val); in mixer_ctl_selector_get()
1953 struct usb_mixer_elem_info *cval = kcontrol->private_data; in mixer_ctl_selector_put() local
1956 err = get_cur_ctl_value(cval, cval->control << 8, &oval); in mixer_ctl_selector_put()
1958 return filter_error(cval, err); in mixer_ctl_selector_put()
1960 val = get_abs_value(cval, val); in mixer_ctl_selector_put()
1962 set_cur_ctl_value(cval, cval->control << 8, val); in mixer_ctl_selector_put()
1986 struct usb_mixer_elem_info *cval = kctl->private_data; in usb_mixer_selector_elem_free() local
1987 num_ins = cval->max; in usb_mixer_selector_elem_free()
1988 kfree(cval); in usb_mixer_selector_elem_free()
2009 struct usb_mixer_elem_info *cval; in parse_audio_selector_unit() local
2032 cval = kzalloc(sizeof(*cval), GFP_KERNEL); in parse_audio_selector_unit()
2033 if (!cval) in parse_audio_selector_unit()
2035 snd_usb_mixer_elem_init_std(&cval->head, state->mixer, unitid); in parse_audio_selector_unit()
2036 cval->val_type = USB_MIXER_U8; in parse_audio_selector_unit()
2037 cval->channels = 1; in parse_audio_selector_unit()
2038 cval->min = 1; in parse_audio_selector_unit()
2039 cval->max = desc->bNrInPins; in parse_audio_selector_unit()
2040 cval->res = 1; in parse_audio_selector_unit()
2041 cval->initialized = 1; in parse_audio_selector_unit()
2044 cval->control = 0; in parse_audio_selector_unit()
2046 cval->control = (desc->bDescriptorSubtype == UAC2_CLOCK_SELECTOR) ? in parse_audio_selector_unit()
2051 kfree(cval); in parse_audio_selector_unit()
2063 kfree(cval); in parse_audio_selector_unit()
2074 kctl = snd_ctl_new1(&mixer_selectunit_ctl, cval); in parse_audio_selector_unit()
2078 kfree(cval); in parse_audio_selector_unit()
2106 cval->head.id, kctl->id.name, desc->bNrInPins); in parse_audio_selector_unit()
2107 return snd_usb_mixer_add_control(&cval->head, kctl); in parse_audio_selector_unit()
2262 struct usb_mixer_elem_info *cval = (struct usb_mixer_elem_info *)list; in snd_usb_mixer_dump_cval() local
2266 "channels=%i, type=\"%s\"\n", cval->head.id, in snd_usb_mixer_dump_cval()
2267 cval->control, cval->cmask, cval->channels, in snd_usb_mixer_dump_cval()
2268 val_types[cval->val_type]); in snd_usb_mixer_dump_cval()
2270 cval->min, cval->max, cval->dBmin, cval->dBmax); in snd_usb_mixer_dump_cval()
2537 struct usb_mixer_elem_info *cval = (struct usb_mixer_elem_info *)list; in restore_mixer_value() local
2540 if (cval->cmask) { in restore_mixer_value()
2543 if (!(cval->cmask & (1 << c))) in restore_mixer_value()
2545 if (cval->cached & (1 << (c + 1))) { in restore_mixer_value()
2546 err = snd_usb_set_cur_mix_value(cval, c + 1, idx, in restore_mixer_value()
2547 cval->cache_val[idx]); in restore_mixer_value()
2555 if (cval->cached) { in restore_mixer_value()
2556 err = snd_usb_set_cur_mix_value(cval, 0, 0, *cval->cache_val); in restore_mixer_value()