Lines Matching refs:mixer

397 	struct usb_mixer_interface *mixer;  member
1274 struct usb_mixer_interface *mixer, u32 cmd, in scarlett2_usb() argument
1277 struct scarlett2_data *private = mixer->private_data; in scarlett2_usb()
1278 struct usb_device *dev = mixer->chip->dev; in scarlett2_usb()
1310 mixer->chip, in scarlett2_usb()
1327 mixer->chip, in scarlett2_usb()
1344 mixer->chip, in scarlett2_usb()
1371 struct usb_mixer_interface *mixer, in scarlett2_usb_get() argument
1381 return scarlett2_usb(mixer, SCARLETT2_USB_GET_DATA, in scarlett2_usb_get()
1387 struct usb_mixer_interface *mixer, in scarlett2_usb_get_config() argument
1390 struct scarlett2_data *private = mixer->private_data; in scarlett2_usb_get_config()
1401 err = scarlett2_usb_get(mixer, config_item->offset, buf, size); in scarlett2_usb_get_config()
1414 err = scarlett2_usb_get(mixer, config_item->offset, &value, 1); in scarlett2_usb_get_config()
1427 static void scarlett2_config_save(struct usb_mixer_interface *mixer) in scarlett2_config_save() argument
1431 int err = scarlett2_usb(mixer, SCARLETT2_USB_DATA_CMD, in scarlett2_config_save()
1435 usb_audio_err(mixer->chip, "config save failed: %d\n", err); in scarlett2_config_save()
1444 scarlett2_config_save(private->mixer); in scarlett2_config_save_work()
1449 struct usb_mixer_interface *mixer, in scarlett2_usb_set_config() argument
1452 struct scarlett2_data *private = mixer->private_data; in scarlett2_usb_set_config()
1484 err = scarlett2_usb_get(mixer, offset, &tmp, 1); in scarlett2_usb_set_config()
1500 err = scarlett2_usb(mixer, SCARLETT2_USB_SET_DATA, in scarlett2_usb_set_config()
1508 err = scarlett2_usb(mixer, SCARLETT2_USB_DATA_CMD, in scarlett2_usb_set_config()
1522 struct usb_mixer_interface *mixer, in scarlett2_usb_get_sync_status() argument
1528 err = scarlett2_usb(mixer, SCARLETT2_USB_GET_SYNC, in scarlett2_usb_get_sync_status()
1539 struct usb_mixer_interface *mixer, in scarlett2_usb_get_volume_status() argument
1542 return scarlett2_usb_get(mixer, SCARLETT2_USB_VOLUME_STATUS_OFFSET, in scarlett2_usb_get_volume_status()
1549 static int scarlett2_usb_get_mix(struct usb_mixer_interface *mixer, in scarlett2_usb_get_mix() argument
1552 struct scarlett2_data *private = mixer->private_data; in scarlett2_usb_get_mix()
1569 err = scarlett2_usb(mixer, SCARLETT2_USB_GET_MIX, in scarlett2_usb_get_mix()
1592 static int scarlett2_usb_set_mix(struct usb_mixer_interface *mixer, in scarlett2_usb_set_mix() argument
1595 struct scarlett2_data *private = mixer->private_data; in scarlett2_usb_set_mix()
1614 return scarlett2_usb(mixer, SCARLETT2_USB_SET_MIX, in scarlett2_usb_set_mix()
1674 usb_audio_err(private->mixer->chip, in scarlett2_usb_populate_mux()
1686 usb_audio_err(private->mixer->chip, in scarlett2_usb_populate_mux()
1696 static int scarlett2_usb_get_mux(struct usb_mixer_interface *mixer) in scarlett2_usb_get_mux() argument
1698 struct scarlett2_data *private = mixer->private_data; in scarlett2_usb_get_mux()
1714 err = scarlett2_usb(mixer, SCARLETT2_USB_GET_MUX, in scarlett2_usb_get_mux()
1727 static int scarlett2_usb_set_mux(struct usb_mixer_interface *mixer) in scarlett2_usb_set_mux() argument
1729 struct scarlett2_data *private = mixer->private_data; in scarlett2_usb_set_mux()
1782 err = scarlett2_usb(mixer, SCARLETT2_USB_SET_MUX, in scarlett2_usb_set_mux()
1793 static int scarlett2_usb_get_meter_levels(struct usb_mixer_interface *mixer, in scarlett2_usb_get_meter_levels() argument
1807 err = scarlett2_usb(mixer, SCARLETT2_USB_GET_METER, in scarlett2_usb_get_meter_levels()
1822 static int scarlett2_add_new_ctl(struct usb_mixer_interface *mixer, in scarlett2_add_new_ctl() argument
1839 elem->head.mixer = mixer; in scarlett2_add_new_ctl()
1869 static int scarlett2_update_sync(struct usb_mixer_interface *mixer) in scarlett2_update_sync() argument
1871 struct scarlett2_data *private = mixer->private_data; in scarlett2_update_sync()
1874 return scarlett2_usb_get_sync_status(mixer, &private->sync); in scarlett2_update_sync()
1890 struct usb_mixer_interface *mixer = elem->head.mixer; in scarlett2_sync_ctl_get() local
1891 struct scarlett2_data *private = mixer->private_data; in scarlett2_sync_ctl_get()
1897 err = scarlett2_update_sync(mixer); in scarlett2_sync_ctl_get()
1916 static int scarlett2_add_sync_ctl(struct usb_mixer_interface *mixer) in scarlett2_add_sync_ctl() argument
1918 struct scarlett2_data *private = mixer->private_data; in scarlett2_add_sync_ctl()
1924 return scarlett2_add_new_ctl(mixer, &scarlett2_sync_ctl, in scarlett2_add_sync_ctl()
1933 static int scarlett2_update_volumes(struct usb_mixer_interface *mixer) in scarlett2_update_volumes() argument
1935 struct scarlett2_data *private = mixer->private_data; in scarlett2_update_volumes()
1946 err = scarlett2_usb_get_volume_status(mixer, &volume_status); in scarlett2_update_volumes()
1986 struct usb_mixer_interface *mixer = elem->head.mixer; in scarlett2_master_volume_ctl_get() local
1987 struct scarlett2_data *private = mixer->private_data; in scarlett2_master_volume_ctl_get()
1993 err = scarlett2_update_volumes(mixer); in scarlett2_master_volume_ctl_get()
2024 struct usb_mixer_interface *mixer = elem->head.mixer; in scarlett2_volume_ctl_get() local
2025 struct scarlett2_data *private = mixer->private_data; in scarlett2_volume_ctl_get()
2032 err = scarlett2_update_volumes(mixer); in scarlett2_volume_ctl_get()
2047 struct usb_mixer_interface *mixer = elem->head.mixer; in scarlett2_volume_ctl_put() local
2048 struct scarlett2_data *private = mixer->private_data; in scarlett2_volume_ctl_put()
2061 err = scarlett2_usb_set_config(mixer, SCARLETT2_CONFIG_LINE_OUT_VOLUME, in scarlett2_volume_ctl_put()
2104 struct usb_mixer_interface *mixer = elem->head.mixer; in scarlett2_mute_ctl_get() local
2105 struct scarlett2_data *private = mixer->private_data; in scarlett2_mute_ctl_get()
2112 err = scarlett2_update_volumes(mixer); in scarlett2_mute_ctl_get()
2127 struct usb_mixer_interface *mixer = elem->head.mixer; in scarlett2_mute_ctl_put() local
2128 struct scarlett2_data *private = mixer->private_data; in scarlett2_mute_ctl_put()
2143 err = scarlett2_usb_set_config(mixer, SCARLETT2_CONFIG_MUTE_SWITCH, in scarlett2_mute_ctl_put()
2189 struct scarlett2_data *private = elem->head.mixer->private_data; in scarlett2_sw_hw_enum_ctl_get()
2196 static void scarlett2_vol_ctl_set_writable(struct usb_mixer_interface *mixer, in scarlett2_vol_ctl_set_writable() argument
2199 struct scarlett2_data *private = mixer->private_data; in scarlett2_vol_ctl_set_writable()
2200 struct snd_card *card = mixer->chip->card; in scarlett2_vol_ctl_set_writable()
2224 static int scarlett2_sw_hw_change(struct usb_mixer_interface *mixer, in scarlett2_sw_hw_change() argument
2227 struct scarlett2_data *private = mixer->private_data; in scarlett2_sw_hw_change()
2236 scarlett2_vol_ctl_set_writable(mixer, ctl_index, !val); in scarlett2_sw_hw_change()
2244 mixer, SCARLETT2_CONFIG_LINE_OUT_VOLUME, in scarlett2_sw_hw_change()
2251 mixer, SCARLETT2_CONFIG_MUTE_SWITCH, in scarlett2_sw_hw_change()
2257 return scarlett2_usb_set_config(mixer, SCARLETT2_CONFIG_SW_HW_SWITCH, in scarlett2_sw_hw_change()
2265 struct usb_mixer_interface *mixer = elem->head.mixer; in scarlett2_sw_hw_enum_ctl_put() local
2266 struct scarlett2_data *private = mixer->private_data; in scarlett2_sw_hw_enum_ctl_put()
2279 err = scarlett2_sw_hw_change(mixer, ctl_index, val); in scarlett2_sw_hw_enum_ctl_put()
2298 static int scarlett2_update_input_other(struct usb_mixer_interface *mixer) in scarlett2_update_input_other() argument
2300 struct scarlett2_data *private = mixer->private_data; in scarlett2_update_input_other()
2307 mixer, SCARLETT2_CONFIG_LEVEL_SWITCH, in scarlett2_update_input_other()
2316 mixer, SCARLETT2_CONFIG_PAD_SWITCH, in scarlett2_update_input_other()
2324 mixer, SCARLETT2_CONFIG_AIR_SWITCH, in scarlett2_update_input_other()
2332 mixer, SCARLETT2_CONFIG_PHANTOM_SWITCH, in scarlett2_update_input_other()
2338 mixer, SCARLETT2_CONFIG_PHANTOM_PERSISTENCE, in scarlett2_update_input_other()
2361 struct usb_mixer_interface *mixer = elem->head.mixer; in scarlett2_level_enum_ctl_get() local
2362 struct scarlett2_data *private = mixer->private_data; in scarlett2_level_enum_ctl_get()
2371 err = scarlett2_update_input_other(mixer); in scarlett2_level_enum_ctl_get()
2386 struct usb_mixer_interface *mixer = elem->head.mixer; in scarlett2_level_enum_ctl_put() local
2387 struct scarlett2_data *private = mixer->private_data; in scarlett2_level_enum_ctl_put()
2404 err = scarlett2_usb_set_config(mixer, SCARLETT2_CONFIG_LEVEL_SWITCH, in scarlett2_level_enum_ctl_put()
2428 struct usb_mixer_interface *mixer = elem->head.mixer; in scarlett2_pad_ctl_get() local
2429 struct scarlett2_data *private = mixer->private_data; in scarlett2_pad_ctl_get()
2435 err = scarlett2_update_input_other(mixer); in scarlett2_pad_ctl_get()
2451 struct usb_mixer_interface *mixer = elem->head.mixer; in scarlett2_pad_ctl_put() local
2452 struct scarlett2_data *private = mixer->private_data; in scarlett2_pad_ctl_put()
2468 err = scarlett2_usb_set_config(mixer, SCARLETT2_CONFIG_PAD_SWITCH, in scarlett2_pad_ctl_put()
2492 struct usb_mixer_interface *mixer = elem->head.mixer; in scarlett2_air_ctl_get() local
2493 struct scarlett2_data *private = mixer->private_data; in scarlett2_air_ctl_get()
2499 err = scarlett2_update_input_other(mixer); in scarlett2_air_ctl_get()
2514 struct usb_mixer_interface *mixer = elem->head.mixer; in scarlett2_air_ctl_put() local
2515 struct scarlett2_data *private = mixer->private_data; in scarlett2_air_ctl_put()
2531 err = scarlett2_usb_set_config(mixer, SCARLETT2_CONFIG_AIR_SWITCH, in scarlett2_air_ctl_put()
2555 struct usb_mixer_interface *mixer = elem->head.mixer; in scarlett2_phantom_ctl_get() local
2556 struct scarlett2_data *private = mixer->private_data; in scarlett2_phantom_ctl_get()
2562 err = scarlett2_update_input_other(mixer); in scarlett2_phantom_ctl_get()
2578 struct usb_mixer_interface *mixer = elem->head.mixer; in scarlett2_phantom_ctl_put() local
2579 struct scarlett2_data *private = mixer->private_data; in scarlett2_phantom_ctl_put()
2595 err = scarlett2_usb_set_config(mixer, SCARLETT2_CONFIG_PHANTOM_SWITCH, in scarlett2_phantom_ctl_put()
2619 struct scarlett2_data *private = elem->head.mixer->private_data; in scarlett2_phantom_persistence_ctl_get()
2629 struct usb_mixer_interface *mixer = elem->head.mixer; in scarlett2_phantom_persistence_ctl_put() local
2630 struct scarlett2_data *private = mixer->private_data; in scarlett2_phantom_persistence_ctl_put()
2647 mixer, SCARLETT2_CONFIG_PHANTOM_PERSISTENCE, index, val); in scarlett2_phantom_persistence_ctl_put()
2666 static int scarlett2_update_monitor_other(struct usb_mixer_interface *mixer) in scarlett2_update_monitor_other() argument
2668 struct scarlett2_data *private = mixer->private_data; in scarlett2_update_monitor_other()
2686 mixer, SCARLETT2_CONFIG_DIRECT_MONITOR, in scarlett2_update_monitor_other()
2696 mixer, SCARLETT2_CONFIG_MONITOR_OTHER_ENABLE, in scarlett2_update_monitor_other()
2702 mixer, SCARLETT2_CONFIG_MONITOR_OTHER_SWITCH, in scarlett2_update_monitor_other()
2725 err = scarlett2_usb_get_config(mixer, in scarlett2_update_monitor_other()
2741 struct usb_mixer_interface *mixer = elem->head.mixer; in scarlett2_direct_monitor_ctl_get() local
2742 struct scarlett2_data *private = elem->head.mixer->private_data; in scarlett2_direct_monitor_ctl_get()
2748 err = scarlett2_update_monitor_other(mixer); in scarlett2_direct_monitor_ctl_get()
2763 struct usb_mixer_interface *mixer = elem->head.mixer; in scarlett2_direct_monitor_ctl_put() local
2764 struct scarlett2_data *private = mixer->private_data; in scarlett2_direct_monitor_ctl_put()
2781 mixer, SCARLETT2_CONFIG_DIRECT_MONITOR, index, val); in scarlett2_direct_monitor_ctl_put()
2820 static int scarlett2_add_direct_monitor_ctl(struct usb_mixer_interface *mixer) in scarlett2_add_direct_monitor_ctl() argument
2822 struct scarlett2_data *private = mixer->private_data; in scarlett2_add_direct_monitor_ctl()
2834 mixer, &scarlett2_direct_monitor_ctl[info->direct_monitor - 1], in scarlett2_add_direct_monitor_ctl()
2854 struct usb_mixer_interface *mixer = elem->head.mixer; in scarlett2_speaker_switch_enum_ctl_get() local
2855 struct scarlett2_data *private = mixer->private_data; in scarlett2_speaker_switch_enum_ctl_get()
2861 err = scarlett2_update_monitor_other(mixer); in scarlett2_speaker_switch_enum_ctl_get()
2875 static int scarlett2_speaker_switch_enable(struct usb_mixer_interface *mixer) in scarlett2_speaker_switch_enable() argument
2877 struct snd_card *card = mixer->chip->card; in scarlett2_speaker_switch_enable()
2878 struct scarlett2_data *private = mixer->private_data; in scarlett2_speaker_switch_enable()
2886 err = scarlett2_sw_hw_change(private->mixer, i, 1); in scarlett2_speaker_switch_enable()
2910 static void scarlett2_speaker_switch_disable(struct usb_mixer_interface *mixer) in scarlett2_speaker_switch_disable() argument
2912 struct snd_card *card = mixer->chip->card; in scarlett2_speaker_switch_disable()
2913 struct scarlett2_data *private = mixer->private_data; in scarlett2_speaker_switch_disable()
2933 struct usb_mixer_interface *mixer = elem->head.mixer; in scarlett2_speaker_switch_enum_ctl_put() local
2934 struct scarlett2_data *private = mixer->private_data; in scarlett2_speaker_switch_enum_ctl_put()
2950 mixer, SCARLETT2_CONFIG_MONITOR_OTHER_ENABLE, in scarlett2_speaker_switch_enum_ctl_put()
2957 mixer, SCARLETT2_CONFIG_MONITOR_OTHER_SWITCH, in scarlett2_speaker_switch_enum_ctl_put()
2964 err = scarlett2_speaker_switch_enable(mixer); in scarlett2_speaker_switch_enum_ctl_put()
2966 scarlett2_speaker_switch_disable(mixer); in scarlett2_speaker_switch_enum_ctl_put()
2985 struct usb_mixer_interface *mixer) in scarlett2_add_speaker_switch_ctl() argument
2987 struct scarlett2_data *private = mixer->private_data; in scarlett2_add_speaker_switch_ctl()
2994 mixer, &scarlett2_speaker_switch_enum_ctl, in scarlett2_add_speaker_switch_ctl()
3015 struct usb_mixer_interface *mixer = elem->head.mixer; in scarlett2_talkback_enum_ctl_get() local
3016 struct scarlett2_data *private = mixer->private_data; in scarlett2_talkback_enum_ctl_get()
3022 err = scarlett2_update_monitor_other(mixer); in scarlett2_talkback_enum_ctl_get()
3037 struct usb_mixer_interface *mixer = elem->head.mixer; in scarlett2_talkback_enum_ctl_put() local
3038 struct scarlett2_data *private = mixer->private_data; in scarlett2_talkback_enum_ctl_put()
3054 mixer, SCARLETT2_CONFIG_MONITOR_OTHER_ENABLE, in scarlett2_talkback_enum_ctl_put()
3061 mixer, SCARLETT2_CONFIG_MONITOR_OTHER_SWITCH, in scarlett2_talkback_enum_ctl_put()
3083 struct usb_mixer_interface *mixer = elem->head.mixer; in scarlett2_talkback_map_ctl_get() local
3084 struct scarlett2_data *private = mixer->private_data; in scarlett2_talkback_map_ctl_get()
3096 struct usb_mixer_interface *mixer = elem->head.mixer; in scarlett2_talkback_map_ctl_put() local
3097 struct scarlett2_data *private = mixer->private_data; in scarlett2_talkback_map_ctl_put()
3120 err = scarlett2_usb_set_config(mixer, SCARLETT2_CONFIG_TALKBACK_MAP, in scarlett2_talkback_map_ctl_put()
3139 struct usb_mixer_interface *mixer) in scarlett2_add_talkback_ctls() argument
3141 struct scarlett2_data *private = mixer->private_data; in scarlett2_add_talkback_ctls()
3152 mixer, &scarlett2_talkback_enum_ctl, in scarlett2_add_talkback_ctls()
3161 err = scarlett2_add_new_ctl(mixer, &scarlett2_talkback_map_ctl, in scarlett2_add_talkback_ctls()
3176 struct usb_mixer_interface *mixer = elem->head.mixer; in scarlett2_dim_mute_ctl_get() local
3177 struct scarlett2_data *private = mixer->private_data; in scarlett2_dim_mute_ctl_get()
3183 err = scarlett2_update_volumes(mixer); in scarlett2_dim_mute_ctl_get()
3198 struct usb_mixer_interface *mixer = elem->head.mixer; in scarlett2_dim_mute_ctl_put() local
3199 struct scarlett2_data *private = mixer->private_data; in scarlett2_dim_mute_ctl_put()
3219 err = scarlett2_usb_set_config(mixer, SCARLETT2_CONFIG_DIM_MUTE, in scarlett2_dim_mute_ctl_put()
3230 snd_ctl_notify(mixer->chip->card, in scarlett2_dim_mute_ctl_put()
3251 static int scarlett2_add_line_out_ctls(struct usb_mixer_interface *mixer) in scarlett2_add_line_out_ctls() argument
3253 struct scarlett2_data *private = mixer->private_data; in scarlett2_add_line_out_ctls()
3264 err = scarlett2_add_new_ctl(mixer, in scarlett2_add_line_out_ctls()
3284 err = scarlett2_add_new_ctl(mixer, in scarlett2_add_line_out_ctls()
3294 err = scarlett2_add_new_ctl(mixer, in scarlett2_add_line_out_ctls()
3305 scarlett2_vol_ctl_set_writable(mixer, i, 0); in scarlett2_add_line_out_ctls()
3312 err = scarlett2_add_new_ctl(mixer, in scarlett2_add_line_out_ctls()
3331 mixer, &scarlett2_dim_mute_ctl, in scarlett2_add_line_out_ctls()
3343 static int scarlett2_add_line_in_ctls(struct usb_mixer_interface *mixer) in scarlett2_add_line_in_ctls() argument
3345 struct scarlett2_data *private = mixer->private_data; in scarlett2_add_line_in_ctls()
3356 err = scarlett2_add_new_ctl(mixer, &scarlett2_level_enum_ctl, in scarlett2_add_line_in_ctls()
3365 err = scarlett2_add_new_ctl(mixer, &scarlett2_pad_ctl, in scarlett2_add_line_in_ctls()
3374 err = scarlett2_add_new_ctl(mixer, &scarlett2_air_ctl, in scarlett2_add_line_in_ctls()
3386 mixer, &scarlett2_phantom_ctl, in scarlett2_add_line_in_ctls()
3399 mixer, &scarlett2_phantom_ctl, in scarlett2_add_line_in_ctls()
3407 mixer, &scarlett2_phantom_persistence_ctl, 0, 1, in scarlett2_add_line_in_ctls()
3435 struct scarlett2_data *private = elem->head.mixer->private_data; in scarlett2_mixer_ctl_get()
3445 struct usb_mixer_interface *mixer = elem->head.mixer; in scarlett2_mixer_ctl_put() local
3446 struct scarlett2_data *private = mixer->private_data; in scarlett2_mixer_ctl_put()
3464 err = scarlett2_usb_set_mix(mixer, mix_num); in scarlett2_mixer_ctl_put()
3491 static int scarlett2_add_mixer_ctls(struct usb_mixer_interface *mixer) in scarlett2_add_mixer_ctls() argument
3493 struct scarlett2_data *private = mixer->private_data; in scarlett2_add_mixer_ctls()
3510 err = scarlett2_add_new_ctl(mixer, &scarlett2_mixer_ctl, in scarlett2_add_mixer_ctls()
3525 struct scarlett2_data *private = elem->head.mixer->private_data; in scarlett2_mux_src_enum_ctl_info()
3560 struct usb_mixer_interface *mixer = elem->head.mixer; in scarlett2_mux_src_enum_ctl_get() local
3561 struct scarlett2_data *private = mixer->private_data; in scarlett2_mux_src_enum_ctl_get()
3568 err = scarlett2_usb_get_mux(mixer); in scarlett2_mux_src_enum_ctl_get()
3583 struct usb_mixer_interface *mixer = elem->head.mixer; in scarlett2_mux_src_enum_ctl_put() local
3584 struct scarlett2_data *private = mixer->private_data; in scarlett2_mux_src_enum_ctl_put()
3598 err = scarlett2_usb_set_mux(mixer); in scarlett2_mux_src_enum_ctl_put()
3615 static int scarlett2_add_mux_enums(struct usb_mixer_interface *mixer) in scarlett2_add_mux_enums() argument
3617 struct scarlett2_data *private = mixer->private_data; in scarlett2_add_mux_enums()
3636 err = scarlett2_add_new_ctl(mixer, in scarlett2_add_mux_enums()
3670 err = scarlett2_usb_get_meter_levels(elem->head.mixer, elem->channels, in scarlett2_meter_ctl_get()
3689 static int scarlett2_add_meter_ctl(struct usb_mixer_interface *mixer) in scarlett2_add_meter_ctl() argument
3691 struct scarlett2_data *private = mixer->private_data; in scarlett2_add_meter_ctl()
3697 return scarlett2_add_new_ctl(mixer, &scarlett2_meter_ctl, in scarlett2_add_meter_ctl()
3708 struct scarlett2_data *private = elem->head.mixer->private_data; in scarlett2_msd_ctl_get()
3718 struct usb_mixer_interface *mixer = elem->head.mixer; in scarlett2_msd_ctl_put() local
3719 struct scarlett2_data *private = mixer->private_data; in scarlett2_msd_ctl_put()
3734 err = scarlett2_usb_set_config(mixer, SCARLETT2_CONFIG_MSD_SWITCH, in scarlett2_msd_ctl_put()
3752 static int scarlett2_add_msd_ctl(struct usb_mixer_interface *mixer) in scarlett2_add_msd_ctl() argument
3754 struct scarlett2_data *private = mixer->private_data; in scarlett2_add_msd_ctl()
3761 if (!private->msd_switch && !(mixer->chip->setup & SCARLETT2_MSD_ENABLE)) in scarlett2_add_msd_ctl()
3765 return scarlett2_add_new_ctl(mixer, &scarlett2_msd_ctl, in scarlett2_add_msd_ctl()
3775 struct scarlett2_data *private = elem->head.mixer->private_data; in scarlett2_standalone_ctl_get()
3785 struct usb_mixer_interface *mixer = elem->head.mixer; in scarlett2_standalone_ctl_put() local
3786 struct scarlett2_data *private = mixer->private_data; in scarlett2_standalone_ctl_put()
3801 err = scarlett2_usb_set_config(mixer, in scarlett2_standalone_ctl_put()
3820 static int scarlett2_add_standalone_ctl(struct usb_mixer_interface *mixer) in scarlett2_add_standalone_ctl() argument
3822 struct scarlett2_data *private = mixer->private_data; in scarlett2_add_standalone_ctl()
3828 return scarlett2_add_new_ctl(mixer, &scarlett2_standalone_ctl, in scarlett2_add_standalone_ctl()
3834 static void scarlett2_private_free(struct usb_mixer_interface *mixer) in scarlett2_private_free() argument
3836 struct scarlett2_data *private = mixer->private_data; in scarlett2_private_free()
3840 mixer->private_data = NULL; in scarlett2_private_free()
3843 static void scarlett2_private_suspend(struct usb_mixer_interface *mixer) in scarlett2_private_suspend() argument
3845 struct scarlett2_data *private = mixer->private_data; in scarlett2_private_suspend()
3848 scarlett2_config_save(private->mixer); in scarlett2_private_suspend()
3903 static int scarlett2_init_private(struct usb_mixer_interface *mixer, in scarlett2_init_private() argument
3916 mixer->private_data = private; in scarlett2_init_private()
3917 mixer->private_free = scarlett2_private_free; in scarlett2_init_private()
3918 mixer->private_suspend = scarlett2_private_suspend; in scarlett2_init_private()
3924 private->mixer = mixer; in scarlett2_init_private()
3926 return scarlett2_find_fc_interface(mixer->chip->dev, private); in scarlett2_init_private()
3930 static int scarlett2_usb_init(struct usb_mixer_interface *mixer) in scarlett2_usb_init() argument
3932 struct usb_device *dev = mixer->chip->dev; in scarlett2_usb_init()
3933 struct scarlett2_data *private = mixer->private_data; in scarlett2_usb_init()
3948 err = scarlett2_usb(mixer, SCARLETT2_USB_INIT_1, NULL, 0, NULL, 0); in scarlett2_usb_init()
3954 return scarlett2_usb(mixer, SCARLETT2_USB_INIT_2, NULL, 0, NULL, 84); in scarlett2_usb_init()
3958 static int scarlett2_read_configs(struct usb_mixer_interface *mixer) in scarlett2_read_configs() argument
3960 struct scarlett2_data *private = mixer->private_data; in scarlett2_read_configs()
3972 mixer, SCARLETT2_CONFIG_MSD_SWITCH, in scarlett2_read_configs()
3982 err = scarlett2_update_input_other(mixer); in scarlett2_read_configs()
3986 err = scarlett2_update_monitor_other(mixer); in scarlett2_read_configs()
3995 mixer, SCARLETT2_CONFIG_STANDALONE_SWITCH, in scarlett2_read_configs()
4000 err = scarlett2_update_sync(mixer); in scarlett2_read_configs()
4004 err = scarlett2_usb_get_volume_status(mixer, &volume_status); in scarlett2_read_configs()
4037 err = scarlett2_usb_get_mix(mixer, i); in scarlett2_read_configs()
4042 return scarlett2_usb_get_mux(mixer); in scarlett2_read_configs()
4047 struct usb_mixer_interface *mixer) in scarlett2_notify_sync() argument
4049 struct scarlett2_data *private = mixer->private_data; in scarlett2_notify_sync()
4053 snd_ctl_notify(mixer->chip->card, SNDRV_CTL_EVENT_MASK_VALUE, in scarlett2_notify_sync()
4059 struct usb_mixer_interface *mixer) in scarlett2_notify_monitor() argument
4061 struct snd_card *card = mixer->chip->card; in scarlett2_notify_monitor()
4062 struct scarlett2_data *private = mixer->private_data; in scarlett2_notify_monitor()
4075 snd_ctl_notify(mixer->chip->card, SNDRV_CTL_EVENT_MASK_VALUE, in scarlett2_notify_monitor()
4086 struct usb_mixer_interface *mixer) in scarlett2_notify_dim_mute() argument
4088 struct snd_card *card = mixer->chip->card; in scarlett2_notify_dim_mute()
4089 struct scarlett2_data *private = mixer->private_data; in scarlett2_notify_dim_mute()
4113 struct usb_mixer_interface *mixer) in scarlett2_notify_input_other() argument
4115 struct snd_card *card = mixer->chip->card; in scarlett2_notify_input_other()
4116 struct scarlett2_data *private = mixer->private_data; in scarlett2_notify_input_other()
4140 struct usb_mixer_interface *mixer) in scarlett2_notify_monitor_other() argument
4142 struct snd_card *card = mixer->chip->card; in scarlett2_notify_monitor_other()
4143 struct scarlett2_data *private = mixer->private_data; in scarlett2_notify_monitor_other()
4168 scarlett2_notify_dim_mute(mixer); in scarlett2_notify_monitor_other()
4182 struct usb_mixer_interface *mixer = urb->context; in scarlett2_notify() local
4192 scarlett2_notify_sync(mixer); in scarlett2_notify()
4194 scarlett2_notify_monitor(mixer); in scarlett2_notify()
4196 scarlett2_notify_dim_mute(mixer); in scarlett2_notify()
4198 scarlett2_notify_input_other(mixer); in scarlett2_notify()
4200 scarlett2_notify_monitor_other(mixer); in scarlett2_notify()
4206 urb->dev = mixer->chip->dev; in scarlett2_notify()
4211 static int scarlett2_init_notify(struct usb_mixer_interface *mixer) in scarlett2_init_notify() argument
4213 struct usb_device *dev = mixer->chip->dev; in scarlett2_init_notify()
4214 struct scarlett2_data *private = mixer->private_data; in scarlett2_init_notify()
4218 if (mixer->urb) { in scarlett2_init_notify()
4219 usb_audio_err(mixer->chip, in scarlett2_init_notify()
4227 mixer->urb = usb_alloc_urb(0, GFP_KERNEL); in scarlett2_init_notify()
4228 if (!mixer->urb) in scarlett2_init_notify()
4235 usb_fill_int_urb(mixer->urb, dev, pipe, in scarlett2_init_notify()
4237 scarlett2_notify, mixer, private->bInterval); in scarlett2_init_notify()
4239 return usb_submit_urb(mixer->urb, GFP_KERNEL); in scarlett2_init_notify()
4243 struct usb_mixer_interface *mixer) in get_scarlett2_device_entry() argument
4248 while (entry->usb_id && entry->usb_id != mixer->chip->usb_id) in get_scarlett2_device_entry()
4257 struct usb_mixer_interface *mixer, in snd_scarlett2_controls_create() argument
4263 err = scarlett2_init_private(mixer, entry); in snd_scarlett2_controls_create()
4268 err = scarlett2_usb_init(mixer); in snd_scarlett2_controls_create()
4273 err = scarlett2_read_configs(mixer); in snd_scarlett2_controls_create()
4278 err = scarlett2_add_msd_ctl(mixer); in snd_scarlett2_controls_create()
4283 if (((struct scarlett2_data *)mixer->private_data)->msd_switch) in snd_scarlett2_controls_create()
4287 err = scarlett2_add_line_out_ctls(mixer); in snd_scarlett2_controls_create()
4292 err = scarlett2_add_line_in_ctls(mixer); in snd_scarlett2_controls_create()
4297 err = scarlett2_add_mux_enums(mixer); in snd_scarlett2_controls_create()
4302 err = scarlett2_add_mixer_ctls(mixer); in snd_scarlett2_controls_create()
4307 err = scarlett2_add_meter_ctl(mixer); in snd_scarlett2_controls_create()
4312 err = scarlett2_add_sync_ctl(mixer); in snd_scarlett2_controls_create()
4317 err = scarlett2_add_direct_monitor_ctl(mixer); in snd_scarlett2_controls_create()
4322 err = scarlett2_add_speaker_switch_ctl(mixer); in snd_scarlett2_controls_create()
4327 err = scarlett2_add_talkback_ctls(mixer); in snd_scarlett2_controls_create()
4332 err = scarlett2_add_standalone_ctl(mixer); in snd_scarlett2_controls_create()
4337 err = scarlett2_init_notify(mixer); in snd_scarlett2_controls_create()
4344 int snd_scarlett2_init(struct usb_mixer_interface *mixer) in snd_scarlett2_init() argument
4346 struct snd_usb_audio *chip = mixer->chip; in snd_scarlett2_init()
4351 if (!mixer->protocol) in snd_scarlett2_init()
4355 entry = get_scarlett2_device_entry(mixer); in snd_scarlett2_init()
4357 usb_audio_err(mixer->chip, in snd_scarlett2_init()
4383 err = snd_scarlett2_controls_create(mixer, entry); in snd_scarlett2_init()
4385 usb_audio_err(mixer->chip, in snd_scarlett2_init()