Lines Matching refs:mixer

64 static int snd_create_std_mono_ctl_offset(struct usb_mixer_interface *mixer,  in snd_create_std_mono_ctl_offset()  argument
80 snd_usb_mixer_elem_init_std(&cval->head, mixer, unitid); in snd_create_std_mono_ctl_offset()
117 static int snd_create_std_mono_ctl(struct usb_mixer_interface *mixer, in snd_create_std_mono_ctl() argument
125 return snd_create_std_mono_ctl_offset(mixer, unitid, control, cmask, in snd_create_std_mono_ctl()
132 static int snd_create_std_mono_table(struct usb_mixer_interface *mixer, in snd_create_std_mono_table() argument
138 err = snd_create_std_mono_ctl(mixer, t->unitid, t->control, in snd_create_std_mono_table()
148 static int add_single_ctl_with_resume(struct usb_mixer_interface *mixer, in add_single_ctl_with_resume() argument
162 list->mixer = mixer; in add_single_ctl_with_resume()
202 struct usb_mixer_interface *mixer = urb->context; in snd_usb_soundblaster_remote_complete() local
203 const struct rc_config *rc = mixer->rc_cfg; in snd_usb_soundblaster_remote_complete()
209 code = mixer->rc_buffer[rc->offset]; in snd_usb_soundblaster_remote_complete()
211 code |= mixer->rc_buffer[rc->offset + 1] << 8; in snd_usb_soundblaster_remote_complete()
215 snd_usb_mixer_notify_id(mixer, rc->mute_mixer_id); in snd_usb_soundblaster_remote_complete()
216 mixer->rc_code = code; in snd_usb_soundblaster_remote_complete()
218 wake_up(&mixer->rc_waitq); in snd_usb_soundblaster_remote_complete()
224 struct usb_mixer_interface *mixer = hw->private_data; in snd_usb_sbrc_hwdep_read() local
230 err = wait_event_interruptible(mixer->rc_waitq, in snd_usb_sbrc_hwdep_read()
231 (rc_code = xchg(&mixer->rc_code, 0)) != 0); in snd_usb_sbrc_hwdep_read()
244 struct usb_mixer_interface *mixer = hw->private_data; in snd_usb_sbrc_hwdep_poll() local
246 poll_wait(file, &mixer->rc_waitq, wait); in snd_usb_sbrc_hwdep_poll()
247 return mixer->rc_code ? EPOLLIN | EPOLLRDNORM : 0; in snd_usb_sbrc_hwdep_poll()
250 static int snd_usb_soundblaster_remote_init(struct usb_mixer_interface *mixer) in snd_usb_soundblaster_remote_init() argument
256 if (rc_configs[i].usb_id == mixer->chip->usb_id) in snd_usb_soundblaster_remote_init()
260 mixer->rc_cfg = &rc_configs[i]; in snd_usb_soundblaster_remote_init()
262 len = mixer->rc_cfg->packet_length; in snd_usb_soundblaster_remote_init()
264 init_waitqueue_head(&mixer->rc_waitq); in snd_usb_soundblaster_remote_init()
265 err = snd_hwdep_new(mixer->chip->card, "SB remote control", 0, &hwdep); in snd_usb_soundblaster_remote_init()
269 "%s remote control", mixer->chip->card->shortname); in snd_usb_soundblaster_remote_init()
271 hwdep->private_data = mixer; in snd_usb_soundblaster_remote_init()
276 mixer->rc_urb = usb_alloc_urb(0, GFP_KERNEL); in snd_usb_soundblaster_remote_init()
277 if (!mixer->rc_urb) in snd_usb_soundblaster_remote_init()
279 mixer->rc_setup_packet = kmalloc(sizeof(*mixer->rc_setup_packet), GFP_KERNEL); in snd_usb_soundblaster_remote_init()
280 if (!mixer->rc_setup_packet) { in snd_usb_soundblaster_remote_init()
281 usb_free_urb(mixer->rc_urb); in snd_usb_soundblaster_remote_init()
282 mixer->rc_urb = NULL; in snd_usb_soundblaster_remote_init()
285 mixer->rc_setup_packet->bRequestType = in snd_usb_soundblaster_remote_init()
287 mixer->rc_setup_packet->bRequest = UAC_GET_MEM; in snd_usb_soundblaster_remote_init()
288 mixer->rc_setup_packet->wValue = cpu_to_le16(0); in snd_usb_soundblaster_remote_init()
289 mixer->rc_setup_packet->wIndex = cpu_to_le16(0); in snd_usb_soundblaster_remote_init()
290 mixer->rc_setup_packet->wLength = cpu_to_le16(len); in snd_usb_soundblaster_remote_init()
291 usb_fill_control_urb(mixer->rc_urb, mixer->chip->dev, in snd_usb_soundblaster_remote_init()
292 usb_rcvctrlpipe(mixer->chip->dev, 0), in snd_usb_soundblaster_remote_init()
293 (u8*)mixer->rc_setup_packet, mixer->rc_buffer, len, in snd_usb_soundblaster_remote_init()
294 snd_usb_soundblaster_remote_complete, mixer); in snd_usb_soundblaster_remote_init()
306 static int snd_audigy2nx_led_update(struct usb_mixer_interface *mixer, in snd_audigy2nx_led_update() argument
309 struct snd_usb_audio *chip = mixer->chip; in snd_audigy2nx_led_update()
340 struct usb_mixer_interface *mixer = list->mixer; in snd_audigy2nx_led_put() local
351 err = snd_audigy2nx_led_update(mixer, value, index); in snd_audigy2nx_led_put()
359 return snd_audigy2nx_led_update(list->mixer, priv_value >> 8, in snd_audigy2nx_led_resume()
377 static int snd_audigy2nx_controls_create(struct usb_mixer_interface *mixer) in snd_audigy2nx_controls_create() argument
385 if ((mixer->chip->usb_id == USB_ID(0x041e, 0x3042)) && i == 0) in snd_audigy2nx_controls_create()
388 if ((mixer->chip->usb_id == USB_ID(0x041e, 0x30df)) && i == 0) in snd_audigy2nx_controls_create()
391 (mixer->chip->usb_id == USB_ID(0x041e, 0x3040) || in snd_audigy2nx_controls_create()
392 mixer->chip->usb_id == USB_ID(0x041e, 0x3042) || in snd_audigy2nx_controls_create()
393 mixer->chip->usb_id == USB_ID(0x041e, 0x30df) || in snd_audigy2nx_controls_create()
394 mixer->chip->usb_id == USB_ID(0x041e, 0x3048))) in snd_audigy2nx_controls_create()
400 err = add_single_ctl_with_resume(mixer, 0, in snd_audigy2nx_controls_create()
428 struct usb_mixer_interface *mixer = entry->private_data; in snd_audigy2nx_proc_read() local
432 snd_iprintf(buffer, "%s jacks\n\n", mixer->chip->card->shortname); in snd_audigy2nx_proc_read()
433 if (mixer->chip->usb_id == USB_ID(0x041e, 0x3020)) in snd_audigy2nx_proc_read()
435 else if (mixer->chip->usb_id == USB_ID(0x041e, 0x3040) || in snd_audigy2nx_proc_read()
436 mixer->chip->usb_id == USB_ID(0x041e, 0x3048)) in snd_audigy2nx_proc_read()
443 err = snd_usb_lock_shutdown(mixer->chip); in snd_audigy2nx_proc_read()
446 err = snd_usb_ctl_msg(mixer->chip->dev, in snd_audigy2nx_proc_read()
447 usb_rcvctrlpipe(mixer->chip->dev, 0), in snd_audigy2nx_proc_read()
451 snd_usb_unlock_shutdown(mixer->chip); in snd_audigy2nx_proc_read()
475 static int snd_emu0204_ch_switch_update(struct usb_mixer_interface *mixer, in snd_emu0204_ch_switch_update() argument
478 struct snd_usb_audio *chip = mixer->chip; in snd_emu0204_ch_switch_update()
500 struct usb_mixer_interface *mixer = list->mixer; in snd_emu0204_ch_switch_put() local
511 err = snd_emu0204_ch_switch_update(mixer, value); in snd_emu0204_ch_switch_put()
517 return snd_emu0204_ch_switch_update(list->mixer, in snd_emu0204_ch_switch_resume()
530 static int snd_emu0204_controls_create(struct usb_mixer_interface *mixer) in snd_emu0204_controls_create() argument
532 return add_single_ctl_with_resume(mixer, 0, in snd_emu0204_controls_create()
546 static int snd_xonar_u1_switch_update(struct usb_mixer_interface *mixer, in snd_xonar_u1_switch_update() argument
549 struct snd_usb_audio *chip = mixer->chip; in snd_xonar_u1_switch_update()
579 err = snd_xonar_u1_switch_update(list->mixer, new_status); in snd_xonar_u1_switch_put()
585 return snd_xonar_u1_switch_update(list->mixer, in snd_xonar_u1_switch_resume()
598 static int snd_xonar_u1_controls_create(struct usb_mixer_interface *mixer) in snd_xonar_u1_controls_create() argument
600 return add_single_ctl_with_resume(mixer, 0, in snd_xonar_u1_controls_create()
614 static int snd_mbox1_switch_update(struct usb_mixer_interface *mixer, int val) in snd_mbox1_switch_update() argument
616 struct snd_usb_audio *chip = mixer->chip; in snd_mbox1_switch_update()
686 struct usb_mixer_interface *mixer = list->mixer; in snd_mbox1_switch_put() local
696 err = snd_mbox1_switch_update(mixer, new_val); in snd_mbox1_switch_put()
713 return snd_mbox1_switch_update(list->mixer, list->kctl->private_value); in snd_mbox1_switch_resume()
727 static int snd_mbox1_create_sync_switch(struct usb_mixer_interface *mixer) in snd_mbox1_create_sync_switch() argument
729 return add_single_ctl_with_resume(mixer, 0, in snd_mbox1_create_sync_switch()
738 static int snd_ni_control_init_val(struct usb_mixer_interface *mixer, in snd_ni_control_init_val() argument
741 struct usb_device *dev = mixer->chip->dev; in snd_ni_control_init_val()
769 struct snd_usb_audio *chip = list->mixer->chip; in snd_ni_update_cur_val()
855 static int snd_nativeinstruments_create_mixer(struct usb_mixer_interface *mixer, in snd_nativeinstruments_create_mixer() argument
874 err = add_single_ctl_with_resume(mixer, 0, in snd_nativeinstruments_create_mixer()
879 snd_ni_control_init_val(mixer, list->kctl); in snd_nativeinstruments_create_mixer()
898 static int snd_ftu_eff_switch_init(struct usb_mixer_interface *mixer, in snd_ftu_eff_switch_init() argument
901 struct usb_device *dev = mixer->chip->dev; in snd_ftu_eff_switch_init()
912 snd_usb_ctrl_intf(mixer->chip) | ((pval & 0xff) << 8), in snd_ftu_eff_switch_init()
930 struct snd_usb_audio *chip = list->mixer->chip; in snd_ftu_eff_switch_update()
970 static int snd_ftu_create_effect_switch(struct usb_mixer_interface *mixer, in snd_ftu_create_effect_switch() argument
985 err = add_single_ctl_with_resume(mixer, bUnitID, in snd_ftu_create_effect_switch()
991 snd_ftu_eff_switch_init(mixer, list->kctl); in snd_ftu_create_effect_switch()
996 static int snd_ftu_create_volume_ctls(struct usb_mixer_interface *mixer) in snd_ftu_create_volume_ctls() argument
1012 err = snd_create_std_mono_ctl(mixer, id, control, in snd_ftu_create_volume_ctls()
1023 err = snd_create_std_mono_ctl(mixer, id, control, in snd_ftu_create_volume_ctls()
1035 static int snd_ftu_create_effect_volume_ctl(struct usb_mixer_interface *mixer) in snd_ftu_create_effect_volume_ctl() argument
1043 return snd_create_std_mono_ctl(mixer, id, control, cmask, val_type, in snd_ftu_create_effect_volume_ctl()
1048 static int snd_ftu_create_effect_duration_ctl(struct usb_mixer_interface *mixer) in snd_ftu_create_effect_duration_ctl() argument
1056 return snd_create_std_mono_ctl(mixer, id, control, cmask, val_type, in snd_ftu_create_effect_duration_ctl()
1061 static int snd_ftu_create_effect_feedback_ctl(struct usb_mixer_interface *mixer) in snd_ftu_create_effect_feedback_ctl() argument
1069 return snd_create_std_mono_ctl(mixer, id, control, cmask, val_type, in snd_ftu_create_effect_feedback_ctl()
1073 static int snd_ftu_create_effect_return_ctls(struct usb_mixer_interface *mixer) in snd_ftu_create_effect_return_ctls() argument
1087 err = snd_create_std_mono_ctl(mixer, id, control, in snd_ftu_create_effect_return_ctls()
1097 static int snd_ftu_create_effect_send_ctls(struct usb_mixer_interface *mixer) in snd_ftu_create_effect_send_ctls() argument
1111 err = snd_create_std_mono_ctl(mixer, id, control, cmask, in snd_ftu_create_effect_send_ctls()
1121 err = snd_create_std_mono_ctl(mixer, id, control, cmask, in snd_ftu_create_effect_send_ctls()
1130 static int snd_ftu_create_mixer(struct usb_mixer_interface *mixer) in snd_ftu_create_mixer() argument
1134 err = snd_ftu_create_volume_ctls(mixer); in snd_ftu_create_mixer()
1138 err = snd_ftu_create_effect_switch(mixer, 1, 6); in snd_ftu_create_mixer()
1142 err = snd_ftu_create_effect_volume_ctl(mixer); in snd_ftu_create_mixer()
1146 err = snd_ftu_create_effect_duration_ctl(mixer); in snd_ftu_create_mixer()
1150 err = snd_ftu_create_effect_feedback_ctl(mixer); in snd_ftu_create_mixer()
1154 err = snd_ftu_create_effect_return_ctls(mixer); in snd_ftu_create_mixer()
1158 err = snd_ftu_create_effect_send_ctls(mixer); in snd_ftu_create_mixer()
1168 struct usb_mixer_interface *mixer; in snd_emuusb_set_samplerate() local
1172 list_for_each_entry(mixer, &chip->mixer_list, list) { in snd_emuusb_set_samplerate()
1173 cval = mixer_elem_list_to_info(mixer->id_elems[unitid]); in snd_emuusb_set_samplerate()
1178 snd_usb_mixer_notify_id(mixer, unitid); in snd_emuusb_set_samplerate()
1186 static int snd_c400_create_vol_ctls(struct usb_mixer_interface *mixer) in snd_c400_create_vol_ctls() argument
1198 switch (mixer->chip->usb_id) { in snd_c400_create_vol_ctls()
1223 err = snd_create_std_mono_ctl_offset(mixer, id, control, in snd_c400_create_vol_ctls()
1235 static int snd_c400_create_effect_volume_ctl(struct usb_mixer_interface *mixer) in snd_c400_create_effect_volume_ctl() argument
1243 return snd_create_std_mono_ctl(mixer, id, control, cmask, val_type, in snd_c400_create_effect_volume_ctl()
1248 static int snd_c400_create_effect_duration_ctl(struct usb_mixer_interface *mixer) in snd_c400_create_effect_duration_ctl() argument
1256 return snd_create_std_mono_ctl(mixer, id, control, cmask, val_type, in snd_c400_create_effect_duration_ctl()
1261 static int snd_c400_create_effect_feedback_ctl(struct usb_mixer_interface *mixer) in snd_c400_create_effect_feedback_ctl() argument
1269 return snd_create_std_mono_ctl(mixer, id, control, cmask, val_type, in snd_c400_create_effect_feedback_ctl()
1273 static int snd_c400_create_effect_vol_ctls(struct usb_mixer_interface *mixer) in snd_c400_create_effect_vol_ctls() argument
1285 switch (mixer->chip->usb_id) { in snd_c400_create_effect_vol_ctls()
1308 err = snd_create_std_mono_ctl(mixer, id, control, in snd_c400_create_effect_vol_ctls()
1318 static int snd_c400_create_effect_ret_vol_ctls(struct usb_mixer_interface *mixer) in snd_c400_create_effect_ret_vol_ctls() argument
1330 switch (mixer->chip->usb_id) { in snd_c400_create_effect_ret_vol_ctls()
1350 err = snd_create_std_mono_ctl_offset(mixer, id, control, in snd_c400_create_effect_ret_vol_ctls()
1360 static int snd_c400_create_mixer(struct usb_mixer_interface *mixer) in snd_c400_create_mixer() argument
1364 err = snd_c400_create_vol_ctls(mixer); in snd_c400_create_mixer()
1368 err = snd_c400_create_effect_vol_ctls(mixer); in snd_c400_create_mixer()
1372 err = snd_c400_create_effect_ret_vol_ctls(mixer); in snd_c400_create_mixer()
1376 err = snd_ftu_create_effect_switch(mixer, 2, 0x43); in snd_c400_create_mixer()
1380 err = snd_c400_create_effect_volume_ctl(mixer); in snd_c400_create_mixer()
1384 err = snd_c400_create_effect_duration_ctl(mixer); in snd_c400_create_mixer()
1388 err = snd_c400_create_effect_feedback_ctl(mixer); in snd_c400_create_mixer()
1504 struct snd_usb_audio *chip = list->mixer->chip; in snd_microii_spdif_default_get()
1552 struct snd_usb_audio *chip = list->mixer->chip; in snd_microii_spdif_default_update()
1639 struct snd_usb_audio *chip = list->mixer->chip; in snd_microii_spdif_switch_update()
1702 static int snd_microii_controls_create(struct usb_mixer_interface *mixer) in snd_microii_controls_create() argument
1712 err = add_single_ctl_with_resume(mixer, 0, in snd_microii_controls_create()
1732 static int snd_soundblaster_e1_switch_update(struct usb_mixer_interface *mixer, in snd_soundblaster_e1_switch_update() argument
1735 struct snd_usb_audio *chip = mixer->chip; in snd_soundblaster_e1_switch_update()
1763 err = snd_soundblaster_e1_switch_update(list->mixer, value); in snd_soundblaster_e1_switch_put()
1769 return snd_soundblaster_e1_switch_update(list->mixer, in snd_soundblaster_e1_switch_resume()
1792 static int snd_soundblaster_e1_switch_create(struct usb_mixer_interface *mixer) in snd_soundblaster_e1_switch_create() argument
1794 return add_single_ctl_with_resume(mixer, 0, in snd_soundblaster_e1_switch_create()
1810 static int dell_dock_mixer_init(struct usb_mixer_interface *mixer) in dell_dock_mixer_init() argument
1813 dell_dock_init_vol(mixer->chip, 1, 16); in dell_dock_mixer_init()
1814 dell_dock_init_vol(mixer->chip, 2, 16); in dell_dock_mixer_init()
1815 dell_dock_init_vol(mixer->chip, 1, 19); in dell_dock_mixer_init()
1816 dell_dock_init_vol(mixer->chip, 2, 19); in dell_dock_mixer_init()
1820 int snd_usb_mixer_apply_create_quirk(struct usb_mixer_interface *mixer) in snd_usb_mixer_apply_create_quirk() argument
1825 err = snd_usb_soundblaster_remote_init(mixer); in snd_usb_mixer_apply_create_quirk()
1829 switch (mixer->chip->usb_id) { in snd_usb_mixer_apply_create_quirk()
1832 err = snd_us16x08_controls_create(mixer); in snd_usb_mixer_apply_create_quirk()
1839 err = snd_audigy2nx_controls_create(mixer); in snd_usb_mixer_apply_create_quirk()
1842 if (!snd_card_proc_new(mixer->chip->card, "audigy2nx", &entry)) in snd_usb_mixer_apply_create_quirk()
1843 snd_info_set_text_ops(entry, mixer, in snd_usb_mixer_apply_create_quirk()
1849 err = snd_emu0204_controls_create(mixer); in snd_usb_mixer_apply_create_quirk()
1854 err = snd_c400_create_mixer(mixer); in snd_usb_mixer_apply_create_quirk()
1859 err = snd_ftu_create_mixer(mixer); in snd_usb_mixer_apply_create_quirk()
1865 err = snd_xonar_u1_controls_create(mixer); in snd_usb_mixer_apply_create_quirk()
1869 err = snd_microii_controls_create(mixer); in snd_usb_mixer_apply_create_quirk()
1873 err = snd_mbox1_create_sync_switch(mixer); in snd_usb_mixer_apply_create_quirk()
1877 err = snd_nativeinstruments_create_mixer(mixer, in snd_usb_mixer_apply_create_quirk()
1883 err = snd_nativeinstruments_create_mixer(mixer, in snd_usb_mixer_apply_create_quirk()
1890 err = snd_create_std_mono_table(mixer, ebox44_table); in snd_usb_mixer_apply_create_quirk()
1898 err = snd_scarlett_controls_create(mixer); in snd_usb_mixer_apply_create_quirk()
1902 err = snd_soundblaster_e1_switch_create(mixer); in snd_usb_mixer_apply_create_quirk()
1905 err = dell_dock_mixer_init(mixer); in snd_usb_mixer_apply_create_quirk()
1913 void snd_usb_mixer_resume_quirk(struct usb_mixer_interface *mixer) in snd_usb_mixer_resume_quirk() argument
1915 switch (mixer->chip->usb_id) { in snd_usb_mixer_resume_quirk()
1917 dell_dock_mixer_init(mixer); in snd_usb_mixer_resume_quirk()
1923 void snd_usb_mixer_rc_memory_change(struct usb_mixer_interface *mixer, in snd_usb_mixer_rc_memory_change() argument
1926 if (!mixer->rc_cfg) in snd_usb_mixer_rc_memory_change()
1931 mixer->rc_urb->dev = mixer->chip->dev; in snd_usb_mixer_rc_memory_change()
1932 usb_submit_urb(mixer->rc_urb, GFP_ATOMIC); in snd_usb_mixer_rc_memory_change()
1941 if (mixer->chip->usb_id == USB_ID(0x041e, 0x3040) || in snd_usb_mixer_rc_memory_change()
1942 mixer->chip->usb_id == USB_ID(0x041e, 0x3048)) in snd_usb_mixer_rc_memory_change()
1943 snd_usb_mixer_notify_id(mixer, mixer->rc_cfg->mute_mixer_id); in snd_usb_mixer_rc_memory_change()
1946 usb_audio_dbg(mixer->chip, "memory change in unknown unit %d\n", unitid); in snd_usb_mixer_rc_memory_change()
1951 static void snd_dragonfly_quirk_db_scale(struct usb_mixer_interface *mixer, in snd_dragonfly_quirk_db_scale() argument
1971 usb_audio_info(mixer->chip, "applying DragonFly dB scale quirk (0-50 variant)\n"); in snd_dragonfly_quirk_db_scale()
1980 usb_audio_info(mixer->chip, "ignoring too narrow dB range on a DragonFly device"); in snd_dragonfly_quirk_db_scale()
1985 void snd_usb_mixer_fu_apply_quirk(struct usb_mixer_interface *mixer, in snd_usb_mixer_fu_apply_quirk() argument
1989 switch (mixer->chip->usb_id) { in snd_usb_mixer_fu_apply_quirk()
1992 snd_dragonfly_quirk_db_scale(mixer, cval, kctl); in snd_usb_mixer_fu_apply_quirk()