Linux kernel & device driver programming

Cross-Referenced Linux and Device Driver Code

[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ]
Version: [ 2.6.11.8 ] [ 2.6.25 ] [ 2.6.25.8 ] [ 2.6.31.13 ] Architecture: [ i386 ]
  1 #ifndef USBUSX2Y_H
  2 #define USBUSX2Y_H
  3 #include "../usbaudio.h"
  4 #include "usbus428ctldefs.h" 
  5 
  6 #define NRURBS          2       
  7 
  8 
  9 #define URBS_AsyncSeq 10
 10 #define URB_DataLen_AsyncSeq 32
 11 typedef struct {
 12         struct urb*     urb[URBS_AsyncSeq];
 13         char*   buffer;
 14 } snd_usX2Y_AsyncSeq_t;
 15 
 16 typedef struct {
 17         int     submitted;
 18         int     len;
 19         struct urb*     urb[0];
 20 } snd_usX2Y_urbSeq_t;
 21 
 22 typedef struct snd_usX2Y_substream snd_usX2Y_substream_t;
 23 #include "usx2yhwdeppcm.h"
 24 
 25 typedef struct {
 26         snd_usb_audio_t         chip;
 27         int                     stride;
 28         struct urb              *In04urb;
 29         void                    *In04Buf;
 30         char                    In04Last[24];
 31         unsigned                In04IntCalls;
 32         snd_usX2Y_urbSeq_t      *US04;
 33         wait_queue_head_t       In04WaitQueue;
 34         snd_usX2Y_AsyncSeq_t    AS04;
 35         unsigned int            rate,
 36                                 format;
 37         int                     chip_status;
 38         struct semaphore        prepare_mutex;
 39         us428ctls_sharedmem_t   *us428ctls_sharedmem;
 40         int                     wait_iso_frame;
 41         wait_queue_head_t       us428ctls_wait_queue_head;
 42         snd_usX2Y_hwdep_pcm_shm_t       *hwdep_pcm_shm;
 43         snd_usX2Y_substream_t   *subs[4];
 44         snd_usX2Y_substream_t   * volatile  prepare_subs;
 45         wait_queue_head_t       prepare_wait_queue;
 46 } usX2Ydev_t;
 47 
 48 
 49 struct snd_usX2Y_substream {
 50         usX2Ydev_t      *usX2Y;
 51         snd_pcm_substream_t *pcm_substream;
 52 
 53         int                     endpoint;               
 54         unsigned int            maxpacksize;            /* max packet size in bytes */
 55 
 56         atomic_t                state;
 57 #define state_STOPPED   0
 58 #define state_STARTING1 1
 59 #define state_STARTING2 2
 60 #define state_STARTING3 3
 61 #define state_PREPARED  4
 62 #define state_PRERUNNING  6
 63 #define state_RUNNING   8
 64 
 65         int                     hwptr;                  /* free frame position in the buffer (only for playback) */
 66         int                     hwptr_done;             /* processed frame position in the buffer */
 67         int                     transfer_done;          /* processed frames since last period update */
 68 
 69         struct urb              *urb[NRURBS];   /* data urb table */
 70         struct urb              *completed_urb;
 71         char                    *tmpbuf;                        /* temporary buffer for playback */
 72 };
 73 
 74 
 75 #define usX2Y(c) ((usX2Ydev_t*)(c)->private_data)
 76 
 77 int usX2Y_audio_create(snd_card_t* card);
 78 
 79 int usX2Y_AsyncSeq04_init(usX2Ydev_t* usX2Y);
 80 int usX2Y_In04_init(usX2Ydev_t* usX2Y);
 81 
 82 #define NAME_ALLCAPS "US-X2Y"
 83 
 84 #endif
 85 
  This page was automatically generated by the LXR engine.