• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500-V1.0.1.40_1.0.68/src/linux/linux-2.6/sound/usb/

Lines Matching defs:mixer

104 	struct usb_mixer_interface *mixer;
114 struct usb_mixer_interface *mixer;
188 * manual mapping of mixer names
189 * if the mixer topology is too complicated and the parsed names are
348 * retrieve a mixer value
358 if (snd_usb_ctl_msg(cval->mixer->chip->dev,
359 usb_rcvctrlpipe(cval->mixer->chip->dev, 0),
362 validx, cval->mixer->ctrlif | (cval->id << 8),
369 request, validx, cval->mixer->ctrlif | (cval->id << 8), cval->val_type);
385 * set a mixer value
398 if (snd_usb_ctl_msg(cval->mixer->chip->dev,
399 usb_sndctrlpipe(cval->mixer->chip->dev, 0),
402 validx, cval->mixer->ctrlif | (cval->id << 8),
406 request, validx, cval->mixer->ctrlif | (cval->id << 8), cval->val_type, buf[0], buf[1]);
421 * TLV callback for mixer volume controls
450 * used for mixer unit parser
478 cval->next_id_elem = state->mixer->id_elems[cval->id];
479 state->mixer->id_elems[cval->id] = cval;
664 * interface to ALSA control for feature/mixer units
693 cval->id, cval->mixer->ctrlif, cval->control, cval->id);
747 /* get a feature/mixer unit info */
772 /* get the current value from feature/mixer unit */
784 if (cval->mixer->ignore_ctl_error) {
800 if (cval->mixer->ignore_ctl_error) {
813 /* put the current value to feature/mixer unit */
826 if (cval->mixer->ignore_ctl_error)
843 if (err < 0 && cval->mixer->ignore_ctl_error)
894 cval->mixer = state->mixer;
1049 * build a mixer unit control
1072 cval->mixer = state->mixer;
1108 * parse a mixer unit
1166 if (err < 0 && cval->mixer->ignore_ctl_error) {
1185 if (cval->mixer->ignore_ctl_error)
1319 cval->mixer = state->mixer;
1407 if (cval->mixer->ignore_ctl_error) {
1426 if (cval->mixer->ignore_ctl_error)
1504 cval->mixer = state->mixer;
1613 static void snd_usb_mixer_free(struct usb_mixer_interface *mixer)
1615 kfree(mixer->id_elems);
1616 if (mixer->urb) {
1617 kfree(mixer->urb->transfer_buffer);
1618 usb_free_urb(mixer->urb);
1620 usb_free_urb(mixer->rc_urb);
1621 kfree(mixer->rc_setup_packet);
1622 kfree(mixer);
1627 struct usb_mixer_interface *mixer = device->device_data;
1628 snd_usb_mixer_free(mixer);
1633 * create mixer controls
1637 static int snd_usb_mixer_controls(struct usb_mixer_interface *mixer)
1645 hostif = &usb_ifnum_to_if(mixer->chip->dev, mixer->ctrlif)->altsetting[0];
1647 state.chip = mixer->chip;
1648 state.mixer = mixer;
1657 mixer->ignore_ctl_error = map->ignore_ctl_error;
1677 static void snd_usb_mixer_notify_id(struct usb_mixer_interface *mixer,
1682 for (info = mixer->id_elems[unitid]; info; info = info->next_id_elem)
1683 snd_ctl_notify(mixer->chip->card, SNDRV_CTL_EVENT_MASK_VALUE,
1687 static void snd_usb_mixer_memory_change(struct usb_mixer_interface *mixer,
1690 if (!mixer->rc_cfg)
1695 mixer->rc_urb->dev = mixer->chip->dev;
1696 usb_submit_urb(mixer->rc_urb, GFP_ATOMIC);
1711 struct usb_mixer_interface *mixer = urb->context;
1724 snd_usb_mixer_notify_id(mixer, buf[1]);
1726 snd_usb_mixer_memory_change(mixer, buf[1]);
1730 urb->dev = mixer->chip->dev;
1736 static int snd_usb_mixer_status_create(struct usb_mixer_interface *mixer)
1744 hostif = &usb_ifnum_to_if(mixer->chip->dev, mixer->ctrlif)->altsetting[0];
1758 mixer->urb = usb_alloc_urb(0, GFP_KERNEL);
1759 if (!mixer->urb) {
1763 usb_fill_int_urb(mixer->urb, mixer->chip->dev,
1764 usb_rcvintpipe(mixer->chip->dev, epnum),
1766 snd_usb_mixer_status_complete, mixer, ep->bInterval);
1767 usb_submit_urb(mixer->urb, GFP_KERNEL);
1773 struct usb_mixer_interface *mixer = urb->context;
1774 const struct rc_config *rc = mixer->rc_cfg;
1780 code = mixer->rc_buffer[rc->offset];
1782 code |= mixer->rc_buffer[rc->offset + 1] << 8;
1784 /* the Mute button actually changes the mixer control */
1786 snd_usb_mixer_notify_id(mixer, rc->mute_mixer_id);
1787 mixer->rc_code = code;
1789 wake_up(&mixer->rc_waitq);
1794 struct usb_mixer_interface *mixer = hw->private_data;
1796 if (test_and_set_bit(0, &mixer->rc_hwdep_open))
1803 struct usb_mixer_interface *mixer = hw->private_data;
1805 clear_bit(0, &mixer->rc_hwdep_open);
1813 struct usb_mixer_interface *mixer = hw->private_data;
1819 err = wait_event_interruptible(mixer->rc_waitq,
1820 (rc_code = xchg(&mixer->rc_code, 0)) != 0);
1833 struct usb_mixer_interface *mixer = hw->private_data;
1835 poll_wait(file, &mixer->rc_waitq, wait);
1836 return mixer->rc_code ? POLLIN | POLLRDNORM : 0;
1839 static int snd_usb_soundblaster_remote_init(struct usb_mixer_interface *mixer)
1845 if (rc_configs[i].usb_id == mixer->chip->usb_id)
1849 mixer->rc_cfg = &rc_configs[i];
1851 len = mixer->rc_cfg->packet_length;
1853 init_waitqueue_head(&mixer->rc_waitq);
1854 err = snd_hwdep_new(mixer->chip->card, "SB remote control", 0, &hwdep);
1858 "%s remote control", mixer->chip->card->shortname);
1860 hwdep->private_data = mixer;
1866 mixer->rc_urb = usb_alloc_urb(0, GFP_KERNEL);
1867 if (!mixer->rc_urb)
1869 mixer->rc_setup_packet = kmalloc(sizeof(*mixer->rc_setup_packet), GFP_KERNEL);
1870 if (!mixer->rc_setup_packet) {
1871 usb_free_urb(mixer->rc_urb);
1872 mixer->rc_urb = NULL;
1875 mixer->rc_setup_packet->bRequestType =
1877 mixer->rc_setup_packet->bRequest = GET_MEM;
1878 mixer->rc_setup_packet->wValue = cpu_to_le16(0);
1879 mixer->rc_setup_packet->wIndex = cpu_to_le16(0);
1880 mixer->rc_setup_packet->wLength = cpu_to_le16(len);
1881 usb_fill_control_urb(mixer->rc_urb, mixer->chip->dev,
1882 usb_rcvctrlpipe(mixer->chip->dev, 0),
1883 (u8*)mixer->rc_setup_packet, mixer->rc_buffer, len,
1884 snd_usb_soundblaster_remote_complete, mixer);
1899 struct usb_mixer_interface *mixer = snd_kcontrol_chip(kcontrol);
1902 ucontrol->value.integer.value[0] = mixer->audigy2nx_leds[index];
1908 struct usb_mixer_interface *mixer = snd_kcontrol_chip(kcontrol);
1915 changed = value != mixer->audigy2nx_leds[index];
1916 err = snd_usb_ctl_msg(mixer->chip->dev,
1917 usb_sndctrlpipe(mixer->chip->dev, 0), 0x24,
1922 mixer->audigy2nx_leds[index] = value;
1953 static int snd_audigy2nx_controls_create(struct usb_mixer_interface *mixer)
1958 err = snd_ctl_add(mixer->chip->card,
1959 snd_ctl_new1(&snd_audigy2nx_controls[i], mixer));
1963 mixer->audigy2nx_leds[1] = 1; /* Power LED is on by default */
1979 struct usb_mixer_interface *mixer = entry->private_data;
1983 snd_iprintf(buffer, "%s jacks\n\n", mixer->chip->card->shortname);
1986 err = snd_usb_ctl_msg(mixer->chip->dev,
1987 usb_rcvctrlpipe(mixer->chip->dev, 0),
2003 struct usb_mixer_interface *mixer;
2008 mixer = kzalloc(sizeof(*mixer), GFP_KERNEL);
2009 if (!mixer)
2011 mixer->chip = chip;
2012 mixer->ctrlif = ctrlif;
2014 mixer->ignore_ctl_error = 1;
2016 mixer->id_elems = kcalloc(256, sizeof(*mixer->id_elems), GFP_KERNEL);
2017 if (!mixer->id_elems) {
2018 kfree(mixer);
2022 if ((err = snd_usb_mixer_controls(mixer)) < 0 ||
2023 (err = snd_usb_mixer_status_create(mixer)) < 0)
2026 if ((err = snd_usb_soundblaster_remote_init(mixer)) < 0)
2029 if (mixer->chip->usb_id == USB_ID(0x041e, 0x3020)) {
2032 if ((err = snd_audigy2nx_controls_create(mixer)) < 0)
2035 snd_info_set_text_ops(entry, mixer,
2039 err = snd_device_new(chip->card, SNDRV_DEV_LOWLEVEL, mixer, &dev_ops);
2042 list_add(&mixer->list, &chip->mixer_list);
2046 snd_usb_mixer_free(mixer);
2052 struct usb_mixer_interface *mixer;
2054 mixer = list_entry(p, struct usb_mixer_interface, list);
2055 usb_kill_urb(mixer->urb);
2056 usb_kill_urb(mixer->rc_urb);