Lines Matching full:mixer

67 #include "mixer.h"
80 struct usb_mixer_interface *mixer; member
133 static int fcp_init(struct usb_mixer_interface *mixer,
179 static int fcp_usb(struct usb_mixer_interface *mixer, u32 opcode, in fcp_usb() argument
183 struct fcp_data *private = mixer->private_data; in fcp_usb()
184 struct usb_device *dev = mixer->chip->dev; in fcp_usb()
193 if (!mixer->urb) in fcp_usb()
218 usb_audio_err(mixer->chip, in fcp_usb()
225 usb_audio_err(mixer->chip, in fcp_usb()
245 usb_audio_err(mixer->chip, in fcp_usb()
252 usb_audio_err(mixer->chip, in fcp_usb()
259 usb_audio_err(mixer->chip, in fcp_usb()
267 usb_audio_err(mixer->chip, in fcp_usb()
274 usb_audio_err(mixer->chip, in fcp_usb()
281 usb_audio_err(mixer->chip, in fcp_usb()
288 usb_audio_err(mixer->chip, in fcp_usb()
300 static int fcp_reinit(struct usb_mixer_interface *mixer) in fcp_reinit() argument
302 struct fcp_data *private = mixer->private_data; in fcp_reinit()
306 if (mixer->urb) in fcp_reinit()
316 return fcp_init(mixer, step0_resp, step2_resp); in fcp_reinit()
322 static int fcp_add_new_ctl(struct usb_mixer_interface *mixer, in fcp_add_new_ctl() argument
335 /* We set USB_MIXER_BESPOKEN type, so that the core USB mixer code in fcp_add_new_ctl()
339 elem->head.mixer = mixer; in fcp_add_new_ctl()
383 struct usb_mixer_interface *mixer = elem->head.mixer; in fcp_meter_ctl_get() local
384 struct fcp_data *private = mixer->private_data; in fcp_meter_ctl_get()
397 err = fcp_reinit(mixer); in fcp_meter_ctl_get()
407 err = fcp_usb(mixer, FCP_USB_GET_METER, in fcp_meter_ctl_get()
428 struct usb_mixer_interface *mixer = elem->head.mixer; in fcp_meter_tlv_callback() local
429 struct fcp_data *private = mixer->private_data; in fcp_meter_tlv_callback()
461 static int fcp_ioctl_init(struct usb_mixer_interface *mixer, in fcp_ioctl_init() argument
465 struct usb_device *dev = mixer->chip->dev; in fcp_ioctl_init()
466 struct fcp_data *private = mixer->private_data; in fcp_ioctl_init()
499 err = fcp_init(mixer, resp, step2_resp); in fcp_ioctl_init()
551 static int fcp_ioctl_cmd(struct usb_mixer_interface *mixer, in fcp_ioctl_cmd() argument
567 err = fcp_reinit(mixer); in fcp_ioctl_cmd()
591 err = fcp_usb(mixer, cmd.opcode, in fcp_ioctl_cmd()
617 static int fcp_ioctl_set_meter_map(struct usb_mixer_interface *mixer, in fcp_ioctl_set_meter_map() argument
621 struct fcp_data *private = mixer->private_data; in fcp_ioctl_set_meter_map()
672 err = fcp_add_new_ctl(mixer, &fcp_meter_ctl, 0, map.map_size, in fcp_ioctl_set_meter_map()
692 static int fcp_ioctl_set_meter_labels(struct usb_mixer_interface *mixer, in fcp_ioctl_set_meter_labels() argument
696 struct fcp_data *private = mixer->private_data; in fcp_ioctl_set_meter_labels()
711 snd_ctl_notify(mixer->chip->card, in fcp_ioctl_set_meter_labels()
749 snd_ctl_notify(mixer->chip->card, in fcp_ioctl_set_meter_labels()
764 struct usb_mixer_interface *mixer = hw->private_data; in fcp_hwdep_open() local
765 struct fcp_data *private = mixer->private_data; in fcp_hwdep_open()
778 struct usb_mixer_interface *mixer = hw->private_data; in fcp_hwdep_ioctl() local
779 struct fcp_data *private = mixer->private_data; in fcp_hwdep_ioctl()
792 return fcp_ioctl_init(mixer, argp); in fcp_hwdep_ioctl()
797 return fcp_ioctl_cmd(mixer, argp); in fcp_hwdep_ioctl()
802 return fcp_ioctl_set_meter_map(mixer, argp); in fcp_hwdep_ioctl()
809 return fcp_ioctl_set_meter_labels(mixer, argp); in fcp_hwdep_ioctl()
821 struct usb_mixer_interface *mixer = hw->private_data; in fcp_hwdep_read() local
822 struct fcp_data *private = mixer->private_data; in fcp_hwdep_read()
850 struct usb_mixer_interface *mixer = hw->private_data; in fcp_hwdep_poll() local
851 struct fcp_data *private = mixer->private_data; in fcp_hwdep_poll()
864 struct usb_mixer_interface *mixer = hw->private_data; in fcp_hwdep_release() local
865 struct fcp_data *private = mixer->private_data; in fcp_hwdep_release()
875 static int fcp_hwdep_init(struct usb_mixer_interface *mixer) in fcp_hwdep_init() argument
880 err = snd_hwdep_new(mixer->chip->card, "Focusrite Control", 0, &hw); in fcp_hwdep_init()
884 hw->private_data = mixer; in fcp_hwdep_init()
898 static void fcp_cleanup_urb(struct usb_mixer_interface *mixer) in fcp_cleanup_urb() argument
900 if (!mixer->urb) in fcp_cleanup_urb()
903 usb_kill_urb(mixer->urb); in fcp_cleanup_urb()
904 kfree(mixer->urb->transfer_buffer); in fcp_cleanup_urb()
905 usb_free_urb(mixer->urb); in fcp_cleanup_urb()
906 mixer->urb = NULL; in fcp_cleanup_urb()
909 static void fcp_private_free(struct usb_mixer_interface *mixer) in fcp_private_free() argument
911 struct fcp_data *private = mixer->private_data; in fcp_private_free()
913 fcp_cleanup_urb(mixer); in fcp_private_free()
919 mixer->private_data = NULL; in fcp_private_free()
922 static void fcp_private_suspend(struct usb_mixer_interface *mixer) in fcp_private_suspend() argument
924 fcp_cleanup_urb(mixer); in fcp_private_suspend()
931 struct usb_mixer_interface *mixer = urb->context; in fcp_notify() local
932 struct fcp_data *private = mixer->private_data; in fcp_notify()
962 urb->dev = mixer->chip->dev; in fcp_notify()
970 static int fcp_init_notify(struct usb_mixer_interface *mixer) in fcp_init_notify() argument
972 struct usb_device *dev = mixer->chip->dev; in fcp_init_notify()
973 struct fcp_data *private = mixer->private_data; in fcp_init_notify()
979 if (mixer->urb) in fcp_init_notify()
985 mixer->urb = usb_alloc_urb(0, GFP_KERNEL); in fcp_init_notify()
986 if (!mixer->urb) in fcp_init_notify()
991 usb_free_urb(mixer->urb); in fcp_init_notify()
992 mixer->urb = NULL; in fcp_init_notify()
996 usb_fill_int_urb(mixer->urb, dev, pipe, in fcp_init_notify()
998 fcp_notify, mixer, private->bInterval); in fcp_init_notify()
1002 err = usb_submit_urb(mixer->urb, GFP_KERNEL); in fcp_init_notify()
1004 usb_audio_err(mixer->chip, in fcp_init_notify()
1008 usb_free_urb(mixer->urb); in fcp_init_notify()
1009 mixer->urb = NULL; in fcp_init_notify()
1017 static int fcp_init(struct usb_mixer_interface *mixer, in fcp_init() argument
1020 struct fcp_data *private = mixer->private_data; in fcp_init()
1021 struct usb_device *dev = mixer->chip->dev; in fcp_init()
1032 err = fcp_init_notify(mixer); in fcp_init()
1039 err = fcp_usb(mixer, private->init1_opcode, NULL, 0, NULL, 0); in fcp_init()
1043 err = fcp_usb(mixer, private->init2_opcode, in fcp_init()
1051 static int fcp_init_private(struct usb_mixer_interface *mixer) in fcp_init_private() argument
1063 mixer->private_data = private; in fcp_init_private()
1064 mixer->private_free = fcp_private_free; in fcp_init_private()
1065 mixer->private_suspend = fcp_private_suspend; in fcp_init_private()
1067 private->mixer = mixer; in fcp_init_private()
1077 static int fcp_find_fc_interface(struct usb_mixer_interface *mixer) in fcp_find_fc_interface() argument
1079 struct snd_usb_audio *chip = mixer->chip; in fcp_find_fc_interface()
1080 struct fcp_data *private = mixer->private_data; in fcp_find_fc_interface()
1106 int snd_fcp_init(struct usb_mixer_interface *mixer) in snd_fcp_init() argument
1108 struct snd_usb_audio *chip = mixer->chip; in snd_fcp_init()
1112 if (!mixer->protocol) in snd_fcp_init()
1115 err = fcp_init_private(mixer); in snd_fcp_init()
1119 err = fcp_find_fc_interface(mixer); in snd_fcp_init()
1123 err = fcp_hwdep_init(mixer); in snd_fcp_init()