line6 29 sound/usb/line6/capture.c line6pcm->line6->iso_buffers); line6 31 sound/usb/line6/capture.c if (index < 0 || index >= line6pcm->line6->iso_buffers) { line6 32 sound/usb/line6/capture.c dev_err(line6pcm->line6->ifcdev, "no free URB found\n"); line6 58 sound/usb/line6/capture.c dev_err(line6pcm->line6->ifcdev, line6 72 sound/usb/line6/capture.c for (i = 0; i < line6pcm->line6->iso_buffers; ++i) { line6 114 sound/usb/line6/capture.c dev_err(line6pcm->line6->ifcdev, line6 155 sound/usb/line6/capture.c for (index = 0; index < line6pcm->line6->iso_buffers; ++index) line6 175 sound/usb/line6/capture.c dev_err(line6pcm->line6->ifcdev, line6 260 sound/usb/line6/capture.c struct usb_line6 *line6 = line6pcm->line6; line6 263 sound/usb/line6/capture.c line6pcm->in.urbs = kcalloc(line6->iso_buffers, sizeof(struct urb *), line6 269 sound/usb/line6/capture.c for (i = 0; i < line6->iso_buffers; ++i) { line6 279 sound/usb/line6/capture.c urb->dev = line6->usbdev; line6 281 sound/usb/line6/capture.c usb_rcvisocpipe(line6->usbdev, line6 282 sound/usb/line6/capture.c line6->properties->ep_audio_r & line6 46 sound/usb/line6/driver.c struct usb_line6 *line6; line6 62 sound/usb/line6/driver.c static int line6_start_listen(struct usb_line6 *line6) line6 66 sound/usb/line6/driver.c if (line6->properties->capabilities & LINE6_CAP_CONTROL_MIDI) { line6 67 sound/usb/line6/driver.c usb_fill_int_urb(line6->urb_listen, line6->usbdev, line6 68 sound/usb/line6/driver.c usb_rcvintpipe(line6->usbdev, line6->properties->ep_ctrl_r), line6 69 sound/usb/line6/driver.c line6->buffer_listen, LINE6_BUFSIZE_LISTEN, line6 70 sound/usb/line6/driver.c line6_data_received, line6, line6->interval); line6 72 sound/usb/line6/driver.c usb_fill_bulk_urb(line6->urb_listen, line6->usbdev, line6 73 sound/usb/line6/driver.c usb_rcvbulkpipe(line6->usbdev, line6->properties->ep_ctrl_r), line6 74 sound/usb/line6/driver.c line6->buffer_listen, LINE6_BUFSIZE_LISTEN, line6 75 sound/usb/line6/driver.c line6_data_received, line6); line6 79 sound/usb/line6/driver.c if (usb_urb_ep_type_check(line6->urb_listen)) { line6 80 sound/usb/line6/driver.c dev_err(line6->ifcdev, "invalid control EP\n"); line6 84 sound/usb/line6/driver.c line6->urb_listen->actual_length = 0; line6 85 sound/usb/line6/driver.c err = usb_submit_urb(line6->urb_listen, GFP_ATOMIC); line6 92 sound/usb/line6/driver.c static void line6_stop_listen(struct usb_line6 *line6) line6 94 sound/usb/line6/driver.c usb_kill_urb(line6->urb_listen); line6 100 sound/usb/line6/driver.c static int line6_send_raw_message(struct usb_line6 *line6, const char *buffer, line6 104 sound/usb/line6/driver.c const struct line6_properties *properties = line6->properties; line6 106 sound/usb/line6/driver.c for (i = 0; i < size; i += line6->max_packet_size) { line6 109 sound/usb/line6/driver.c int frag_size = min(line6->max_packet_size, size - i); line6 113 sound/usb/line6/driver.c retval = usb_interrupt_msg(line6->usbdev, line6 114 sound/usb/line6/driver.c usb_sndintpipe(line6->usbdev, properties->ep_ctrl_w), line6 118 sound/usb/line6/driver.c retval = usb_bulk_msg(line6->usbdev, line6 119 sound/usb/line6/driver.c usb_sndbulkpipe(line6->usbdev, properties->ep_ctrl_w), line6 125 sound/usb/line6/driver.c dev_err(line6->ifcdev, line6 157 sound/usb/line6/driver.c struct usb_line6 *line6 = msg->line6; line6 159 sound/usb/line6/driver.c int bytes = min(msg->size - done, line6->max_packet_size); line6 161 sound/usb/line6/driver.c if (line6->properties->capabilities & LINE6_CAP_CONTROL_MIDI) { line6 162 sound/usb/line6/driver.c usb_fill_int_urb(urb, line6->usbdev, line6 163 sound/usb/line6/driver.c usb_sndintpipe(line6->usbdev, line6->properties->ep_ctrl_w), line6 165 sound/usb/line6/driver.c line6_async_request_sent, msg, line6->interval); line6 167 sound/usb/line6/driver.c usb_fill_bulk_urb(urb, line6->usbdev, line6 168 sound/usb/line6/driver.c usb_sndbulkpipe(line6->usbdev, line6->properties->ep_ctrl_w), line6 187 sound/usb/line6/driver.c dev_err(line6->ifcdev, "%s: usb_submit_urb failed (%d)\n", line6 197 sound/usb/line6/driver.c int line6_send_raw_message_async(struct usb_line6 *line6, const char *buffer, line6 217 sound/usb/line6/driver.c msg->line6 = line6; line6 230 sound/usb/line6/driver.c int line6_version_request_async(struct usb_line6 *line6) line6 240 sound/usb/line6/driver.c retval = line6_send_raw_message_async(line6, buffer, line6 250 sound/usb/line6/driver.c int line6_send_sysex_message(struct usb_line6 *line6, const char *buffer, line6 253 sound/usb/line6/driver.c return line6_send_raw_message(line6, buffer, line6 264 sound/usb/line6/driver.c char *line6_alloc_sysex_buffer(struct usb_line6 *line6, int code1, int code2, line6 286 sound/usb/line6/driver.c struct usb_line6 *line6 = (struct usb_line6 *)urb->context; line6 287 sound/usb/line6/driver.c struct midi_buffer *mb = &line6->line6midi->midibuf_in; line6 293 sound/usb/line6/driver.c if (line6->properties->capabilities & LINE6_CAP_CONTROL_MIDI) { line6 299 sound/usb/line6/driver.c dev_dbg(line6->ifcdev, "%d %d buffer overflow - message skipped\n", line6 305 sound/usb/line6/driver.c line6_midibuf_read(mb, line6->buffer_message, line6 311 sound/usb/line6/driver.c line6->message_length = done; line6 312 sound/usb/line6/driver.c line6_midi_receive(line6, line6->buffer_message, done); line6 314 sound/usb/line6/driver.c if (line6->process_message) line6 315 sound/usb/line6/driver.c line6->process_message(line6); line6 318 sound/usb/line6/driver.c line6->buffer_message = urb->transfer_buffer; line6 319 sound/usb/line6/driver.c line6->message_length = urb->actual_length; line6 320 sound/usb/line6/driver.c if (line6->process_message) line6 321 sound/usb/line6/driver.c line6->process_message(line6); line6 322 sound/usb/line6/driver.c line6->buffer_message = NULL; line6 325 sound/usb/line6/driver.c line6_start_listen(line6); line6 334 sound/usb/line6/driver.c int line6_read_data(struct usb_line6 *line6, unsigned address, void *data, line6 337 sound/usb/line6/driver.c struct usb_device *usbdev = line6->usbdev; line6 356 sound/usb/line6/driver.c dev_err(line6->ifcdev, "read request failed (error %d)\n", ret); line6 370 sound/usb/line6/driver.c dev_err(line6->ifcdev, line6 381 sound/usb/line6/driver.c dev_err(line6->ifcdev, "read failed after %d retries\n", line6 386 sound/usb/line6/driver.c dev_err(line6->ifcdev, line6 399 sound/usb/line6/driver.c dev_err(line6->ifcdev, "read failed (error %d)\n", ret); line6 410 sound/usb/line6/driver.c int line6_write_data(struct usb_line6 *line6, unsigned address, void *data, line6 413 sound/usb/line6/driver.c struct usb_device *usbdev = line6->usbdev; line6 431 sound/usb/line6/driver.c dev_err(line6->ifcdev, line6 447 sound/usb/line6/driver.c dev_err(line6->ifcdev, line6 457 sound/usb/line6/driver.c dev_err(line6->ifcdev, "write failed after %d retries\n", line6 461 sound/usb/line6/driver.c dev_err(line6->ifcdev, "write failed (error %d)\n", ret); line6 474 sound/usb/line6/driver.c int line6_read_serial_number(struct usb_line6 *line6, u32 *serial_number) line6 476 sound/usb/line6/driver.c return line6_read_data(line6, 0x80d0, serial_number, line6 486 sound/usb/line6/driver.c struct usb_line6 *line6 = card->private_data; line6 487 sound/usb/line6/driver.c struct usb_device *usbdev = line6->usbdev; line6 492 sound/usb/line6/driver.c kfree(line6->buffer_message); line6 494 sound/usb/line6/driver.c kfree(line6->buffer_listen); line6 497 sound/usb/line6/driver.c usb_free_urb(line6->urb_listen); line6 498 sound/usb/line6/driver.c line6->urb_listen = NULL; line6 504 sound/usb/line6/driver.c static void line6_get_usb_properties(struct usb_line6 *line6) line6 506 sound/usb/line6/driver.c struct usb_device *usbdev = line6->usbdev; line6 507 sound/usb/line6/driver.c const struct line6_properties *properties = line6->properties; line6 513 sound/usb/line6/driver.c pipe = usb_rcvintpipe(line6->usbdev, line6 514 sound/usb/line6/driver.c line6->properties->ep_ctrl_r); line6 516 sound/usb/line6/driver.c pipe = usb_rcvbulkpipe(line6->usbdev, line6 517 sound/usb/line6/driver.c line6->properties->ep_ctrl_r); line6 524 sound/usb/line6/driver.c line6->interval = ep->desc.bInterval; line6 525 sound/usb/line6/driver.c line6->max_packet_size = le16_to_cpu(ep->desc.wMaxPacketSize); line6 528 sound/usb/line6/driver.c dev_err(line6->ifcdev, line6 531 sound/usb/line6/driver.c line6->interval = LINE6_FALLBACK_INTERVAL; line6 532 sound/usb/line6/driver.c line6->max_packet_size = LINE6_FALLBACK_MAXPACKETSIZE; line6 537 sound/usb/line6/driver.c line6->intervals_per_second = USB_LOW_INTERVALS_PER_SECOND; line6 538 sound/usb/line6/driver.c line6->iso_buffers = USB_LOW_ISO_BUFFERS; line6 540 sound/usb/line6/driver.c line6->intervals_per_second = USB_HIGH_INTERVALS_PER_SECOND; line6 541 sound/usb/line6/driver.c line6->iso_buffers = USB_HIGH_ISO_BUFFERS; line6 548 sound/usb/line6/driver.c struct usb_line6 *line6 = hw->private_data; line6 552 sound/usb/line6/driver.c line6->messages.active = 1; line6 560 sound/usb/line6/driver.c struct usb_line6 *line6 = hw->private_data; line6 562 sound/usb/line6/driver.c line6->messages.active = 0; line6 572 sound/usb/line6/driver.c struct usb_line6 *line6 = hwdep->private_data; line6 576 sound/usb/line6/driver.c if (mutex_lock_interruptible(&line6->messages.read_lock)) line6 579 sound/usb/line6/driver.c while (kfifo_len(&line6->messages.fifo) == 0) { line6 580 sound/usb/line6/driver.c mutex_unlock(&line6->messages.read_lock); line6 583 sound/usb/line6/driver.c line6->messages.wait_queue, line6 584 sound/usb/line6/driver.c kfifo_len(&line6->messages.fifo) != 0); line6 588 sound/usb/line6/driver.c if (mutex_lock_interruptible(&line6->messages.read_lock)) line6 592 sound/usb/line6/driver.c if (kfifo_peek_len(&line6->messages.fifo) > count) { line6 596 sound/usb/line6/driver.c rv = kfifo_to_user(&line6->messages.fifo, buf, count, &out_count); line6 601 sound/usb/line6/driver.c mutex_unlock(&line6->messages.read_lock); line6 610 sound/usb/line6/driver.c struct usb_line6 *line6 = hwdep->private_data; line6 614 sound/usb/line6/driver.c if (count > line6->max_packet_size * LINE6_RAW_MESSAGES_MAXCOUNT) { line6 623 sound/usb/line6/driver.c rv = line6_send_raw_message(line6, data_copy, count); line6 637 sound/usb/line6/driver.c static void line6_hwdep_push_message(struct usb_line6 *line6) line6 639 sound/usb/line6/driver.c if (!line6->messages.active) line6 642 sound/usb/line6/driver.c if (kfifo_avail(&line6->messages.fifo) >= line6->message_length) { line6 644 sound/usb/line6/driver.c kfifo_in(&line6->messages.fifo, line6 645 sound/usb/line6/driver.c line6->buffer_message, line6->message_length); line6 648 sound/usb/line6/driver.c wake_up_interruptible(&line6->messages.wait_queue); line6 651 sound/usb/line6/driver.c static int line6_hwdep_init(struct usb_line6 *line6) line6 657 sound/usb/line6/driver.c line6->process_message = line6_hwdep_push_message; line6 658 sound/usb/line6/driver.c line6->messages.active = 0; line6 659 sound/usb/line6/driver.c init_waitqueue_head(&line6->messages.wait_queue); line6 660 sound/usb/line6/driver.c mutex_init(&line6->messages.read_lock); line6 661 sound/usb/line6/driver.c INIT_KFIFO(line6->messages.fifo); line6 663 sound/usb/line6/driver.c err = snd_hwdep_new(line6->card, "config", 0, &hwdep); line6 669 sound/usb/line6/driver.c hwdep->private_data = line6; line6 676 sound/usb/line6/driver.c static int line6_init_cap_control(struct usb_line6 *line6) line6 681 sound/usb/line6/driver.c line6->buffer_listen = kmalloc(LINE6_BUFSIZE_LISTEN, GFP_KERNEL); line6 682 sound/usb/line6/driver.c if (!line6->buffer_listen) line6 685 sound/usb/line6/driver.c line6->urb_listen = usb_alloc_urb(0, GFP_KERNEL); line6 686 sound/usb/line6/driver.c if (!line6->urb_listen) line6 689 sound/usb/line6/driver.c if (line6->properties->capabilities & LINE6_CAP_CONTROL_MIDI) { line6 690 sound/usb/line6/driver.c line6->buffer_message = kmalloc(LINE6_MIDI_MESSAGE_MAXLEN, GFP_KERNEL); line6 691 sound/usb/line6/driver.c if (!line6->buffer_message) line6 694 sound/usb/line6/driver.c ret = line6_hwdep_init(line6); line6 699 sound/usb/line6/driver.c ret = line6_start_listen(line6); line6 701 sound/usb/line6/driver.c dev_err(line6->ifcdev, "cannot start listening: %d\n", ret); line6 710 sound/usb/line6/driver.c struct usb_line6 *line6 = line6 713 sound/usb/line6/driver.c if (line6->startup) line6 714 sound/usb/line6/driver.c line6->startup(line6); line6 729 sound/usb/line6/driver.c struct usb_line6 *line6; line6 733 sound/usb/line6/driver.c if (WARN_ON(data_size < sizeof(*line6))) line6 747 sound/usb/line6/driver.c line6 = card->private_data; line6 748 sound/usb/line6/driver.c line6->card = card; line6 749 sound/usb/line6/driver.c line6->properties = properties; line6 750 sound/usb/line6/driver.c line6->usbdev = usbdev; line6 751 sound/usb/line6/driver.c line6->ifcdev = &interface->dev; line6 752 sound/usb/line6/driver.c INIT_DELAYED_WORK(&line6->startup_work, line6_startup_work); line6 758 sound/usb/line6/driver.c dev_name(line6->ifcdev)); line6 761 sound/usb/line6/driver.c usb_set_intfdata(interface, line6); line6 780 sound/usb/line6/driver.c line6_get_usb_properties(line6); line6 783 sound/usb/line6/driver.c ret = line6_init_cap_control(line6); line6 789 sound/usb/line6/driver.c ret = private_init(line6, id); line6 814 sound/usb/line6/driver.c struct usb_line6 *line6 = usb_get_intfdata(interface); line6 817 sound/usb/line6/driver.c if (!line6) line6 820 sound/usb/line6/driver.c if (WARN_ON(usbdev != line6->usbdev)) line6 823 sound/usb/line6/driver.c cancel_delayed_work(&line6->startup_work); line6 825 sound/usb/line6/driver.c if (line6->urb_listen != NULL) line6 826 sound/usb/line6/driver.c line6_stop_listen(line6); line6 828 sound/usb/line6/driver.c snd_card_disconnect(line6->card); line6 829 sound/usb/line6/driver.c if (line6->line6pcm) line6 830 sound/usb/line6/driver.c line6_pcm_disconnect(line6->line6pcm); line6 831 sound/usb/line6/driver.c if (line6->disconnect) line6 832 sound/usb/line6/driver.c line6->disconnect(line6); line6 835 sound/usb/line6/driver.c line6->properties->name); line6 840 sound/usb/line6/driver.c snd_card_free_when_closed(line6->card); line6 851 sound/usb/line6/driver.c struct usb_line6 *line6 = usb_get_intfdata(interface); line6 852 sound/usb/line6/driver.c struct snd_line6_pcm *line6pcm = line6->line6pcm; line6 854 sound/usb/line6/driver.c snd_power_change_state(line6->card, SNDRV_CTL_POWER_D3hot); line6 856 sound/usb/line6/driver.c if (line6->properties->capabilities & LINE6_CAP_CONTROL) line6 857 sound/usb/line6/driver.c line6_stop_listen(line6); line6 871 sound/usb/line6/driver.c struct usb_line6 *line6 = usb_get_intfdata(interface); line6 873 sound/usb/line6/driver.c if (line6->properties->capabilities & LINE6_CAP_CONTROL) line6 874 sound/usb/line6/driver.c line6_start_listen(line6); line6 876 sound/usb/line6/driver.c snd_power_change_state(line6->card, SNDRV_CTL_POWER_D0); line6 177 sound/usb/line6/driver.h void (*disconnect)(struct usb_line6 *line6); line6 178 sound/usb/line6/driver.h void (*startup)(struct usb_line6 *line6); line6 181 sound/usb/line6/driver.h extern char *line6_alloc_sysex_buffer(struct usb_line6 *line6, int code1, line6 183 sound/usb/line6/driver.h extern int line6_read_data(struct usb_line6 *line6, unsigned address, line6 185 sound/usb/line6/driver.h extern int line6_read_serial_number(struct usb_line6 *line6, line6 187 sound/usb/line6/driver.h extern int line6_send_raw_message_async(struct usb_line6 *line6, line6 189 sound/usb/line6/driver.h extern int line6_send_sysex_message(struct usb_line6 *line6, line6 193 sound/usb/line6/driver.h extern int line6_version_request_async(struct usb_line6 *line6); line6 194 sound/usb/line6/driver.h extern int line6_write_data(struct usb_line6 *line6, unsigned address, line6 20 sound/usb/line6/midi.c static int send_midi_async(struct usb_line6 *line6, unsigned char *data, line6 26 sound/usb/line6/midi.c void line6_midi_receive(struct usb_line6 *line6, unsigned char *data, line6 29 sound/usb/line6/midi.c if (line6->line6midi->substream_receive) line6 30 sound/usb/line6/midi.c snd_rawmidi_receive(line6->line6midi->substream_receive, line6 39 sound/usb/line6/midi.c struct usb_line6 *line6 = line6 40 sound/usb/line6/midi.c line6_rawmidi_substream_midi(substream)->line6; line6 41 sound/usb/line6/midi.c struct snd_line6_midi *line6midi = line6->line6midi; line6 47 sound/usb/line6/midi.c req = min(line6_midibuf_bytes_free(mb), line6->max_packet_size); line6 64 sound/usb/line6/midi.c send_midi_async(line6, chunk, done); line6 76 sound/usb/line6/midi.c struct usb_line6 *line6 = (struct usb_line6 *)urb->context; line6 85 sound/usb/line6/midi.c spin_lock_irqsave(&line6->line6midi->lock, flags); line6 86 sound/usb/line6/midi.c num = --line6->line6midi->num_active_send_urbs; line6 89 sound/usb/line6/midi.c line6_midi_transmit(line6->line6midi->substream_transmit); line6 90 sound/usb/line6/midi.c num = line6->line6midi->num_active_send_urbs; line6 94 sound/usb/line6/midi.c wake_up(&line6->line6midi->send_wait); line6 96 sound/usb/line6/midi.c spin_unlock_irqrestore(&line6->line6midi->lock, flags); line6 104 sound/usb/line6/midi.c static int send_midi_async(struct usb_line6 *line6, unsigned char *data, line6 123 sound/usb/line6/midi.c usb_fill_int_urb(urb, line6->usbdev, line6 124 sound/usb/line6/midi.c usb_sndintpipe(line6->usbdev, line6 125 sound/usb/line6/midi.c line6->properties->ep_ctrl_w), line6 126 sound/usb/line6/midi.c transfer_buffer, length, midi_sent, line6, line6 127 sound/usb/line6/midi.c line6->interval); line6 137 sound/usb/line6/midi.c ++line6->line6midi->num_active_send_urbs; line6 141 sound/usb/line6/midi.c dev_err(line6->ifcdev, "usb_submit_urb failed\n"); line6 160 sound/usb/line6/midi.c struct usb_line6 *line6 = line6 161 sound/usb/line6/midi.c line6_rawmidi_substream_midi(substream)->line6; line6 163 sound/usb/line6/midi.c line6->line6midi->substream_transmit = substream; line6 164 sound/usb/line6/midi.c spin_lock_irqsave(&line6->line6midi->lock, flags); line6 166 sound/usb/line6/midi.c if (line6->line6midi->num_active_send_urbs == 0) line6 169 sound/usb/line6/midi.c spin_unlock_irqrestore(&line6->line6midi->lock, flags); line6 174 sound/usb/line6/midi.c struct usb_line6 *line6 = line6 175 sound/usb/line6/midi.c line6_rawmidi_substream_midi(substream)->line6; line6 176 sound/usb/line6/midi.c struct snd_line6_midi *midi = line6->line6midi; line6 195 sound/usb/line6/midi.c struct usb_line6 *line6 = line6 196 sound/usb/line6/midi.c line6_rawmidi_substream_midi(substream)->line6; line6 199 sound/usb/line6/midi.c line6->line6midi->substream_receive = substream; line6 201 sound/usb/line6/midi.c line6->line6midi->substream_receive = NULL; line6 218 sound/usb/line6/midi.c static int snd_line6_new_midi(struct usb_line6 *line6, line6 224 sound/usb/line6/midi.c err = snd_rawmidi_new(line6->card, "Line 6 MIDI", 0, 1, 1, rmidi_ret); line6 229 sound/usb/line6/midi.c strcpy(rmidi->id, line6->properties->id); line6 230 sound/usb/line6/midi.c strcpy(rmidi->name, line6->properties->name); line6 256 sound/usb/line6/midi.c int line6_init_midi(struct usb_line6 *line6) line6 262 sound/usb/line6/midi.c if (!(line6->properties->capabilities & LINE6_CAP_CONTROL_MIDI)) { line6 267 sound/usb/line6/midi.c err = snd_line6_new_midi(line6, &rmidi); line6 280 sound/usb/line6/midi.c line6midi->line6 = line6; line6 290 sound/usb/line6/midi.c line6->line6midi = line6midi; line6 19 sound/usb/line6/midi.h struct usb_line6 *line6; line6 43 sound/usb/line6/midi.h extern int line6_init_midi(struct usb_line6 *line6); line6 44 sound/usb/line6/midi.h extern void line6_midi_receive(struct usb_line6 *line6, unsigned char *data, line6 103 sound/usb/line6/pcm.c for (i = 0; i < line6pcm->line6->iso_buffers; i++) { line6 123 sound/usb/line6/pcm.c for (i = 0; i < line6pcm->line6->iso_buffers; i++) { line6 133 sound/usb/line6/pcm.c dev_err(line6pcm->line6->ifcdev, line6 158 sound/usb/line6/pcm.c kmalloc(array3_size(line6pcm->line6->iso_buffers, line6 244 sound/usb/line6/pcm.c (line6pcm->line6->properties->capabilities & line6 260 sound/usb/line6/pcm.c (line6pcm->line6->properties->capabilities & line6 480 sound/usb/line6/pcm.c cleanup_urbs(&line6pcm->out, line6pcm->line6->iso_buffers); line6 481 sound/usb/line6/pcm.c cleanup_urbs(&line6pcm->in, line6pcm->line6->iso_buffers); line6 486 sound/usb/line6/pcm.c static int snd_line6_new_pcm(struct usb_line6 *line6, struct snd_pcm **pcm_ret) line6 491 sound/usb/line6/pcm.c err = snd_pcm_new(line6->card, (char *)line6->properties->name, line6 496 sound/usb/line6/pcm.c strcpy(pcm->name, line6->properties->name); line6 526 sound/usb/line6/pcm.c int line6_init_pcm(struct usb_line6 *line6, line6 530 sound/usb/line6/pcm.c unsigned ep_read = line6->properties->ep_audio_r; line6 531 sound/usb/line6/pcm.c unsigned ep_write = line6->properties->ep_audio_w; line6 535 sound/usb/line6/pcm.c if (!(line6->properties->capabilities & LINE6_CAP_PCM)) line6 538 sound/usb/line6/pcm.c err = snd_line6_new_pcm(line6, &pcm); line6 551 sound/usb/line6/pcm.c line6pcm->line6 = line6; line6 557 sound/usb/line6/pcm.c line6->line6pcm = line6pcm; line6 563 sound/usb/line6/pcm.c usb_maxpacket(line6->usbdev, line6 564 sound/usb/line6/pcm.c usb_rcvisocpipe(line6->usbdev, ep_read), 0); line6 566 sound/usb/line6/pcm.c usb_maxpacket(line6->usbdev, line6 567 sound/usb/line6/pcm.c usb_sndisocpipe(line6->usbdev, ep_write), 1); line6 569 sound/usb/line6/pcm.c dev_err(line6pcm->line6->ifcdev, line6 584 sound/usb/line6/pcm.c err = snd_ctl_add(line6->card, line6 138 sound/usb/line6/pcm.h struct usb_line6 *line6; line6 182 sound/usb/line6/pcm.h extern int line6_init_pcm(struct usb_line6 *line6, line6 152 sound/usb/line6/playback.c (line6pcm->line6->intervals_per_second / LINE6_ISO_INTERVAL); line6 156 sound/usb/line6/playback.c line6pcm->line6->iso_buffers); line6 158 sound/usb/line6/playback.c if (index < 0 || index >= line6pcm->line6->iso_buffers) { line6 159 sound/usb/line6/playback.c dev_err(line6pcm->line6->ifcdev, "no free URB found\n"); line6 192 sound/usb/line6/playback.c dev_err(line6pcm->line6->ifcdev, "driver bug: urb_size = 0\n"); line6 226 sound/usb/line6/playback.c dev_err(line6pcm->line6->ifcdev, "driver bug: len = %d\n", line6 260 sound/usb/line6/playback.c if (!(line6pcm->line6->properties->capabilities & LINE6_CAP_HWMON) line6 276 sound/usb/line6/playback.c dev_err(line6pcm->line6->ifcdev, line6 290 sound/usb/line6/playback.c for (i = 0; i < line6pcm->line6->iso_buffers; ++i) { line6 320 sound/usb/line6/playback.c for (index = 0; index < line6pcm->line6->iso_buffers; index++) line6 324 sound/usb/line6/playback.c if (index >= line6pcm->line6->iso_buffers) line6 405 sound/usb/line6/playback.c struct usb_line6 *line6 = line6pcm->line6; line6 408 sound/usb/line6/playback.c line6pcm->out.urbs = kcalloc(line6->iso_buffers, sizeof(struct urb *), line6 414 sound/usb/line6/playback.c for (i = 0; i < line6->iso_buffers; ++i) { line6 424 sound/usb/line6/playback.c urb->dev = line6->usbdev; line6 426 sound/usb/line6/playback.c usb_sndisocpipe(line6->usbdev, line6 427 sound/usb/line6/playback.c line6->properties->ep_audio_w & line6 55 sound/usb/line6/pod.c struct usb_line6 line6; line6 73 sound/usb/line6/pod.c #define line6_to_pod(x) container_of(x, struct usb_line6_pod, line6) line6 169 sound/usb/line6/pod.c return line6_alloc_sysex_buffer(&pod->line6, POD_SYSEX_CODE, code, line6 176 sound/usb/line6/pod.c static void line6_pod_process_message(struct usb_line6 *line6) line6 178 sound/usb/line6/pod.c struct usb_line6_pod *pod = line6_to_pod(line6); line6 179 sound/usb/line6/pod.c const unsigned char *buf = pod->line6.buffer_message; line6 187 sound/usb/line6/pod.c schedule_delayed_work(&line6->startup_work, 0); line6 224 sound/usb/line6/pod.c line6_send_sysex_message(&pod->line6, sysex, size); line6 273 sound/usb/line6/pod.c static void pod_startup(struct usb_line6 *line6) line6 275 sound/usb/line6/pod.c struct usb_line6_pod *pod = line6_to_pod(line6); line6 280 sound/usb/line6/pod.c line6_version_request_async(line6); line6 284 sound/usb/line6/pod.c line6_read_serial_number(&pod->line6, &pod->serial_number); line6 287 sound/usb/line6/pod.c if (snd_card_register(line6->card)) line6 288 sound/usb/line6/pod.c dev_err(line6->ifcdev, "Failed to register POD card.\n"); line6 329 sound/usb/line6/pod.c struct usb_line6_pod *pod = line6_to_pod(line6pcm->line6); line6 340 sound/usb/line6/pod.c struct usb_line6_pod *pod = line6_to_pod(line6pcm->line6); line6 365 sound/usb/line6/pod.c static int pod_init(struct usb_line6 *line6, line6 369 sound/usb/line6/pod.c struct usb_line6_pod *pod = line6_to_pod(line6); line6 371 sound/usb/line6/pod.c line6->process_message = line6_pod_process_message; line6 372 sound/usb/line6/pod.c line6->startup = pod_startup; line6 375 sound/usb/line6/pod.c err = snd_card_add_dev_attr(line6->card, &pod_dev_attr_group); line6 380 sound/usb/line6/pod.c err = line6_init_midi(line6); line6 385 sound/usb/line6/pod.c err = line6_init_pcm(line6, &pod_pcm_properties); line6 390 sound/usb/line6/pod.c err = snd_ctl_add(line6->card, line6 391 sound/usb/line6/pod.c snd_ctl_new1(&pod_control_monitor, line6->line6pcm)); line6 401 sound/usb/line6/pod.c if (pod->line6.properties->capabilities & LINE6_CAP_CONTROL) { line6 405 sound/usb/line6/pod.c schedule_delayed_work(&line6->startup_work, line6 33 sound/usb/line6/podhd.c struct usb_line6 line6; line6 42 sound/usb/line6/podhd.c #define line6_to_podhd(x) container_of(x, struct usb_line6_podhd, line6) line6 184 sound/usb/line6/podhd.c struct usb_device *usbdev = pod->line6.usbdev; line6 195 sound/usb/line6/podhd.c dev_err(pod->line6.ifcdev, "read request failed (error %d)\n", ret); line6 205 sound/usb/line6/podhd.c dev_err(pod->line6.ifcdev, line6 214 sound/usb/line6/podhd.c ret = line6_read_data(&pod->line6, 0xf000 + 0x08 * i, init_bytes, 8); line6 229 sound/usb/line6/podhd.c static void podhd_startup(struct usb_line6 *line6) line6 231 sound/usb/line6/podhd.c struct usb_line6_podhd *pod = line6_to_podhd(line6); line6 234 sound/usb/line6/podhd.c line6_read_serial_number(&pod->line6, &pod->serial_number); line6 235 sound/usb/line6/podhd.c if (snd_card_register(line6->card)) line6 236 sound/usb/line6/podhd.c dev_err(line6->ifcdev, "Failed to register POD HD card.\n"); line6 239 sound/usb/line6/podhd.c static void podhd_disconnect(struct usb_line6 *line6) line6 241 sound/usb/line6/podhd.c struct usb_line6_podhd *pod = line6_to_podhd(line6); line6 243 sound/usb/line6/podhd.c if (pod->line6.properties->capabilities & LINE6_CAP_CONTROL_INFO) { line6 246 sound/usb/line6/podhd.c intf = usb_ifnum_to_if(line6->usbdev, line6 247 sound/usb/line6/podhd.c pod->line6.properties->ctrl_if); line6 256 sound/usb/line6/podhd.c static int podhd_init(struct usb_line6 *line6, line6 260 sound/usb/line6/podhd.c struct usb_line6_podhd *pod = line6_to_podhd(line6); line6 263 sound/usb/line6/podhd.c line6->disconnect = podhd_disconnect; line6 264 sound/usb/line6/podhd.c line6->startup = podhd_startup; line6 266 sound/usb/line6/podhd.c if (pod->line6.properties->capabilities & LINE6_CAP_CONTROL) { line6 268 sound/usb/line6/podhd.c intf = usb_ifnum_to_if(line6->usbdev, line6 269 sound/usb/line6/podhd.c pod->line6.properties->ctrl_if); line6 271 sound/usb/line6/podhd.c dev_err(pod->line6.ifcdev, "interface %d not found\n", line6 272 sound/usb/line6/podhd.c pod->line6.properties->ctrl_if); line6 278 sound/usb/line6/podhd.c dev_err(pod->line6.ifcdev, "can't claim interface %d, error %d\n", line6 279 sound/usb/line6/podhd.c pod->line6.properties->ctrl_if, err); line6 284 sound/usb/line6/podhd.c if (pod->line6.properties->capabilities & LINE6_CAP_CONTROL_INFO) { line6 286 sound/usb/line6/podhd.c err = snd_card_add_dev_attr(line6->card, &podhd_dev_attr_group); line6 291 sound/usb/line6/podhd.c if (pod->line6.properties->capabilities & LINE6_CAP_PCM) { line6 293 sound/usb/line6/podhd.c err = line6_init_pcm(line6, line6 301 sound/usb/line6/podhd.c if (!(pod->line6.properties->capabilities & LINE6_CAP_CONTROL_INFO)) { line6 303 sound/usb/line6/podhd.c return snd_card_register(line6->card); line6 307 sound/usb/line6/podhd.c schedule_delayed_work(&line6->startup_work, line6 42 sound/usb/line6/toneport.c struct usb_line6 line6; line6 60 sound/usb/line6/toneport.c #define line6_to_toneport(x) container_of(x, struct usb_line6_toneport, line6) line6 212 sound/usb/line6/toneport.c struct usb_line6_toneport *toneport = line6_to_toneport(line6pcm->line6); line6 223 sound/usb/line6/toneport.c struct usb_line6_toneport *toneport = line6_to_toneport(line6pcm->line6); line6 233 sound/usb/line6/toneport.c toneport_send_cmd(toneport->line6.usbdev, line6 238 sound/usb/line6/toneport.c static void toneport_startup(struct usb_line6 *line6) line6 240 sound/usb/line6/toneport.c line6_pcm_acquire(line6->line6pcm, LINE6_STREAM_MONITOR, true); line6 290 sound/usb/line6/toneport.c toneport_send_cmd(toneport->line6.usbdev, line6 305 sound/usb/line6/toneport.c struct device *dev = &toneport->line6.usbdev->dev; line6 362 sound/usb/line6/toneport.c struct usb_line6 *line6 = &toneport->line6; line6 363 sound/usb/line6/toneport.c struct usb_device *usbdev = line6->usbdev; line6 372 sound/usb/line6/toneport.c line6_write_data(line6, 0x80c6, ticks, 4); line6 387 sound/usb/line6/toneport.c schedule_delayed_work(&toneport->line6.startup_work, line6 395 sound/usb/line6/toneport.c static void line6_toneport_disconnect(struct usb_line6 *line6) line6 397 sound/usb/line6/toneport.c struct usb_line6_toneport *toneport = line6_to_toneport(line6); line6 407 sound/usb/line6/toneport.c static int toneport_init(struct usb_line6 *line6, line6 411 sound/usb/line6/toneport.c struct usb_line6_toneport *toneport = line6_to_toneport(line6); line6 415 sound/usb/line6/toneport.c line6->disconnect = line6_toneport_disconnect; line6 416 sound/usb/line6/toneport.c line6->startup = toneport_startup; line6 419 sound/usb/line6/toneport.c err = line6_init_pcm(line6, &toneport_pcm_properties); line6 424 sound/usb/line6/toneport.c err = snd_ctl_add(line6->card, line6 426 sound/usb/line6/toneport.c line6->line6pcm)); line6 433 sound/usb/line6/toneport.c snd_ctl_add(line6->card, line6 435 sound/usb/line6/toneport.c line6->line6pcm)); line6 440 sound/usb/line6/toneport.c line6_read_serial_number(line6, &toneport->serial_number); line6 441 sound/usb/line6/toneport.c line6_read_data(line6, 0x80c2, &toneport->firmware_version, 1); line6 454 sound/usb/line6/toneport.c return snd_card_register(line6->card); line6 37 sound/usb/line6/variax.c struct usb_line6 line6; line6 46 sound/usb/line6/variax.c #define line6_to_variax(x) container_of(x, struct usb_line6_variax, line6) line6 74 sound/usb/line6/variax.c line6_send_raw_message_async(&variax->line6, variax->buffer_activate, line6 85 sound/usb/line6/variax.c static void variax_startup(struct usb_line6 *line6) line6 87 sound/usb/line6/variax.c struct usb_line6_variax *variax = line6_to_variax(line6); line6 92 sound/usb/line6/variax.c schedule_delayed_work(&line6->startup_work, line6 95 sound/usb/line6/variax.c line6_version_request_async(line6); line6 101 sound/usb/line6/variax.c schedule_delayed_work(&line6->startup_work, line6 106 sound/usb/line6/variax.c snd_card_register(variax->line6.card); line6 114 sound/usb/line6/variax.c static void line6_variax_process_message(struct usb_line6 *line6) line6 116 sound/usb/line6/variax.c struct usb_line6_variax *variax = line6_to_variax(line6); line6 117 sound/usb/line6/variax.c const unsigned char *buf = variax->line6.buffer_message; line6 121 sound/usb/line6/variax.c dev_info(variax->line6.ifcdev, "VARIAX reset\n"); line6 130 sound/usb/line6/variax.c cancel_delayed_work(&line6->startup_work); line6 131 sound/usb/line6/variax.c schedule_delayed_work(&line6->startup_work, line6 138 sound/usb/line6/variax.c cancel_delayed_work(&line6->startup_work); line6 139 sound/usb/line6/variax.c schedule_delayed_work(&line6->startup_work, 0); line6 148 sound/usb/line6/variax.c static void line6_variax_disconnect(struct usb_line6 *line6) line6 150 sound/usb/line6/variax.c struct usb_line6_variax *variax = line6_to_variax(line6); line6 158 sound/usb/line6/variax.c static int variax_init(struct usb_line6 *line6, line6 161 sound/usb/line6/variax.c struct usb_line6_variax *variax = line6_to_variax(line6); line6 164 sound/usb/line6/variax.c line6->process_message = line6_variax_process_message; line6 165 sound/usb/line6/variax.c line6->disconnect = line6_variax_disconnect; line6 166 sound/usb/line6/variax.c line6->startup = variax_startup; line6 176 sound/usb/line6/variax.c err = line6_init_midi(&variax->line6); line6 181 sound/usb/line6/variax.c schedule_delayed_work(&line6->startup_work,