Add the rt linux 4.1.3-rt3 as base
[kvmfornfv.git] / kernel / sound / usb / usx2y / usb_stream.h
diff --git a/kernel/sound/usb/usx2y/usb_stream.h b/kernel/sound/usb/usx2y/usb_stream.h
new file mode 100644 (file)
index 0000000..9036900
--- /dev/null
@@ -0,0 +1,42 @@
+#ifndef __USB_STREAM_H
+#define __USB_STREAM_H
+
+#include <uapi/sound/usb_stream.h>
+
+#define USB_STREAM_NURBS 4
+#define USB_STREAM_URBDEPTH 4
+
+struct usb_stream_kernel {
+       struct usb_stream *s;
+
+       void *write_page;
+
+       unsigned n_o_ps;
+
+       struct urb *inurb[USB_STREAM_NURBS];
+       struct urb *idle_inurb;
+       struct urb *completed_inurb;
+       struct urb *outurb[USB_STREAM_NURBS];
+       struct urb *idle_outurb;
+       struct urb *completed_outurb;
+       struct urb *i_urb;
+
+       int iso_frame_balance;
+
+       wait_queue_head_t sleep;
+
+       unsigned out_phase;
+       unsigned out_phase_peeked;
+       unsigned freqn;
+};
+
+struct usb_stream *usb_stream_new(struct usb_stream_kernel *sk,
+                                 struct usb_device *dev,
+                                 unsigned in_endpoint, unsigned out_endpoint,
+                                 unsigned sample_rate, unsigned use_packsize,
+                                 unsigned period_frames, unsigned frame_size);
+void usb_stream_free(struct usb_stream_kernel *);
+int usb_stream_start(struct usb_stream_kernel *);
+void usb_stream_stop(struct usb_stream_kernel *);
+
+#endif /* __USB_STREAM_H */