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()
669 err = fcp_add_new_ctl(mixer, &fcp_meter_ctl, 0, map.map_size, in fcp_ioctl_set_meter_map()
689 static int fcp_ioctl_set_meter_labels(struct usb_mixer_interface *mixer, in fcp_ioctl_set_meter_labels() argument
693 struct fcp_data *private = mixer->private_data; in fcp_ioctl_set_meter_labels()
708 snd_ctl_notify(mixer->chip->card, in fcp_ioctl_set_meter_labels()
746 snd_ctl_notify(mixer->chip->card, in fcp_ioctl_set_meter_labels()
761 struct usb_mixer_interface *mixer = hw->private_data; in fcp_hwdep_open() local
762 struct fcp_data *private = mixer->private_data; in fcp_hwdep_open()
775 struct usb_mixer_interface *mixer = hw->private_data; in fcp_hwdep_ioctl() local
776 struct fcp_data *private = mixer->private_data; in fcp_hwdep_ioctl()
789 return fcp_ioctl_init(mixer, argp); in fcp_hwdep_ioctl()
794 return fcp_ioctl_cmd(mixer, argp); in fcp_hwdep_ioctl()
799 return fcp_ioctl_set_meter_map(mixer, argp); in fcp_hwdep_ioctl()
806 return fcp_ioctl_set_meter_labels(mixer, argp); in fcp_hwdep_ioctl()
818 struct usb_mixer_interface *mixer = hw->private_data; in fcp_hwdep_read() local
819 struct fcp_data *private = mixer->private_data; in fcp_hwdep_read()
846 struct usb_mixer_interface *mixer = hw->private_data; in fcp_hwdep_poll() local
847 struct fcp_data *private = mixer->private_data; in fcp_hwdep_poll()
860 struct usb_mixer_interface *mixer = hw->private_data; in fcp_hwdep_release() local
861 struct fcp_data *private = mixer->private_data; in fcp_hwdep_release()
871 static int fcp_hwdep_init(struct usb_mixer_interface *mixer) in fcp_hwdep_init() argument
876 err = snd_hwdep_new(mixer->chip->card, "Focusrite Control", 0, &hw); in fcp_hwdep_init()
880 hw->private_data = mixer; in fcp_hwdep_init()
894 static void fcp_cleanup_urb(struct usb_mixer_interface *mixer) in fcp_cleanup_urb() argument
896 if (!mixer->urb) in fcp_cleanup_urb()
899 usb_kill_urb(mixer->urb); in fcp_cleanup_urb()
900 kfree(mixer->urb->transfer_buffer); in fcp_cleanup_urb()
901 usb_free_urb(mixer->urb); in fcp_cleanup_urb()
902 mixer->urb = NULL; in fcp_cleanup_urb()
905 static void fcp_private_free(struct usb_mixer_interface *mixer) in fcp_private_free() argument
907 struct fcp_data *private = mixer->private_data; in fcp_private_free()
909 fcp_cleanup_urb(mixer); in fcp_private_free()
915 mixer->private_data = NULL; in fcp_private_free()
918 static void fcp_private_suspend(struct usb_mixer_interface *mixer) in fcp_private_suspend() argument
920 fcp_cleanup_urb(mixer); in fcp_private_suspend()
927 struct usb_mixer_interface *mixer = urb->context; in fcp_notify() local
928 struct fcp_data *private = mixer->private_data; in fcp_notify()
956 urb->dev = mixer->chip->dev; in fcp_notify()
964 static int fcp_init_notify(struct usb_mixer_interface *mixer) in fcp_init_notify() argument
966 struct usb_device *dev = mixer->chip->dev; in fcp_init_notify()
967 struct fcp_data *private = mixer->private_data; in fcp_init_notify()
973 if (mixer->urb) in fcp_init_notify()
979 mixer->urb = usb_alloc_urb(0, GFP_KERNEL); in fcp_init_notify()
980 if (!mixer->urb) in fcp_init_notify()
985 usb_free_urb(mixer->urb); in fcp_init_notify()
986 mixer->urb = NULL; in fcp_init_notify()
990 usb_fill_int_urb(mixer->urb, dev, pipe, in fcp_init_notify()
992 fcp_notify, mixer, private->bInterval); in fcp_init_notify()
996 err = usb_submit_urb(mixer->urb, GFP_KERNEL); in fcp_init_notify()
998 usb_audio_err(mixer->chip, in fcp_init_notify()
1002 usb_free_urb(mixer->urb); in fcp_init_notify()
1003 mixer->urb = NULL; in fcp_init_notify()
1011 static int fcp_init(struct usb_mixer_interface *mixer, in fcp_init() argument
1014 struct fcp_data *private = mixer->private_data; in fcp_init()
1015 struct usb_device *dev = mixer->chip->dev; in fcp_init()
1026 err = fcp_init_notify(mixer); in fcp_init()
1033 err = fcp_usb(mixer, private->init1_opcode, NULL, 0, NULL, 0); in fcp_init()
1037 err = fcp_usb(mixer, private->init2_opcode, in fcp_init()
1045 static int fcp_init_private(struct usb_mixer_interface *mixer) in fcp_init_private() argument
1057 mixer->private_data = private; in fcp_init_private()
1058 mixer->private_free = fcp_private_free; in fcp_init_private()
1059 mixer->private_suspend = fcp_private_suspend; in fcp_init_private()
1061 private->mixer = mixer; in fcp_init_private()
1071 static int fcp_find_fc_interface(struct usb_mixer_interface *mixer) in fcp_find_fc_interface() argument
1073 struct snd_usb_audio *chip = mixer->chip; in fcp_find_fc_interface()
1074 struct fcp_data *private = mixer->private_data; in fcp_find_fc_interface()
1099 int snd_fcp_init(struct usb_mixer_interface *mixer) in snd_fcp_init() argument
1101 struct snd_usb_audio *chip = mixer->chip; in snd_fcp_init()
1105 if (!mixer->protocol) in snd_fcp_init()
1108 err = fcp_init_private(mixer); in snd_fcp_init()
1112 err = fcp_find_fc_interface(mixer); in snd_fcp_init()
1116 err = fcp_hwdep_init(mixer); in snd_fcp_init()