linux/sound/usb/usx2y/usb_stream.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2#ifndef __USB_STREAM_H
   3#define __USB_STREAM_H
   4
   5#include <uapi/sound/usb_stream.h>
   6
   7#define USB_STREAM_NURBS 4
   8#define USB_STREAM_URBDEPTH 4
   9
  10struct usb_stream_kernel {
  11        struct usb_stream *s;
  12
  13        void *write_page;
  14
  15        unsigned int n_o_ps;
  16
  17        struct urb *inurb[USB_STREAM_NURBS];
  18        struct urb *idle_inurb;
  19        struct urb *completed_inurb;
  20        struct urb *outurb[USB_STREAM_NURBS];
  21        struct urb *idle_outurb;
  22        struct urb *completed_outurb;
  23        struct urb *i_urb;
  24
  25        int iso_frame_balance;
  26
  27        wait_queue_head_t sleep;
  28
  29        unsigned int out_phase;
  30        unsigned int out_phase_peeked;
  31        unsigned int freqn;
  32};
  33
  34struct usb_stream *usb_stream_new(struct usb_stream_kernel *sk,
  35                                  struct usb_device *dev,
  36                                  unsigned int in_endpoint,
  37                                  unsigned int out_endpoint,
  38                                  unsigned int sample_rate,
  39                                  unsigned int use_packsize,
  40                                  unsigned int period_frames,
  41                                  unsigned int frame_size);
  42void usb_stream_free(struct usb_stream_kernel *sk);
  43int usb_stream_start(struct usb_stream_kernel *sk);
  44void usb_stream_stop(struct usb_stream_kernel *sk);
  45
  46#endif /* __USB_STREAM_H */
  47