cregit-Linux how code gets into the kernel

Release 4.11 sound/usb/usx2y/usbusx2y.h

Directory: sound/usb/usx2y
#ifndef USBUSX2Y_H

#define USBUSX2Y_H
#include "../usbaudio.h"
#include "../midi.h"
#include "usbus428ctldefs.h" 


#define NRURBS	        2	



#define URBS_AsyncSeq 10

#define URB_DataLen_AsyncSeq 32

struct snd_usX2Y_AsyncSeq {
	
struct urb	*urb[URBS_AsyncSeq];
	
char		*buffer;
};


struct snd_usX2Y_urbSeq {
	
int	submitted;
	
int	len;
	
struct urb	*urb[0];
};

#include "usx2yhwdeppcm.h"


struct usX2Ydev {
	
struct usb_device	*dev;
	
int			card_index;
	
int			stride;
	
struct urb		*In04urb;
	
void			*In04Buf;
	
char			In04Last[24];
	
unsigned		In04IntCalls;
	
struct snd_usX2Y_urbSeq	*US04;
	
wait_queue_head_t	In04WaitQueue;
	
struct snd_usX2Y_AsyncSeq	AS04;
	
unsigned int		rate,
				
format;
	
int			chip_status;
	
struct mutex		pcm_mutex;
	
struct us428ctls_sharedmem	*us428ctls_sharedmem;
	
int			wait_iso_frame;
	
wait_queue_head_t	us428ctls_wait_queue_head;
	
struct snd_usX2Y_hwdep_pcm_shm	*hwdep_pcm_shm;
	
struct snd_usX2Y_substream	*subs[4];
	
struct snd_usX2Y_substream	* volatile  prepare_subs;
	
wait_queue_head_t	prepare_wait_queue;
	
struct list_head	midi_list;
	
struct list_head	pcm_list;
	
int			pcm_devs;
};



struct snd_usX2Y_substream {
	
struct usX2Ydev	*usX2Y;
	
struct snd_pcm_substream *pcm_substream;

	
int			endpoint;		
	
unsigned int		maxpacksize;		/* max packet size in bytes */

	
atomic_t		state;

#define state_STOPPED	0

#define state_STARTING1 1

#define state_STARTING2 2

#define state_STARTING3 3

#define state_PREPARED	4

#define state_PRERUNNING  6

#define state_RUNNING	8

	
int			hwptr;			/* free frame position in the buffer (only for playback) */
	
int			hwptr_done;		/* processed frame position in the buffer */
	
int			transfer_done;		/* processed frames since last period update */

	
struct urb		*urb[NRURBS];	/* data urb table */
	
struct urb		*completed_urb;
	
char			*tmpbuf;			/* temporary buffer for playback */
};



#define usX2Y(c) ((struct usX2Ydev *)(c)->private_data)

int usX2Y_audio_create(struct snd_card *card);

int usX2Y_AsyncSeq04_init(struct usX2Ydev *usX2Y);
int usX2Y_In04_init(struct usX2Ydev *usX2Y);


#define NAME_ALLCAPS "US-X2Y"

#endif

Overall Contributors

PersonTokensPropCommitsCommitProp
Jaroslav Kysela24282.31%330.00%
Takashi Iwai3110.54%220.00%
Clemens Ladisch175.78%220.00%
Daniel Mack31.02%220.00%
Ingo Molnar10.34%110.00%
Total294100.00%10100.00%
Directory: sound/usb/usx2y
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.