usb_stream.h (1093B)
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 */