Lines Matching refs:mixer
224 struct usb_mixer_interface *mixer; member
587 struct usb_mixer_interface *mixer, u32 cmd, in scarlett2_usb() argument
590 struct scarlett2_mixer_data *private = mixer->private_data; in scarlett2_usb()
617 err = snd_usb_ctl_msg(mixer->chip->dev, in scarlett2_usb()
618 usb_sndctrlpipe(mixer->chip->dev, 0), in scarlett2_usb()
628 mixer->chip, in scarlett2_usb()
637 err = snd_usb_ctl_msg(mixer->chip->dev, in scarlett2_usb()
638 usb_rcvctrlpipe(mixer->chip->dev, 0), in scarlett2_usb()
650 mixer->chip, in scarlett2_usb()
663 mixer->chip, in scarlett2_usb()
688 static void scarlett2_config_save(struct usb_mixer_interface *mixer) in scarlett2_config_save() argument
692 scarlett2_usb(mixer, SCARLETT2_USB_DATA_CMD, in scarlett2_config_save()
703 scarlett2_config_save(private->mixer); in scarlett2_config_save_work()
710 struct usb_mixer_interface *mixer, in scarlett2_usb_set_config() argument
722 struct scarlett2_mixer_data *private = mixer->private_data; in scarlett2_usb_set_config()
731 err = scarlett2_usb(mixer, SCARLETT2_USB_SET_DATA, in scarlett2_usb_set_config()
739 err = scarlett2_usb(mixer, SCARLETT2_USB_DATA_CMD, in scarlett2_usb_set_config()
752 struct usb_mixer_interface *mixer, in scarlett2_usb_get() argument
762 return scarlett2_usb(mixer, SCARLETT2_USB_GET_DATA, in scarlett2_usb_get()
768 struct usb_mixer_interface *mixer, in scarlett2_usb_get_config() argument
775 return scarlett2_usb_get(mixer, config_item.offset, buf, size); in scarlett2_usb_get_config()
780 struct usb_mixer_interface *mixer, in scarlett2_usb_get_volume_status() argument
783 return scarlett2_usb_get(mixer, SCARLETT2_USB_VOLUME_STATUS_OFFSET, in scarlett2_usb_get_volume_status()
790 static int scarlett2_usb_set_mix(struct usb_mixer_interface *mixer, in scarlett2_usb_set_mix() argument
793 struct scarlett2_mixer_data *private = mixer->private_data; in scarlett2_usb_set_mix()
812 return scarlett2_usb(mixer, SCARLETT2_USB_SET_MIX, in scarlett2_usb_set_mix()
836 static int scarlett2_usb_set_mux(struct usb_mixer_interface *mixer) in scarlett2_usb_set_mux() argument
838 struct scarlett2_mixer_data *private = mixer->private_data; in scarlett2_usb_set_mux()
899 err = scarlett2_usb(mixer, SCARLETT2_USB_SET_MUX, in scarlett2_usb_set_mux()
910 static int scarlett2_usb_get_meter_levels(struct usb_mixer_interface *mixer, in scarlett2_usb_get_meter_levels() argument
924 err = scarlett2_usb(mixer, SCARLETT2_USB_GET_METER_LEVELS, in scarlett2_usb_get_meter_levels()
939 static int scarlett2_add_new_ctl(struct usb_mixer_interface *mixer, in scarlett2_add_new_ctl() argument
956 elem->head.mixer = mixer; in scarlett2_add_new_ctl()
986 static int scarlett2_update_volumes(struct usb_mixer_interface *mixer) in scarlett2_update_volumes() argument
988 struct scarlett2_mixer_data *private = mixer->private_data; in scarlett2_update_volumes()
997 err = scarlett2_usb_get_volume_status(mixer, &volume_status); in scarlett2_update_volumes()
1033 struct usb_mixer_interface *mixer = elem->head.mixer; in scarlett2_master_volume_ctl_get() local
1034 struct scarlett2_mixer_data *private = mixer->private_data; in scarlett2_master_volume_ctl_get()
1038 scarlett2_update_volumes(mixer); in scarlett2_master_volume_ctl_get()
1049 struct usb_mixer_interface *mixer = elem->head.mixer; in scarlett2_volume_ctl_get() local
1050 struct scarlett2_mixer_data *private = mixer->private_data; in scarlett2_volume_ctl_get()
1055 scarlett2_update_volumes(mixer); in scarlett2_volume_ctl_get()
1066 struct usb_mixer_interface *mixer = elem->head.mixer; in scarlett2_volume_ctl_put() local
1067 struct scarlett2_mixer_data *private = mixer->private_data; in scarlett2_volume_ctl_put()
1080 err = scarlett2_usb_set_config(mixer, SCARLETT2_CONFIG_LINE_OUT_VOLUME, in scarlett2_volume_ctl_put()
1133 struct scarlett2_mixer_data *private = elem->head.mixer->private_data; in scarlett2_sw_hw_enum_ctl_get()
1144 struct usb_mixer_interface *mixer = elem->head.mixer; in scarlett2_sw_hw_enum_ctl_put() local
1145 struct scarlett2_mixer_data *private = mixer->private_data; in scarlett2_sw_hw_enum_ctl_put()
1175 mixer, SCARLETT2_CONFIG_LINE_OUT_VOLUME, in scarlett2_sw_hw_enum_ctl_put()
1181 snd_ctl_notify(mixer->chip->card, SNDRV_CTL_EVENT_MASK_INFO, in scarlett2_sw_hw_enum_ctl_put()
1185 err = scarlett2_usb_set_config(mixer, SCARLETT2_CONFIG_SW_HW_SWITCH, in scarlett2_sw_hw_enum_ctl_put()
1219 struct scarlett2_mixer_data *private = elem->head.mixer->private_data; in scarlett2_level_enum_ctl_get()
1230 struct usb_mixer_interface *mixer = elem->head.mixer; in scarlett2_level_enum_ctl_put() local
1231 struct scarlett2_mixer_data *private = mixer->private_data; in scarlett2_level_enum_ctl_put()
1247 err = scarlett2_usb_set_config(mixer, SCARLETT2_CONFIG_LEVEL_SWITCH, in scarlett2_level_enum_ctl_put()
1271 struct scarlett2_mixer_data *private = elem->head.mixer->private_data; in scarlett2_pad_ctl_get()
1282 struct usb_mixer_interface *mixer = elem->head.mixer; in scarlett2_pad_ctl_put() local
1283 struct scarlett2_mixer_data *private = mixer->private_data; in scarlett2_pad_ctl_put()
1299 err = scarlett2_usb_set_config(mixer, SCARLETT2_CONFIG_PAD_SWITCH, in scarlett2_pad_ctl_put()
1323 struct usb_mixer_interface *mixer = elem->head.mixer; in scarlett2_button_ctl_get() local
1324 struct scarlett2_mixer_data *private = mixer->private_data; in scarlett2_button_ctl_get()
1328 scarlett2_update_volumes(mixer); in scarlett2_button_ctl_get()
1339 struct usb_mixer_interface *mixer = elem->head.mixer; in scarlett2_button_ctl_put() local
1340 struct scarlett2_mixer_data *private = mixer->private_data; in scarlett2_button_ctl_put()
1356 err = scarlett2_usb_set_config(mixer, SCARLETT2_CONFIG_BUTTONS, in scarlett2_button_ctl_put()
1376 static int scarlett2_add_line_out_ctls(struct usb_mixer_interface *mixer) in scarlett2_add_line_out_ctls() argument
1378 struct scarlett2_mixer_data *private = mixer->private_data; in scarlett2_add_line_out_ctls()
1389 err = scarlett2_add_new_ctl(mixer, in scarlett2_add_line_out_ctls()
1408 err = scarlett2_add_new_ctl(mixer, in scarlett2_add_line_out_ctls()
1424 err = scarlett2_add_new_ctl(mixer, in scarlett2_add_line_out_ctls()
1434 err = scarlett2_add_new_ctl(mixer, &scarlett2_button_ctl, in scarlett2_add_line_out_ctls()
1446 static int scarlett2_add_line_in_ctls(struct usb_mixer_interface *mixer) in scarlett2_add_line_in_ctls() argument
1448 struct scarlett2_mixer_data *private = mixer->private_data; in scarlett2_add_line_in_ctls()
1456 err = scarlett2_add_new_ctl(mixer, &scarlett2_level_enum_ctl, in scarlett2_add_line_in_ctls()
1465 err = scarlett2_add_new_ctl(mixer, &scarlett2_pad_ctl, in scarlett2_add_line_in_ctls()
1493 struct scarlett2_mixer_data *private = elem->head.mixer->private_data; in scarlett2_mixer_ctl_get()
1503 struct usb_mixer_interface *mixer = elem->head.mixer; in scarlett2_mixer_ctl_put() local
1504 struct scarlett2_mixer_data *private = mixer->private_data; in scarlett2_mixer_ctl_put()
1520 err = scarlett2_usb_set_mix(mixer, mix_num); in scarlett2_mixer_ctl_put()
1547 static int scarlett2_add_mixer_ctls(struct usb_mixer_interface *mixer) in scarlett2_add_mixer_ctls() argument
1549 struct scarlett2_mixer_data *private = mixer->private_data; in scarlett2_add_mixer_ctls()
1563 err = scarlett2_add_new_ctl(mixer, &scarlett2_mixer_ctl, in scarlett2_add_mixer_ctls()
1579 struct scarlett2_mixer_data *private = elem->head.mixer->private_data; in scarlett2_mux_src_enum_ctl_info()
1611 struct scarlett2_mixer_data *private = elem->head.mixer->private_data; in scarlett2_mux_src_enum_ctl_get()
1621 struct usb_mixer_interface *mixer = elem->head.mixer; in scarlett2_mux_src_enum_ctl_put() local
1622 struct scarlett2_mixer_data *private = mixer->private_data; in scarlett2_mux_src_enum_ctl_put()
1636 err = scarlett2_usb_set_mux(mixer); in scarlett2_mux_src_enum_ctl_put()
1653 static int scarlett2_add_mux_enums(struct usb_mixer_interface *mixer) in scarlett2_add_mux_enums() argument
1655 struct scarlett2_mixer_data *private = mixer->private_data; in scarlett2_add_mux_enums()
1672 err = scarlett2_add_new_ctl(mixer, in scarlett2_add_mux_enums()
1705 err = scarlett2_usb_get_meter_levels(elem->head.mixer, meter_levels); in scarlett2_meter_ctl_get()
1723 static int scarlett2_add_meter_ctl(struct usb_mixer_interface *mixer) in scarlett2_add_meter_ctl() argument
1725 return scarlett2_add_new_ctl(mixer, &scarlett2_meter_ctl, in scarlett2_add_meter_ctl()
1732 static void scarlett2_private_free(struct usb_mixer_interface *mixer) in scarlett2_private_free() argument
1734 struct scarlett2_mixer_data *private = mixer->private_data; in scarlett2_private_free()
1738 mixer->private_data = NULL; in scarlett2_private_free()
1741 static void scarlett2_private_suspend(struct usb_mixer_interface *mixer) in scarlett2_private_suspend() argument
1743 struct scarlett2_mixer_data *private = mixer->private_data; in scarlett2_private_suspend()
1746 scarlett2_config_save(private->mixer); in scarlett2_private_suspend()
1817 static int scarlett2_init_private(struct usb_mixer_interface *mixer, in scarlett2_init_private() argument
1832 private->mixer = mixer; in scarlett2_init_private()
1833 mixer->private_data = private; in scarlett2_init_private()
1834 mixer->private_free = scarlett2_private_free; in scarlett2_init_private()
1835 mixer->private_suspend = scarlett2_private_suspend; in scarlett2_init_private()
1841 return scarlett2_usb(mixer, SCARLETT2_USB_INIT_SEQ, NULL, 0, NULL, 0); in scarlett2_init_private()
1845 static int scarlett2_read_configs(struct usb_mixer_interface *mixer) in scarlett2_read_configs() argument
1847 struct scarlett2_mixer_data *private = mixer->private_data; in scarlett2_read_configs()
1859 mixer, in scarlett2_read_configs()
1871 mixer, in scarlett2_read_configs()
1881 err = scarlett2_usb_get_volume_status(mixer, &volume_status); in scarlett2_read_configs()
1912 struct usb_mixer_interface *mixer) in scarlett2_mixer_interrupt_vol_change() argument
1914 struct scarlett2_mixer_data *private = mixer->private_data; in scarlett2_mixer_interrupt_vol_change()
1922 snd_ctl_notify(mixer->chip->card, SNDRV_CTL_EVENT_MASK_VALUE, in scarlett2_mixer_interrupt_vol_change()
1928 snd_ctl_notify(mixer->chip->card, SNDRV_CTL_EVENT_MASK_VALUE, in scarlett2_mixer_interrupt_vol_change()
1935 struct usb_mixer_interface *mixer) in scarlett2_mixer_interrupt_button_change() argument
1937 struct scarlett2_mixer_data *private = mixer->private_data; in scarlett2_mixer_interrupt_button_change()
1943 snd_ctl_notify(mixer->chip->card, SNDRV_CTL_EVENT_MASK_VALUE, in scarlett2_mixer_interrupt_button_change()
1950 struct usb_mixer_interface *mixer = urb->context; in scarlett2_mixer_interrupt() local
1961 scarlett2_mixer_interrupt_vol_change(mixer); in scarlett2_mixer_interrupt()
1963 scarlett2_mixer_interrupt_button_change(mixer); in scarlett2_mixer_interrupt()
1965 usb_audio_err(mixer->chip, in scarlett2_mixer_interrupt()
1973 urb->dev = mixer->chip->dev; in scarlett2_mixer_interrupt()
1978 static int scarlett2_mixer_status_create(struct usb_mixer_interface *mixer) in scarlett2_mixer_status_create() argument
1980 struct usb_device *dev = mixer->chip->dev; in scarlett2_mixer_status_create()
1985 if (mixer->urb) { in scarlett2_mixer_status_create()
1986 usb_audio_err(mixer->chip, in scarlett2_mixer_status_create()
1994 mixer->urb = usb_alloc_urb(0, GFP_KERNEL); in scarlett2_mixer_status_create()
1995 if (!mixer->urb) in scarlett2_mixer_status_create()
2002 usb_fill_int_urb(mixer->urb, dev, pipe, in scarlett2_mixer_status_create()
2004 scarlett2_mixer_interrupt, mixer, in scarlett2_mixer_status_create()
2007 return usb_submit_urb(mixer->urb, GFP_KERNEL); in scarlett2_mixer_status_create()
2010 static int snd_scarlett_gen2_controls_create(struct usb_mixer_interface *mixer, in snd_scarlett_gen2_controls_create() argument
2016 err = scarlett2_init_private(mixer, info); in snd_scarlett_gen2_controls_create()
2021 err = scarlett2_read_configs(mixer); in snd_scarlett_gen2_controls_create()
2026 err = scarlett2_add_line_out_ctls(mixer); in snd_scarlett_gen2_controls_create()
2031 err = scarlett2_add_line_in_ctls(mixer); in snd_scarlett_gen2_controls_create()
2036 err = scarlett2_add_mux_enums(mixer); in snd_scarlett_gen2_controls_create()
2041 err = scarlett2_add_mixer_ctls(mixer); in snd_scarlett_gen2_controls_create()
2046 err = scarlett2_add_meter_ctl(mixer); in snd_scarlett_gen2_controls_create()
2052 err = scarlett2_mixer_status_create(mixer); in snd_scarlett_gen2_controls_create()
2060 int snd_scarlett_gen2_init(struct usb_mixer_interface *mixer) in snd_scarlett_gen2_init() argument
2062 struct snd_usb_audio *chip = mixer->chip; in snd_scarlett_gen2_init()
2067 if (!mixer->protocol) in snd_scarlett_gen2_init()
2099 err = snd_scarlett_gen2_controls_create(mixer, info); in snd_scarlett_gen2_init()
2101 usb_audio_err(mixer->chip, in snd_scarlett_gen2_init()