Lines Matching full:mixer

5  *   Quirks and vendor-specific extensions for mixer interfaces
33 #include "mixer.h"
55 static int snd_create_std_mono_ctl_offset(struct usb_mixer_interface *mixer, in snd_create_std_mono_ctl_offset() argument
71 snd_usb_mixer_elem_init_std(&cval->head, mixer, unitid); in snd_create_std_mono_ctl_offset()
104 /* Add control to mixer */ in snd_create_std_mono_ctl_offset()
108 static int snd_create_std_mono_ctl(struct usb_mixer_interface *mixer, in snd_create_std_mono_ctl() argument
116 return snd_create_std_mono_ctl_offset(mixer, unitid, control, cmask, in snd_create_std_mono_ctl()
123 static int snd_create_std_mono_table(struct usb_mixer_interface *mixer, in snd_create_std_mono_table() argument
129 err = snd_create_std_mono_ctl(mixer, t->unitid, t->control, in snd_create_std_mono_table()
139 static int add_single_ctl_with_resume(struct usb_mixer_interface *mixer, in add_single_ctl_with_resume() argument
153 list->mixer = mixer; in add_single_ctl_with_resume()
195 struct usb_mixer_interface *mixer = urb->context; in snd_usb_soundblaster_remote_complete() local
196 const struct rc_config *rc = mixer->rc_cfg; in snd_usb_soundblaster_remote_complete()
202 code = mixer->rc_buffer[rc->offset]; in snd_usb_soundblaster_remote_complete()
204 code |= mixer->rc_buffer[rc->offset + 1] << 8; in snd_usb_soundblaster_remote_complete()
206 /* the Mute button actually changes the mixer control */ in snd_usb_soundblaster_remote_complete()
208 snd_usb_mixer_notify_id(mixer, rc->mute_mixer_id); in snd_usb_soundblaster_remote_complete()
209 mixer->rc_code = code; in snd_usb_soundblaster_remote_complete()
211 wake_up(&mixer->rc_waitq); in snd_usb_soundblaster_remote_complete()
217 struct usb_mixer_interface *mixer = hw->private_data; in snd_usb_sbrc_hwdep_read() local
223 err = wait_event_interruptible(mixer->rc_waitq, in snd_usb_sbrc_hwdep_read()
224 (rc_code = xchg(&mixer->rc_code, 0)) != 0); in snd_usb_sbrc_hwdep_read()
237 struct usb_mixer_interface *mixer = hw->private_data; in snd_usb_sbrc_hwdep_poll() local
239 poll_wait(file, &mixer->rc_waitq, wait); in snd_usb_sbrc_hwdep_poll()
240 return mixer->rc_code ? EPOLLIN | EPOLLRDNORM : 0; in snd_usb_sbrc_hwdep_poll()
243 static int snd_usb_soundblaster_remote_init(struct usb_mixer_interface *mixer) in snd_usb_soundblaster_remote_init() argument
249 if (rc_configs[i].usb_id == mixer->chip->usb_id) in snd_usb_soundblaster_remote_init()
253 mixer->rc_cfg = &rc_configs[i]; in snd_usb_soundblaster_remote_init()
255 len = mixer->rc_cfg->packet_length; in snd_usb_soundblaster_remote_init()
257 init_waitqueue_head(&mixer->rc_waitq); in snd_usb_soundblaster_remote_init()
258 err = snd_hwdep_new(mixer->chip->card, "SB remote control", 0, &hwdep); in snd_usb_soundblaster_remote_init()
262 "%s remote control", mixer->chip->card->shortname); in snd_usb_soundblaster_remote_init()
264 hwdep->private_data = mixer; in snd_usb_soundblaster_remote_init()
269 mixer->rc_urb = usb_alloc_urb(0, GFP_KERNEL); in snd_usb_soundblaster_remote_init()
270 if (!mixer->rc_urb) in snd_usb_soundblaster_remote_init()
272 mixer->rc_setup_packet = kmalloc(sizeof(*mixer->rc_setup_packet), GFP_KERNEL); in snd_usb_soundblaster_remote_init()
273 if (!mixer->rc_setup_packet) { in snd_usb_soundblaster_remote_init()
274 usb_free_urb(mixer->rc_urb); in snd_usb_soundblaster_remote_init()
275 mixer->rc_urb = NULL; in snd_usb_soundblaster_remote_init()
278 mixer->rc_setup_packet->bRequestType = in snd_usb_soundblaster_remote_init()
280 mixer->rc_setup_packet->bRequest = UAC_GET_MEM; in snd_usb_soundblaster_remote_init()
281 mixer->rc_setup_packet->wValue = cpu_to_le16(0); in snd_usb_soundblaster_remote_init()
282 mixer->rc_setup_packet->wIndex = cpu_to_le16(0); in snd_usb_soundblaster_remote_init()
283 mixer->rc_setup_packet->wLength = cpu_to_le16(len); in snd_usb_soundblaster_remote_init()
284 usb_fill_control_urb(mixer->rc_urb, mixer->chip->dev, in snd_usb_soundblaster_remote_init()
285 usb_rcvctrlpipe(mixer->chip->dev, 0), in snd_usb_soundblaster_remote_init()
286 (u8*)mixer->rc_setup_packet, mixer->rc_buffer, len, in snd_usb_soundblaster_remote_init()
287 snd_usb_soundblaster_remote_complete, mixer); in snd_usb_soundblaster_remote_init()
299 static int snd_audigy2nx_led_update(struct usb_mixer_interface *mixer, in snd_audigy2nx_led_update() argument
302 struct snd_usb_audio *chip = mixer->chip; in snd_audigy2nx_led_update()
333 struct usb_mixer_interface *mixer = list->mixer; in snd_audigy2nx_led_put() local
344 err = snd_audigy2nx_led_update(mixer, value, index); in snd_audigy2nx_led_put()
352 return snd_audigy2nx_led_update(list->mixer, priv_value >> 8, in snd_audigy2nx_led_resume()
370 static int snd_audigy2nx_controls_create(struct usb_mixer_interface *mixer) in snd_audigy2nx_controls_create() argument
378 if ((mixer->chip->usb_id == USB_ID(0x041e, 0x3042)) && i == 0) in snd_audigy2nx_controls_create()
381 if ((mixer->chip->usb_id == USB_ID(0x041e, 0x30df)) && i == 0) in snd_audigy2nx_controls_create()
384 (mixer->chip->usb_id == USB_ID(0x041e, 0x3040) || in snd_audigy2nx_controls_create()
385 mixer->chip->usb_id == USB_ID(0x041e, 0x3042) || in snd_audigy2nx_controls_create()
386 mixer->chip->usb_id == USB_ID(0x041e, 0x30df) || in snd_audigy2nx_controls_create()
387 mixer->chip->usb_id == USB_ID(0x041e, 0x3048))) in snd_audigy2nx_controls_create()
393 err = add_single_ctl_with_resume(mixer, 0, in snd_audigy2nx_controls_create()
421 struct usb_mixer_interface *mixer = entry->private_data; in snd_audigy2nx_proc_read() local
425 snd_iprintf(buffer, "%s jacks\n\n", mixer->chip->card->shortname); in snd_audigy2nx_proc_read()
426 if (mixer->chip->usb_id == USB_ID(0x041e, 0x3020)) in snd_audigy2nx_proc_read()
428 else if (mixer->chip->usb_id == USB_ID(0x041e, 0x3040) || in snd_audigy2nx_proc_read()
429 mixer->chip->usb_id == USB_ID(0x041e, 0x3048)) in snd_audigy2nx_proc_read()
436 err = snd_usb_lock_shutdown(mixer->chip); in snd_audigy2nx_proc_read()
439 err = snd_usb_ctl_msg(mixer->chip->dev, in snd_audigy2nx_proc_read()
440 usb_rcvctrlpipe(mixer->chip->dev, 0), in snd_audigy2nx_proc_read()
444 snd_usb_unlock_shutdown(mixer->chip); in snd_audigy2nx_proc_read()
468 static int snd_emu0204_ch_switch_update(struct usb_mixer_interface *mixer, in snd_emu0204_ch_switch_update() argument
471 struct snd_usb_audio *chip = mixer->chip; in snd_emu0204_ch_switch_update()
493 struct usb_mixer_interface *mixer = list->mixer; in snd_emu0204_ch_switch_put() local
504 err = snd_emu0204_ch_switch_update(mixer, value); in snd_emu0204_ch_switch_put()
510 return snd_emu0204_ch_switch_update(list->mixer, in snd_emu0204_ch_switch_resume()
523 static int snd_emu0204_controls_create(struct usb_mixer_interface *mixer) in snd_emu0204_controls_create() argument
525 return add_single_ctl_with_resume(mixer, 0, in snd_emu0204_controls_create()
539 static int snd_xonar_u1_switch_update(struct usb_mixer_interface *mixer, in snd_xonar_u1_switch_update() argument
542 struct snd_usb_audio *chip = mixer->chip; in snd_xonar_u1_switch_update()
572 err = snd_xonar_u1_switch_update(list->mixer, new_status); in snd_xonar_u1_switch_put()
578 return snd_xonar_u1_switch_update(list->mixer, in snd_xonar_u1_switch_resume()
591 static int snd_xonar_u1_controls_create(struct usb_mixer_interface *mixer) in snd_xonar_u1_controls_create() argument
593 return add_single_ctl_with_resume(mixer, 0, in snd_xonar_u1_controls_create()
681 struct snd_usb_audio *chip = list->mixer->chip; in snd_mbox1_clk_switch_get()
700 static int snd_mbox1_clk_switch_update(struct usb_mixer_interface *mixer, int is_spdif_sync) in snd_mbox1_clk_switch_update() argument
702 struct snd_usb_audio *chip = mixer->chip; in snd_mbox1_clk_switch_update()
732 struct usb_mixer_interface *mixer = list->mixer; in snd_mbox1_clk_switch_put() local
742 err = snd_mbox1_clk_switch_update(mixer, new_val); in snd_mbox1_clk_switch_put()
759 return snd_mbox1_clk_switch_update(list->mixer, list->kctl->private_value); in snd_mbox1_clk_switch_resume()
771 static int snd_mbox1_src_switch_update(struct usb_mixer_interface *mixer, int is_spdif_input) in snd_mbox1_src_switch_update() argument
773 struct snd_usb_audio *chip = mixer->chip; in snd_mbox1_src_switch_update()
802 struct usb_mixer_interface *mixer = list->mixer; in snd_mbox1_src_switch_put() local
812 err = snd_mbox1_src_switch_update(mixer, new_val); in snd_mbox1_src_switch_put()
829 return snd_mbox1_src_switch_update(list->mixer, list->kctl->private_value); in snd_mbox1_src_switch_resume()
854 static int snd_mbox1_controls_create(struct usb_mixer_interface *mixer) in snd_mbox1_controls_create() argument
857 err = add_single_ctl_with_resume(mixer, 0, in snd_mbox1_controls_create()
863 return add_single_ctl_with_resume(mixer, 1, in snd_mbox1_controls_create()
872 static int snd_ni_control_init_val(struct usb_mixer_interface *mixer, in snd_ni_control_init_val() argument
875 struct usb_device *dev = mixer->chip->dev; in snd_ni_control_init_val()
903 struct snd_usb_audio *chip = list->mixer->chip; in snd_ni_update_cur_val()
989 static int snd_nativeinstruments_create_mixer(struct usb_mixer_interface *mixer, in snd_nativeinstruments_create_mixer() argument
1008 err = add_single_ctl_with_resume(mixer, 0, in snd_nativeinstruments_create_mixer()
1013 snd_ni_control_init_val(mixer, list->kctl); in snd_nativeinstruments_create_mixer()
1032 static int snd_ftu_eff_switch_init(struct usb_mixer_interface *mixer, in snd_ftu_eff_switch_init() argument
1035 struct usb_device *dev = mixer->chip->dev; in snd_ftu_eff_switch_init()
1046 snd_usb_ctrl_intf(mixer->chip) | ((pval & 0xff) << 8), in snd_ftu_eff_switch_init()
1064 struct snd_usb_audio *chip = list->mixer->chip; in snd_ftu_eff_switch_update()
1104 static int snd_ftu_create_effect_switch(struct usb_mixer_interface *mixer, in snd_ftu_create_effect_switch() argument
1119 err = add_single_ctl_with_resume(mixer, bUnitID, in snd_ftu_create_effect_switch()
1125 snd_ftu_eff_switch_init(mixer, list->kctl); in snd_ftu_create_effect_switch()
1130 static int snd_ftu_create_volume_ctls(struct usb_mixer_interface *mixer) in snd_ftu_create_volume_ctls() argument
1146 err = snd_create_std_mono_ctl(mixer, id, control, in snd_ftu_create_volume_ctls()
1157 err = snd_create_std_mono_ctl(mixer, id, control, in snd_ftu_create_volume_ctls()
1168 /* This control needs a volume quirk, see mixer.c */
1169 static int snd_ftu_create_effect_volume_ctl(struct usb_mixer_interface *mixer) in snd_ftu_create_effect_volume_ctl() argument
1177 return snd_create_std_mono_ctl(mixer, id, control, cmask, val_type, in snd_ftu_create_effect_volume_ctl()
1181 /* This control needs a volume quirk, see mixer.c */
1182 static int snd_ftu_create_effect_duration_ctl(struct usb_mixer_interface *mixer) in snd_ftu_create_effect_duration_ctl() argument
1190 return snd_create_std_mono_ctl(mixer, id, control, cmask, val_type, in snd_ftu_create_effect_duration_ctl()
1194 /* This control needs a volume quirk, see mixer.c */
1195 static int snd_ftu_create_effect_feedback_ctl(struct usb_mixer_interface *mixer) in snd_ftu_create_effect_feedback_ctl() argument
1203 return snd_create_std_mono_ctl(mixer, id, control, cmask, val_type, in snd_ftu_create_effect_feedback_ctl()
1207 static int snd_ftu_create_effect_return_ctls(struct usb_mixer_interface *mixer) in snd_ftu_create_effect_return_ctls() argument
1221 err = snd_create_std_mono_ctl(mixer, id, control, in snd_ftu_create_effect_return_ctls()
1231 static int snd_ftu_create_effect_send_ctls(struct usb_mixer_interface *mixer) in snd_ftu_create_effect_send_ctls() argument
1245 err = snd_create_std_mono_ctl(mixer, id, control, cmask, in snd_ftu_create_effect_send_ctls()
1255 err = snd_create_std_mono_ctl(mixer, id, control, cmask, in snd_ftu_create_effect_send_ctls()
1264 static int snd_ftu_create_mixer(struct usb_mixer_interface *mixer) in snd_ftu_create_mixer() argument
1268 err = snd_ftu_create_volume_ctls(mixer); in snd_ftu_create_mixer()
1272 err = snd_ftu_create_effect_switch(mixer, 1, 6); in snd_ftu_create_mixer()
1276 err = snd_ftu_create_effect_volume_ctl(mixer); in snd_ftu_create_mixer()
1280 err = snd_ftu_create_effect_duration_ctl(mixer); in snd_ftu_create_mixer()
1284 err = snd_ftu_create_effect_feedback_ctl(mixer); in snd_ftu_create_mixer()
1288 err = snd_ftu_create_effect_return_ctls(mixer); in snd_ftu_create_mixer()
1292 err = snd_ftu_create_effect_send_ctls(mixer); in snd_ftu_create_mixer()
1302 struct usb_mixer_interface *mixer; in snd_emuusb_set_samplerate() local
1306 list_for_each_entry(mixer, &chip->mixer_list, list) { in snd_emuusb_set_samplerate()
1307 if (mixer->id_elems[unitid]) { in snd_emuusb_set_samplerate()
1308 cval = mixer_elem_list_to_info(mixer->id_elems[unitid]); in snd_emuusb_set_samplerate()
1312 snd_usb_mixer_notify_id(mixer, unitid); in snd_emuusb_set_samplerate()
1319 /* C400/C600 volume controls, this control needs a volume quirk, see mixer.c */
1320 static int snd_c400_create_vol_ctls(struct usb_mixer_interface *mixer) in snd_c400_create_vol_ctls() argument
1332 switch (mixer->chip->usb_id) { in snd_c400_create_vol_ctls()
1357 err = snd_create_std_mono_ctl_offset(mixer, id, control, in snd_c400_create_vol_ctls()
1368 /* This control needs a volume quirk, see mixer.c */
1369 static int snd_c400_create_effect_volume_ctl(struct usb_mixer_interface *mixer) in snd_c400_create_effect_volume_ctl() argument
1377 return snd_create_std_mono_ctl(mixer, id, control, cmask, val_type, in snd_c400_create_effect_volume_ctl()
1381 /* This control needs a volume quirk, see mixer.c */
1382 static int snd_c400_create_effect_duration_ctl(struct usb_mixer_interface *mixer) in snd_c400_create_effect_duration_ctl() argument
1390 return snd_create_std_mono_ctl(mixer, id, control, cmask, val_type, in snd_c400_create_effect_duration_ctl()
1394 /* This control needs a volume quirk, see mixer.c */
1395 static int snd_c400_create_effect_feedback_ctl(struct usb_mixer_interface *mixer) in snd_c400_create_effect_feedback_ctl() argument
1403 return snd_create_std_mono_ctl(mixer, id, control, cmask, val_type, in snd_c400_create_effect_feedback_ctl()
1407 static int snd_c400_create_effect_vol_ctls(struct usb_mixer_interface *mixer) in snd_c400_create_effect_vol_ctls() argument
1419 switch (mixer->chip->usb_id) { in snd_c400_create_effect_vol_ctls()
1442 err = snd_create_std_mono_ctl(mixer, id, control, in snd_c400_create_effect_vol_ctls()
1452 static int snd_c400_create_effect_ret_vol_ctls(struct usb_mixer_interface *mixer) in snd_c400_create_effect_ret_vol_ctls() argument
1464 switch (mixer->chip->usb_id) { in snd_c400_create_effect_ret_vol_ctls()
1484 err = snd_create_std_mono_ctl_offset(mixer, id, control, in snd_c400_create_effect_ret_vol_ctls()
1494 static int snd_c400_create_mixer(struct usb_mixer_interface *mixer) in snd_c400_create_mixer() argument
1498 err = snd_c400_create_vol_ctls(mixer); in snd_c400_create_mixer()
1502 err = snd_c400_create_effect_vol_ctls(mixer); in snd_c400_create_mixer()
1506 err = snd_c400_create_effect_ret_vol_ctls(mixer); in snd_c400_create_mixer()
1510 err = snd_ftu_create_effect_switch(mixer, 2, 0x43); in snd_c400_create_mixer()
1514 err = snd_c400_create_effect_volume_ctl(mixer); in snd_c400_create_mixer()
1518 err = snd_c400_create_effect_duration_ctl(mixer); in snd_c400_create_mixer()
1522 err = snd_c400_create_effect_feedback_ctl(mixer); in snd_c400_create_mixer()
1530 * The mixer units for Ebox-44 are corrupt, and even where they
1532 * stereo. So we provide a good mixer here.
1638 struct snd_usb_audio *chip = list->mixer->chip; in snd_microii_spdif_default_get()
1690 struct snd_usb_audio *chip = list->mixer->chip; in snd_microii_spdif_default_update()
1777 struct snd_usb_audio *chip = list->mixer->chip; in snd_microii_spdif_switch_update()
1840 static int snd_microii_controls_create(struct usb_mixer_interface *mixer) in snd_microii_controls_create() argument
1850 err = add_single_ctl_with_resume(mixer, 0, in snd_microii_controls_create()
1870 static int snd_soundblaster_e1_switch_update(struct usb_mixer_interface *mixer, in snd_soundblaster_e1_switch_update() argument
1873 struct snd_usb_audio *chip = mixer->chip; in snd_soundblaster_e1_switch_update()
1901 err = snd_soundblaster_e1_switch_update(list->mixer, value); in snd_soundblaster_e1_switch_put()
1907 return snd_soundblaster_e1_switch_update(list->mixer, in snd_soundblaster_e1_switch_resume()
1930 static int snd_soundblaster_e1_switch_create(struct usb_mixer_interface *mixer) in snd_soundblaster_e1_switch_create() argument
1932 return add_single_ctl_with_resume(mixer, 0, in snd_soundblaster_e1_switch_create()
2002 struct snd_usb_audio *chip = cval->head.mixer->chip; in realtek_ctl_connector_get()
2054 snd_ctl_notify(list->mixer->chip->card, SNDRV_CTL_EVENT_MASK_VALUE, in realtek_resume_jack()
2059 static int realtek_add_jack(struct usb_mixer_interface *mixer, in realtek_add_jack() argument
2068 snd_usb_mixer_elem_init_std(&cval->head, mixer, in realtek_add_jack()
2086 static int dell_dock_mixer_create(struct usb_mixer_interface *mixer) in dell_dock_mixer_create() argument
2089 struct usb_device *dev = mixer->chip->dev; in dell_dock_mixer_create()
2092 realtek_hda_set(mixer->chip, in dell_dock_mixer_create()
2105 err = realtek_add_jack(mixer, "Line Out Jack", REALTEK_LINE1); in dell_dock_mixer_create()
2108 err = realtek_add_jack(mixer, "Headphone Jack", REALTEK_HP_OUT); in dell_dock_mixer_create()
2111 err = realtek_add_jack(mixer, "Headset Mic Jack", in dell_dock_mixer_create()
2129 static int dell_dock_mixer_init(struct usb_mixer_interface *mixer) in dell_dock_mixer_init() argument
2132 dell_dock_init_vol(mixer->chip, 1, 16); in dell_dock_mixer_init()
2133 dell_dock_init_vol(mixer->chip, 2, 16); in dell_dock_mixer_init()
2134 dell_dock_init_vol(mixer->chip, 1, 19); in dell_dock_mixer_init()
2135 dell_dock_init_vol(mixer->chip, 2, 19); in dell_dock_mixer_init()
2219 struct snd_usb_audio *chip = list->mixer->chip; in snd_rme_get_status1()
2337 struct snd_usb_audio *chip = list->mixer->chip; in snd_rme_current_freq_get()
2497 static int snd_rme_controls_create(struct usb_mixer_interface *mixer) in snd_rme_controls_create() argument
2502 err = add_single_ctl_with_resume(mixer, 0, in snd_rme_controls_create()
2554 static int snd_bbfpro_ctl_update(struct usb_mixer_interface *mixer, u8 reg, in snd_bbfpro_ctl_update() argument
2559 struct snd_usb_audio *chip = mixer->chip; in snd_bbfpro_ctl_update()
2654 struct usb_mixer_interface *mixer = list->mixer; in snd_bbfpro_ctl_put() local
2681 err = snd_bbfpro_ctl_update(mixer, reg, idx, val); in snd_bbfpro_ctl_put()
2695 return snd_bbfpro_ctl_update(list->mixer, reg, idx, value); in snd_bbfpro_ctl_resume()
2698 static int snd_bbfpro_vol_update(struct usb_mixer_interface *mixer, u16 index, in snd_bbfpro_vol_update() argument
2701 struct snd_usb_audio *chip = mixer->chip; in snd_bbfpro_vol_update()
2753 struct usb_mixer_interface *mixer = list->mixer; in snd_bbfpro_vol_put() local
2770 err = snd_bbfpro_vol_update(mixer, idx, new_val); in snd_bbfpro_vol_put()
2780 return snd_bbfpro_vol_update(list->mixer, idx, val); in snd_bbfpro_vol_resume()
2802 static int snd_bbfpro_ctl_add(struct usb_mixer_interface *mixer, u8 reg, in snd_bbfpro_ctl_add() argument
2812 return add_single_ctl_with_resume(mixer, 0, snd_bbfpro_ctl_resume, in snd_bbfpro_ctl_add()
2816 static int snd_bbfpro_vol_add(struct usb_mixer_interface *mixer, u16 index, in snd_bbfpro_vol_add() argument
2824 return add_single_ctl_with_resume(mixer, 0, snd_bbfpro_vol_resume, in snd_bbfpro_vol_add()
2828 static int snd_bbfpro_controls_create(struct usb_mixer_interface *mixer) in snd_bbfpro_controls_create() argument
2848 err = snd_bbfpro_vol_add(mixer, (26 * o + i), name); in snd_bbfpro_controls_create()
2856 err = snd_bbfpro_vol_add(mixer, (26 * o + 12 + i), in snd_bbfpro_controls_create()
2864 err = snd_bbfpro_ctl_add(mixer, SND_BBFPRO_CTL_REG1, in snd_bbfpro_controls_create()
2870 err = snd_bbfpro_ctl_add(mixer, SND_BBFPRO_CTL_REG1, in snd_bbfpro_controls_create()
2876 err = snd_bbfpro_ctl_add(mixer, SND_BBFPRO_CTL_REG1, in snd_bbfpro_controls_create()
2882 err = snd_bbfpro_ctl_add(mixer, SND_BBFPRO_CTL_REG1, in snd_bbfpro_controls_create()
2889 err = snd_bbfpro_ctl_add(mixer, SND_BBFPRO_CTL_REG2, in snd_bbfpro_controls_create()
2895 err = snd_bbfpro_ctl_add(mixer, SND_BBFPRO_CTL_REG2, in snd_bbfpro_controls_create()
2901 err = snd_bbfpro_ctl_add(mixer, SND_BBFPRO_CTL_REG2, in snd_bbfpro_controls_create()
2907 err = snd_bbfpro_ctl_add(mixer, SND_BBFPRO_CTL_REG2, in snd_bbfpro_controls_create()
2913 err = snd_bbfpro_ctl_add(mixer, SND_BBFPRO_CTL_REG2, in snd_bbfpro_controls_create()
2919 err = snd_bbfpro_ctl_add(mixer, SND_BBFPRO_CTL_REG2, in snd_bbfpro_controls_create()
3268 static int snd_djm_controls_update(struct usb_mixer_interface *mixer, in snd_djm_controls_update() argument
3277 err = snd_usb_lock_shutdown(mixer->chip); in snd_djm_controls_update()
3282 mixer->chip->dev, usb_sndctrlpipe(mixer->chip->dev, 0), in snd_djm_controls_update()
3289 snd_usb_unlock_shutdown(mixer->chip); in snd_djm_controls_update()
3303 struct usb_mixer_interface *mixer = list->mixer; in snd_djm_controls_put() local
3314 return snd_djm_controls_update(mixer, device, group, value); in snd_djm_controls_put()
3324 return snd_djm_controls_update(list->mixer, device, group, value); in snd_djm_controls_resume()
3327 static int snd_djm_controls_create(struct usb_mixer_interface *mixer, in snd_djm_controls_create() argument
3351 err = snd_djm_controls_update(mixer, device_idx, i, value); in snd_djm_controls_create()
3354 err = add_single_ctl_with_resume(mixer, 0, snd_djm_controls_resume, in snd_djm_controls_create()
3362 int snd_usb_mixer_apply_create_quirk(struct usb_mixer_interface *mixer) in snd_usb_mixer_apply_create_quirk() argument
3366 err = snd_usb_soundblaster_remote_init(mixer); in snd_usb_mixer_apply_create_quirk()
3370 switch (mixer->chip->usb_id) { in snd_usb_mixer_apply_create_quirk()
3373 err = snd_us16x08_controls_create(mixer); in snd_usb_mixer_apply_create_quirk()
3380 err = snd_audigy2nx_controls_create(mixer); in snd_usb_mixer_apply_create_quirk()
3383 snd_card_ro_proc_new(mixer->chip->card, "audigy2nx", in snd_usb_mixer_apply_create_quirk()
3384 mixer, snd_audigy2nx_proc_read); in snd_usb_mixer_apply_create_quirk()
3389 err = snd_emu0204_controls_create(mixer); in snd_usb_mixer_apply_create_quirk()
3394 err = snd_c400_create_mixer(mixer); in snd_usb_mixer_apply_create_quirk()
3399 err = snd_ftu_create_mixer(mixer); in snd_usb_mixer_apply_create_quirk()
3405 err = snd_xonar_u1_controls_create(mixer); in snd_usb_mixer_apply_create_quirk()
3409 err = snd_microii_controls_create(mixer); in snd_usb_mixer_apply_create_quirk()
3413 err = snd_mbox1_controls_create(mixer); in snd_usb_mixer_apply_create_quirk()
3417 err = snd_nativeinstruments_create_mixer(mixer, in snd_usb_mixer_apply_create_quirk()
3423 err = snd_nativeinstruments_create_mixer(mixer, in snd_usb_mixer_apply_create_quirk()
3430 err = snd_create_std_mono_table(mixer, ebox44_table); in snd_usb_mixer_apply_create_quirk()
3438 err = snd_scarlett_controls_create(mixer); in snd_usb_mixer_apply_create_quirk()
3456 err = snd_scarlett2_init(mixer); in snd_usb_mixer_apply_create_quirk()
3460 err = snd_soundblaster_e1_switch_create(mixer); in snd_usb_mixer_apply_create_quirk()
3463 err = dell_dock_mixer_create(mixer); in snd_usb_mixer_apply_create_quirk()
3466 err = dell_dock_mixer_init(mixer); in snd_usb_mixer_apply_create_quirk()
3469 err = dell_dock_mixer_create(mixer); in snd_usb_mixer_apply_create_quirk()
3475 err = snd_rme_controls_create(mixer); in snd_usb_mixer_apply_create_quirk()
3479 err = snd_sc1810_init_mixer(mixer); in snd_usb_mixer_apply_create_quirk()
3482 err = snd_bbfpro_controls_create(mixer); in snd_usb_mixer_apply_create_quirk()
3485 err = snd_djm_controls_create(mixer, SND_DJM_250MK2_IDX); in snd_usb_mixer_apply_create_quirk()
3488 err = snd_djm_controls_create(mixer, SND_DJM_450_IDX); in snd_usb_mixer_apply_create_quirk()
3491 err = snd_djm_controls_create(mixer, SND_DJM_750_IDX); in snd_usb_mixer_apply_create_quirk()
3494 err = snd_djm_controls_create(mixer, SND_DJM_750MK2_IDX); in snd_usb_mixer_apply_create_quirk()
3497 err = snd_djm_controls_create(mixer, SND_DJM_850_IDX); in snd_usb_mixer_apply_create_quirk()
3500 err = snd_djm_controls_create(mixer, SND_DJM_900NXS2_IDX); in snd_usb_mixer_apply_create_quirk()
3507 void snd_usb_mixer_resume_quirk(struct usb_mixer_interface *mixer) in snd_usb_mixer_resume_quirk() argument
3509 switch (mixer->chip->usb_id) { in snd_usb_mixer_resume_quirk()
3511 dell_dock_mixer_init(mixer); in snd_usb_mixer_resume_quirk()
3516 void snd_usb_mixer_rc_memory_change(struct usb_mixer_interface *mixer, in snd_usb_mixer_rc_memory_change() argument
3519 if (!mixer->rc_cfg) in snd_usb_mixer_rc_memory_change()
3524 mixer->rc_urb->dev = mixer->chip->dev; in snd_usb_mixer_rc_memory_change()
3525 usb_submit_urb(mixer->rc_urb, GFP_ATOMIC); in snd_usb_mixer_rc_memory_change()
3534 if (mixer->chip->usb_id == USB_ID(0x041e, 0x3040) || in snd_usb_mixer_rc_memory_change()
3535 mixer->chip->usb_id == USB_ID(0x041e, 0x3048)) in snd_usb_mixer_rc_memory_change()
3536 snd_usb_mixer_notify_id(mixer, mixer->rc_cfg->mute_mixer_id); in snd_usb_mixer_rc_memory_change()
3539 usb_audio_dbg(mixer->chip, "memory change in unknown unit %d\n", unitid); in snd_usb_mixer_rc_memory_change()
3544 static void snd_dragonfly_quirk_db_scale(struct usb_mixer_interface *mixer, in snd_dragonfly_quirk_db_scale() argument
3564 usb_audio_info(mixer->chip, "applying DragonFly dB scale quirk (0-50 variant)\n"); in snd_dragonfly_quirk_db_scale()
3573 usb_audio_info(mixer->chip, "ignoring too narrow dB range on a DragonFly device"); in snd_dragonfly_quirk_db_scale()
3578 void snd_usb_mixer_fu_apply_quirk(struct usb_mixer_interface *mixer, in snd_usb_mixer_fu_apply_quirk() argument
3582 switch (mixer->chip->usb_id) { in snd_usb_mixer_fu_apply_quirk()
3585 snd_dragonfly_quirk_db_scale(mixer, cval, kctl); in snd_usb_mixer_fu_apply_quirk()