Lines Matching full:mixer

5  *   Quirks and vendor-specific extensions for mixer interfaces
32 #include "mixer.h"
54 static int snd_create_std_mono_ctl_offset(struct usb_mixer_interface *mixer, in snd_create_std_mono_ctl_offset() argument
70 snd_usb_mixer_elem_init_std(&cval->head, mixer, unitid); in snd_create_std_mono_ctl_offset()
103 /* Add control to mixer */ in snd_create_std_mono_ctl_offset()
107 static int snd_create_std_mono_ctl(struct usb_mixer_interface *mixer, in snd_create_std_mono_ctl() argument
115 return snd_create_std_mono_ctl_offset(mixer, unitid, control, cmask, in snd_create_std_mono_ctl()
122 static int snd_create_std_mono_table(struct usb_mixer_interface *mixer, in snd_create_std_mono_table() argument
128 err = snd_create_std_mono_ctl(mixer, t->unitid, t->control, in snd_create_std_mono_table()
138 static int add_single_ctl_with_resume(struct usb_mixer_interface *mixer, in add_single_ctl_with_resume() argument
152 list->mixer = mixer; in add_single_ctl_with_resume()
194 struct usb_mixer_interface *mixer = urb->context; in snd_usb_soundblaster_remote_complete() local
195 const struct rc_config *rc = mixer->rc_cfg; in snd_usb_soundblaster_remote_complete()
201 code = mixer->rc_buffer[rc->offset]; in snd_usb_soundblaster_remote_complete()
203 code |= mixer->rc_buffer[rc->offset + 1] << 8; in snd_usb_soundblaster_remote_complete()
205 /* the Mute button actually changes the mixer control */ in snd_usb_soundblaster_remote_complete()
207 snd_usb_mixer_notify_id(mixer, rc->mute_mixer_id); in snd_usb_soundblaster_remote_complete()
208 mixer->rc_code = code; in snd_usb_soundblaster_remote_complete()
210 wake_up(&mixer->rc_waitq); in snd_usb_soundblaster_remote_complete()
216 struct usb_mixer_interface *mixer = hw->private_data; in snd_usb_sbrc_hwdep_read() local
222 err = wait_event_interruptible(mixer->rc_waitq, in snd_usb_sbrc_hwdep_read()
223 (rc_code = xchg(&mixer->rc_code, 0)) != 0); in snd_usb_sbrc_hwdep_read()
236 struct usb_mixer_interface *mixer = hw->private_data; in snd_usb_sbrc_hwdep_poll() local
238 poll_wait(file, &mixer->rc_waitq, wait); in snd_usb_sbrc_hwdep_poll()
239 return mixer->rc_code ? EPOLLIN | EPOLLRDNORM : 0; in snd_usb_sbrc_hwdep_poll()
242 static int snd_usb_soundblaster_remote_init(struct usb_mixer_interface *mixer) in snd_usb_soundblaster_remote_init() argument
248 if (rc_configs[i].usb_id == mixer->chip->usb_id) in snd_usb_soundblaster_remote_init()
252 mixer->rc_cfg = &rc_configs[i]; in snd_usb_soundblaster_remote_init()
254 len = mixer->rc_cfg->packet_length; in snd_usb_soundblaster_remote_init()
256 init_waitqueue_head(&mixer->rc_waitq); in snd_usb_soundblaster_remote_init()
257 err = snd_hwdep_new(mixer->chip->card, "SB remote control", 0, &hwdep); in snd_usb_soundblaster_remote_init()
261 "%s remote control", mixer->chip->card->shortname); in snd_usb_soundblaster_remote_init()
263 hwdep->private_data = mixer; in snd_usb_soundblaster_remote_init()
268 mixer->rc_urb = usb_alloc_urb(0, GFP_KERNEL); in snd_usb_soundblaster_remote_init()
269 if (!mixer->rc_urb) in snd_usb_soundblaster_remote_init()
271 mixer->rc_setup_packet = kmalloc(sizeof(*mixer->rc_setup_packet), GFP_KERNEL); in snd_usb_soundblaster_remote_init()
272 if (!mixer->rc_setup_packet) { in snd_usb_soundblaster_remote_init()
273 usb_free_urb(mixer->rc_urb); in snd_usb_soundblaster_remote_init()
274 mixer->rc_urb = NULL; in snd_usb_soundblaster_remote_init()
277 mixer->rc_setup_packet->bRequestType = in snd_usb_soundblaster_remote_init()
279 mixer->rc_setup_packet->bRequest = UAC_GET_MEM; in snd_usb_soundblaster_remote_init()
280 mixer->rc_setup_packet->wValue = cpu_to_le16(0); in snd_usb_soundblaster_remote_init()
281 mixer->rc_setup_packet->wIndex = cpu_to_le16(0); in snd_usb_soundblaster_remote_init()
282 mixer->rc_setup_packet->wLength = cpu_to_le16(len); in snd_usb_soundblaster_remote_init()
283 usb_fill_control_urb(mixer->rc_urb, mixer->chip->dev, in snd_usb_soundblaster_remote_init()
284 usb_rcvctrlpipe(mixer->chip->dev, 0), in snd_usb_soundblaster_remote_init()
285 (u8*)mixer->rc_setup_packet, mixer->rc_buffer, len, in snd_usb_soundblaster_remote_init()
286 snd_usb_soundblaster_remote_complete, mixer); in snd_usb_soundblaster_remote_init()
298 static int snd_audigy2nx_led_update(struct usb_mixer_interface *mixer, in snd_audigy2nx_led_update() argument
301 struct snd_usb_audio *chip = mixer->chip; in snd_audigy2nx_led_update()
332 struct usb_mixer_interface *mixer = list->mixer; in snd_audigy2nx_led_put() local
343 err = snd_audigy2nx_led_update(mixer, value, index); in snd_audigy2nx_led_put()
351 return snd_audigy2nx_led_update(list->mixer, priv_value >> 8, in snd_audigy2nx_led_resume()
369 static int snd_audigy2nx_controls_create(struct usb_mixer_interface *mixer) in snd_audigy2nx_controls_create() argument
377 if ((mixer->chip->usb_id == USB_ID(0x041e, 0x3042)) && i == 0) in snd_audigy2nx_controls_create()
380 if ((mixer->chip->usb_id == USB_ID(0x041e, 0x30df)) && i == 0) in snd_audigy2nx_controls_create()
383 (mixer->chip->usb_id == USB_ID(0x041e, 0x3040) || in snd_audigy2nx_controls_create()
384 mixer->chip->usb_id == USB_ID(0x041e, 0x3042) || in snd_audigy2nx_controls_create()
385 mixer->chip->usb_id == USB_ID(0x041e, 0x30df) || in snd_audigy2nx_controls_create()
386 mixer->chip->usb_id == USB_ID(0x041e, 0x3048))) in snd_audigy2nx_controls_create()
392 err = add_single_ctl_with_resume(mixer, 0, in snd_audigy2nx_controls_create()
420 struct usb_mixer_interface *mixer = entry->private_data; in snd_audigy2nx_proc_read() local
424 snd_iprintf(buffer, "%s jacks\n\n", mixer->chip->card->shortname); in snd_audigy2nx_proc_read()
425 if (mixer->chip->usb_id == USB_ID(0x041e, 0x3020)) in snd_audigy2nx_proc_read()
427 else if (mixer->chip->usb_id == USB_ID(0x041e, 0x3040) || in snd_audigy2nx_proc_read()
428 mixer->chip->usb_id == USB_ID(0x041e, 0x3048)) in snd_audigy2nx_proc_read()
435 err = snd_usb_lock_shutdown(mixer->chip); in snd_audigy2nx_proc_read()
438 err = snd_usb_ctl_msg(mixer->chip->dev, in snd_audigy2nx_proc_read()
439 usb_rcvctrlpipe(mixer->chip->dev, 0), in snd_audigy2nx_proc_read()
443 snd_usb_unlock_shutdown(mixer->chip); in snd_audigy2nx_proc_read()
467 static int snd_emu0204_ch_switch_update(struct usb_mixer_interface *mixer, in snd_emu0204_ch_switch_update() argument
470 struct snd_usb_audio *chip = mixer->chip; in snd_emu0204_ch_switch_update()
492 struct usb_mixer_interface *mixer = list->mixer; in snd_emu0204_ch_switch_put() local
503 err = snd_emu0204_ch_switch_update(mixer, value); in snd_emu0204_ch_switch_put()
509 return snd_emu0204_ch_switch_update(list->mixer, in snd_emu0204_ch_switch_resume()
522 static int snd_emu0204_controls_create(struct usb_mixer_interface *mixer) in snd_emu0204_controls_create() argument
524 return add_single_ctl_with_resume(mixer, 0, in snd_emu0204_controls_create()
538 static int snd_xonar_u1_switch_update(struct usb_mixer_interface *mixer, in snd_xonar_u1_switch_update() argument
541 struct snd_usb_audio *chip = mixer->chip; in snd_xonar_u1_switch_update()
571 err = snd_xonar_u1_switch_update(list->mixer, new_status); in snd_xonar_u1_switch_put()
577 return snd_xonar_u1_switch_update(list->mixer, in snd_xonar_u1_switch_resume()
590 static int snd_xonar_u1_controls_create(struct usb_mixer_interface *mixer) in snd_xonar_u1_controls_create() argument
592 return add_single_ctl_with_resume(mixer, 0, in snd_xonar_u1_controls_create()
606 static int snd_mbox1_switch_update(struct usb_mixer_interface *mixer, int val) in snd_mbox1_switch_update() argument
608 struct snd_usb_audio *chip = mixer->chip; in snd_mbox1_switch_update()
678 struct usb_mixer_interface *mixer = list->mixer; in snd_mbox1_switch_put() local
688 err = snd_mbox1_switch_update(mixer, new_val); in snd_mbox1_switch_put()
705 return snd_mbox1_switch_update(list->mixer, list->kctl->private_value); in snd_mbox1_switch_resume()
719 static int snd_mbox1_create_sync_switch(struct usb_mixer_interface *mixer) in snd_mbox1_create_sync_switch() argument
721 return add_single_ctl_with_resume(mixer, 0, in snd_mbox1_create_sync_switch()
730 static int snd_ni_control_init_val(struct usb_mixer_interface *mixer, in snd_ni_control_init_val() argument
733 struct usb_device *dev = mixer->chip->dev; in snd_ni_control_init_val()
761 struct snd_usb_audio *chip = list->mixer->chip; in snd_ni_update_cur_val()
847 static int snd_nativeinstruments_create_mixer(struct usb_mixer_interface *mixer, in snd_nativeinstruments_create_mixer() argument
866 err = add_single_ctl_with_resume(mixer, 0, in snd_nativeinstruments_create_mixer()
871 snd_ni_control_init_val(mixer, list->kctl); in snd_nativeinstruments_create_mixer()
890 static int snd_ftu_eff_switch_init(struct usb_mixer_interface *mixer, in snd_ftu_eff_switch_init() argument
893 struct usb_device *dev = mixer->chip->dev; in snd_ftu_eff_switch_init()
904 snd_usb_ctrl_intf(mixer->chip) | ((pval & 0xff) << 8), in snd_ftu_eff_switch_init()
922 struct snd_usb_audio *chip = list->mixer->chip; in snd_ftu_eff_switch_update()
962 static int snd_ftu_create_effect_switch(struct usb_mixer_interface *mixer, in snd_ftu_create_effect_switch() argument
977 err = add_single_ctl_with_resume(mixer, bUnitID, in snd_ftu_create_effect_switch()
983 snd_ftu_eff_switch_init(mixer, list->kctl); in snd_ftu_create_effect_switch()
988 static int snd_ftu_create_volume_ctls(struct usb_mixer_interface *mixer) in snd_ftu_create_volume_ctls() argument
1004 err = snd_create_std_mono_ctl(mixer, id, control, in snd_ftu_create_volume_ctls()
1015 err = snd_create_std_mono_ctl(mixer, id, control, in snd_ftu_create_volume_ctls()
1026 /* This control needs a volume quirk, see mixer.c */
1027 static int snd_ftu_create_effect_volume_ctl(struct usb_mixer_interface *mixer) in snd_ftu_create_effect_volume_ctl() argument
1035 return snd_create_std_mono_ctl(mixer, id, control, cmask, val_type, in snd_ftu_create_effect_volume_ctl()
1039 /* This control needs a volume quirk, see mixer.c */
1040 static int snd_ftu_create_effect_duration_ctl(struct usb_mixer_interface *mixer) in snd_ftu_create_effect_duration_ctl() argument
1048 return snd_create_std_mono_ctl(mixer, id, control, cmask, val_type, in snd_ftu_create_effect_duration_ctl()
1052 /* This control needs a volume quirk, see mixer.c */
1053 static int snd_ftu_create_effect_feedback_ctl(struct usb_mixer_interface *mixer) in snd_ftu_create_effect_feedback_ctl() argument
1061 return snd_create_std_mono_ctl(mixer, id, control, cmask, val_type, in snd_ftu_create_effect_feedback_ctl()
1065 static int snd_ftu_create_effect_return_ctls(struct usb_mixer_interface *mixer) in snd_ftu_create_effect_return_ctls() argument
1079 err = snd_create_std_mono_ctl(mixer, id, control, in snd_ftu_create_effect_return_ctls()
1089 static int snd_ftu_create_effect_send_ctls(struct usb_mixer_interface *mixer) in snd_ftu_create_effect_send_ctls() argument
1103 err = snd_create_std_mono_ctl(mixer, id, control, cmask, in snd_ftu_create_effect_send_ctls()
1113 err = snd_create_std_mono_ctl(mixer, id, control, cmask, in snd_ftu_create_effect_send_ctls()
1122 static int snd_ftu_create_mixer(struct usb_mixer_interface *mixer) in snd_ftu_create_mixer() argument
1126 err = snd_ftu_create_volume_ctls(mixer); in snd_ftu_create_mixer()
1130 err = snd_ftu_create_effect_switch(mixer, 1, 6); in snd_ftu_create_mixer()
1134 err = snd_ftu_create_effect_volume_ctl(mixer); in snd_ftu_create_mixer()
1138 err = snd_ftu_create_effect_duration_ctl(mixer); in snd_ftu_create_mixer()
1142 err = snd_ftu_create_effect_feedback_ctl(mixer); in snd_ftu_create_mixer()
1146 err = snd_ftu_create_effect_return_ctls(mixer); in snd_ftu_create_mixer()
1150 err = snd_ftu_create_effect_send_ctls(mixer); in snd_ftu_create_mixer()
1160 struct usb_mixer_interface *mixer; in snd_emuusb_set_samplerate() local
1164 list_for_each_entry(mixer, &chip->mixer_list, list) { in snd_emuusb_set_samplerate()
1165 if (mixer->id_elems[unitid]) { in snd_emuusb_set_samplerate()
1166 cval = mixer_elem_list_to_info(mixer->id_elems[unitid]); in snd_emuusb_set_samplerate()
1170 snd_usb_mixer_notify_id(mixer, unitid); in snd_emuusb_set_samplerate()
1177 /* C400/C600 volume controls, this control needs a volume quirk, see mixer.c */
1178 static int snd_c400_create_vol_ctls(struct usb_mixer_interface *mixer) in snd_c400_create_vol_ctls() argument
1190 switch (mixer->chip->usb_id) { in snd_c400_create_vol_ctls()
1215 err = snd_create_std_mono_ctl_offset(mixer, id, control, in snd_c400_create_vol_ctls()
1226 /* This control needs a volume quirk, see mixer.c */
1227 static int snd_c400_create_effect_volume_ctl(struct usb_mixer_interface *mixer) in snd_c400_create_effect_volume_ctl() argument
1235 return snd_create_std_mono_ctl(mixer, id, control, cmask, val_type, in snd_c400_create_effect_volume_ctl()
1239 /* This control needs a volume quirk, see mixer.c */
1240 static int snd_c400_create_effect_duration_ctl(struct usb_mixer_interface *mixer) in snd_c400_create_effect_duration_ctl() argument
1248 return snd_create_std_mono_ctl(mixer, id, control, cmask, val_type, in snd_c400_create_effect_duration_ctl()
1252 /* This control needs a volume quirk, see mixer.c */
1253 static int snd_c400_create_effect_feedback_ctl(struct usb_mixer_interface *mixer) in snd_c400_create_effect_feedback_ctl() argument
1261 return snd_create_std_mono_ctl(mixer, id, control, cmask, val_type, in snd_c400_create_effect_feedback_ctl()
1265 static int snd_c400_create_effect_vol_ctls(struct usb_mixer_interface *mixer) in snd_c400_create_effect_vol_ctls() argument
1277 switch (mixer->chip->usb_id) { in snd_c400_create_effect_vol_ctls()
1300 err = snd_create_std_mono_ctl(mixer, id, control, in snd_c400_create_effect_vol_ctls()
1310 static int snd_c400_create_effect_ret_vol_ctls(struct usb_mixer_interface *mixer) in snd_c400_create_effect_ret_vol_ctls() argument
1322 switch (mixer->chip->usb_id) { in snd_c400_create_effect_ret_vol_ctls()
1342 err = snd_create_std_mono_ctl_offset(mixer, id, control, in snd_c400_create_effect_ret_vol_ctls()
1352 static int snd_c400_create_mixer(struct usb_mixer_interface *mixer) in snd_c400_create_mixer() argument
1356 err = snd_c400_create_vol_ctls(mixer); in snd_c400_create_mixer()
1360 err = snd_c400_create_effect_vol_ctls(mixer); in snd_c400_create_mixer()
1364 err = snd_c400_create_effect_ret_vol_ctls(mixer); in snd_c400_create_mixer()
1368 err = snd_ftu_create_effect_switch(mixer, 2, 0x43); in snd_c400_create_mixer()
1372 err = snd_c400_create_effect_volume_ctl(mixer); in snd_c400_create_mixer()
1376 err = snd_c400_create_effect_duration_ctl(mixer); in snd_c400_create_mixer()
1380 err = snd_c400_create_effect_feedback_ctl(mixer); in snd_c400_create_mixer()
1388 * The mixer units for Ebox-44 are corrupt, and even where they
1390 * stereo. So we provide a good mixer here.
1496 struct snd_usb_audio *chip = list->mixer->chip; in snd_microii_spdif_default_get()
1548 struct snd_usb_audio *chip = list->mixer->chip; in snd_microii_spdif_default_update()
1635 struct snd_usb_audio *chip = list->mixer->chip; in snd_microii_spdif_switch_update()
1698 static int snd_microii_controls_create(struct usb_mixer_interface *mixer) in snd_microii_controls_create() argument
1708 err = add_single_ctl_with_resume(mixer, 0, in snd_microii_controls_create()
1728 static int snd_soundblaster_e1_switch_update(struct usb_mixer_interface *mixer, in snd_soundblaster_e1_switch_update() argument
1731 struct snd_usb_audio *chip = mixer->chip; in snd_soundblaster_e1_switch_update()
1759 err = snd_soundblaster_e1_switch_update(list->mixer, value); in snd_soundblaster_e1_switch_put()
1765 return snd_soundblaster_e1_switch_update(list->mixer, in snd_soundblaster_e1_switch_resume()
1788 static int snd_soundblaster_e1_switch_create(struct usb_mixer_interface *mixer) in snd_soundblaster_e1_switch_create() argument
1790 return add_single_ctl_with_resume(mixer, 0, in snd_soundblaster_e1_switch_create()
1806 static int dell_dock_mixer_init(struct usb_mixer_interface *mixer) in dell_dock_mixer_init() argument
1809 dell_dock_init_vol(mixer->chip, 1, 16); in dell_dock_mixer_init()
1810 dell_dock_init_vol(mixer->chip, 2, 16); in dell_dock_mixer_init()
1811 dell_dock_init_vol(mixer->chip, 1, 19); in dell_dock_mixer_init()
1812 dell_dock_init_vol(mixer->chip, 2, 19); in dell_dock_mixer_init()
1896 struct snd_usb_audio *chip = list->mixer->chip; in snd_rme_get_status1()
2014 struct snd_usb_audio *chip = list->mixer->chip; in snd_rme_current_freq_get()
2174 static int snd_rme_controls_create(struct usb_mixer_interface *mixer) in snd_rme_controls_create() argument
2179 err = add_single_ctl_with_resume(mixer, 0, in snd_rme_controls_create()
2231 static int snd_bbfpro_ctl_update(struct usb_mixer_interface *mixer, u8 reg, in snd_bbfpro_ctl_update() argument
2236 struct snd_usb_audio *chip = mixer->chip; in snd_bbfpro_ctl_update()
2331 struct usb_mixer_interface *mixer = list->mixer; in snd_bbfpro_ctl_put() local
2358 err = snd_bbfpro_ctl_update(mixer, reg, idx, val); in snd_bbfpro_ctl_put()
2372 return snd_bbfpro_ctl_update(list->mixer, reg, idx, value); in snd_bbfpro_ctl_resume()
2375 static int snd_bbfpro_vol_update(struct usb_mixer_interface *mixer, u16 index, in snd_bbfpro_vol_update() argument
2378 struct snd_usb_audio *chip = mixer->chip; in snd_bbfpro_vol_update()
2430 struct usb_mixer_interface *mixer = list->mixer; in snd_bbfpro_vol_put() local
2447 err = snd_bbfpro_vol_update(mixer, idx, new_val); in snd_bbfpro_vol_put()
2457 return snd_bbfpro_vol_update(list->mixer, idx, val); in snd_bbfpro_vol_resume()
2479 static int snd_bbfpro_ctl_add(struct usb_mixer_interface *mixer, u8 reg, in snd_bbfpro_ctl_add() argument
2489 return add_single_ctl_with_resume(mixer, 0, snd_bbfpro_ctl_resume, in snd_bbfpro_ctl_add()
2493 static int snd_bbfpro_vol_add(struct usb_mixer_interface *mixer, u16 index, in snd_bbfpro_vol_add() argument
2501 return add_single_ctl_with_resume(mixer, 0, snd_bbfpro_vol_resume, in snd_bbfpro_vol_add()
2505 static int snd_bbfpro_controls_create(struct usb_mixer_interface *mixer) in snd_bbfpro_controls_create() argument
2525 err = snd_bbfpro_vol_add(mixer, (26 * o + i), name); in snd_bbfpro_controls_create()
2533 err = snd_bbfpro_vol_add(mixer, (26 * o + 12 + i), in snd_bbfpro_controls_create()
2541 err = snd_bbfpro_ctl_add(mixer, SND_BBFPRO_CTL_REG1, in snd_bbfpro_controls_create()
2547 err = snd_bbfpro_ctl_add(mixer, SND_BBFPRO_CTL_REG1, in snd_bbfpro_controls_create()
2553 err = snd_bbfpro_ctl_add(mixer, SND_BBFPRO_CTL_REG1, in snd_bbfpro_controls_create()
2559 err = snd_bbfpro_ctl_add(mixer, SND_BBFPRO_CTL_REG1, in snd_bbfpro_controls_create()
2566 err = snd_bbfpro_ctl_add(mixer, SND_BBFPRO_CTL_REG2, in snd_bbfpro_controls_create()
2572 err = snd_bbfpro_ctl_add(mixer, SND_BBFPRO_CTL_REG2, in snd_bbfpro_controls_create()
2578 err = snd_bbfpro_ctl_add(mixer, SND_BBFPRO_CTL_REG2, in snd_bbfpro_controls_create()
2584 err = snd_bbfpro_ctl_add(mixer, SND_BBFPRO_CTL_REG2, in snd_bbfpro_controls_create()
2590 err = snd_bbfpro_ctl_add(mixer, SND_BBFPRO_CTL_REG2, in snd_bbfpro_controls_create()
2596 err = snd_bbfpro_ctl_add(mixer, SND_BBFPRO_CTL_REG2, in snd_bbfpro_controls_create()
2609 * There are three mixer stereo channels (CH1, CH2, AUX)
2735 static int snd_pioneer_djm_controls_update(struct usb_mixer_interface *mixer, u16 group, u16 value) in snd_pioneer_djm_controls_update() argument
2743 err = snd_usb_lock_shutdown(mixer->chip); in snd_pioneer_djm_controls_update()
2748 mixer->chip->dev, usb_sndctrlpipe(mixer->chip->dev, 0), in snd_pioneer_djm_controls_update()
2755 snd_usb_unlock_shutdown(mixer->chip); in snd_pioneer_djm_controls_update()
2768 struct usb_mixer_interface *mixer = list->mixer; in snd_pioneer_djm_controls_put() local
2775 return snd_pioneer_djm_controls_update(mixer, group, value); in snd_pioneer_djm_controls_put()
2784 return snd_pioneer_djm_controls_update(list->mixer, group, value); in snd_pioneer_djm_controls_resume()
2787 static int snd_pioneer_djm_controls_create(struct usb_mixer_interface *mixer) in snd_pioneer_djm_controls_create() argument
2804 err = snd_pioneer_djm_controls_update(mixer, i, group->default_value); in snd_pioneer_djm_controls_create()
2807 err = add_single_ctl_with_resume(mixer, 0, snd_pioneer_djm_controls_resume, in snd_pioneer_djm_controls_create()
2815 int snd_usb_mixer_apply_create_quirk(struct usb_mixer_interface *mixer) in snd_usb_mixer_apply_create_quirk() argument
2819 err = snd_usb_soundblaster_remote_init(mixer); in snd_usb_mixer_apply_create_quirk()
2823 switch (mixer->chip->usb_id) { in snd_usb_mixer_apply_create_quirk()
2826 err = snd_us16x08_controls_create(mixer); in snd_usb_mixer_apply_create_quirk()
2833 err = snd_audigy2nx_controls_create(mixer); in snd_usb_mixer_apply_create_quirk()
2836 snd_card_ro_proc_new(mixer->chip->card, "audigy2nx", in snd_usb_mixer_apply_create_quirk()
2837 mixer, snd_audigy2nx_proc_read); in snd_usb_mixer_apply_create_quirk()
2842 err = snd_emu0204_controls_create(mixer); in snd_usb_mixer_apply_create_quirk()
2847 err = snd_c400_create_mixer(mixer); in snd_usb_mixer_apply_create_quirk()
2852 err = snd_ftu_create_mixer(mixer); in snd_usb_mixer_apply_create_quirk()
2858 err = snd_xonar_u1_controls_create(mixer); in snd_usb_mixer_apply_create_quirk()
2862 err = snd_microii_controls_create(mixer); in snd_usb_mixer_apply_create_quirk()
2866 err = snd_mbox1_create_sync_switch(mixer); in snd_usb_mixer_apply_create_quirk()
2870 err = snd_nativeinstruments_create_mixer(mixer, in snd_usb_mixer_apply_create_quirk()
2876 err = snd_nativeinstruments_create_mixer(mixer, in snd_usb_mixer_apply_create_quirk()
2883 err = snd_create_std_mono_table(mixer, ebox44_table); in snd_usb_mixer_apply_create_quirk()
2891 err = snd_scarlett_controls_create(mixer); in snd_usb_mixer_apply_create_quirk()
2897 err = snd_scarlett_gen2_controls_create(mixer); in snd_usb_mixer_apply_create_quirk()
2901 err = snd_soundblaster_e1_switch_create(mixer); in snd_usb_mixer_apply_create_quirk()
2904 err = dell_dock_mixer_init(mixer); in snd_usb_mixer_apply_create_quirk()
2910 err = snd_rme_controls_create(mixer); in snd_usb_mixer_apply_create_quirk()
2914 err = snd_sc1810_init_mixer(mixer); in snd_usb_mixer_apply_create_quirk()
2917 err = snd_bbfpro_controls_create(mixer); in snd_usb_mixer_apply_create_quirk()
2920 err = snd_pioneer_djm_controls_create(mixer); in snd_usb_mixer_apply_create_quirk()
2928 void snd_usb_mixer_resume_quirk(struct usb_mixer_interface *mixer) in snd_usb_mixer_resume_quirk() argument
2930 switch (mixer->chip->usb_id) { in snd_usb_mixer_resume_quirk()
2932 dell_dock_mixer_init(mixer); in snd_usb_mixer_resume_quirk()
2938 void snd_usb_mixer_rc_memory_change(struct usb_mixer_interface *mixer, in snd_usb_mixer_rc_memory_change() argument
2941 if (!mixer->rc_cfg) in snd_usb_mixer_rc_memory_change()
2946 mixer->rc_urb->dev = mixer->chip->dev; in snd_usb_mixer_rc_memory_change()
2947 usb_submit_urb(mixer->rc_urb, GFP_ATOMIC); in snd_usb_mixer_rc_memory_change()
2956 if (mixer->chip->usb_id == USB_ID(0x041e, 0x3040) || in snd_usb_mixer_rc_memory_change()
2957 mixer->chip->usb_id == USB_ID(0x041e, 0x3048)) in snd_usb_mixer_rc_memory_change()
2958 snd_usb_mixer_notify_id(mixer, mixer->rc_cfg->mute_mixer_id); in snd_usb_mixer_rc_memory_change()
2961 usb_audio_dbg(mixer->chip, "memory change in unknown unit %d\n", unitid); in snd_usb_mixer_rc_memory_change()
2966 static void snd_dragonfly_quirk_db_scale(struct usb_mixer_interface *mixer, in snd_dragonfly_quirk_db_scale() argument
2986 usb_audio_info(mixer->chip, "applying DragonFly dB scale quirk (0-50 variant)\n"); in snd_dragonfly_quirk_db_scale()
2995 usb_audio_info(mixer->chip, "ignoring too narrow dB range on a DragonFly device"); in snd_dragonfly_quirk_db_scale()
3000 void snd_usb_mixer_fu_apply_quirk(struct usb_mixer_interface *mixer, in snd_usb_mixer_fu_apply_quirk() argument
3004 switch (mixer->chip->usb_id) { in snd_usb_mixer_fu_apply_quirk()
3007 snd_dragonfly_quirk_db_scale(mixer, cval, kctl); in snd_usb_mixer_fu_apply_quirk()