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 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 out_phase;
  30        unsigned out_phase_peeked;
  31        unsigned freqn;
  32};
  33
  34struct usb_stream *usb_stream_new(struct usb_stream_kernel *sk,
  35                                  struct usb_device *dev,
  36                                  unsigned in_endpoint, unsigned out_endpoint,
  37                                  unsigned sample_rate, unsigned use_packsize,
  38                                  unsigned period_frames, unsigned frame_size);
  39void usb_stream_free(struct usb_stream_kernel *);
  40int usb_stream_start(struct usb_stream_kernel *);
  41void usb_stream_stop(struct usb_stream_kernel *);
  42
  43#endif /* __USB_STREAM_H */
  44