OpenCores
URL https://opencores.org/ocsvn/or1k_soc_on_altera_embedded_dev_kit/or1k_soc_on_altera_embedded_dev_kit/trunk

Subversion Repositories or1k_soc_on_altera_embedded_dev_kit

[/] [or1k_soc_on_altera_embedded_dev_kit/] [trunk/] [linux-2.6/] [linux-2.6.24/] [sound/] [usb/] [usx2y/] [usbusx2y.h] - Blame information for rev 3

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 3 xianfeng
#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
struct snd_usX2Y_AsyncSeq {
12
        struct urb      *urb[URBS_AsyncSeq];
13
        char            *buffer;
14
};
15
 
16
struct snd_usX2Y_urbSeq {
17
        int     submitted;
18
        int     len;
19
        struct urb      *urb[0];
20
};
21
 
22
#include "usx2yhwdeppcm.h"
23
 
24
struct usX2Ydev {
25
        struct snd_usb_audio    chip;
26
        int                     stride;
27
        struct urb              *In04urb;
28
        void                    *In04Buf;
29
        char                    In04Last[24];
30
        unsigned                In04IntCalls;
31
        struct snd_usX2Y_urbSeq *US04;
32
        wait_queue_head_t       In04WaitQueue;
33
        struct snd_usX2Y_AsyncSeq       AS04;
34
        unsigned int            rate,
35
                                format;
36
        int                     chip_status;
37
        struct mutex            prepare_mutex;
38
        struct us428ctls_sharedmem      *us428ctls_sharedmem;
39
        int                     wait_iso_frame;
40
        wait_queue_head_t       us428ctls_wait_queue_head;
41
        struct snd_usX2Y_hwdep_pcm_shm  *hwdep_pcm_shm;
42
        struct snd_usX2Y_substream      *subs[4];
43
        struct snd_usX2Y_substream      * volatile  prepare_subs;
44
        wait_queue_head_t       prepare_wait_queue;
45
};
46
 
47
 
48
struct snd_usX2Y_substream {
49
        struct usX2Ydev *usX2Y;
50
        struct snd_pcm_substream *pcm_substream;
51
 
52
        int                     endpoint;
53
        unsigned int            maxpacksize;            /* max packet size in bytes */
54
 
55
        atomic_t                state;
56
#define state_STOPPED   0
57
#define state_STARTING1 1
58
#define state_STARTING2 2
59
#define state_STARTING3 3
60
#define state_PREPARED  4
61
#define state_PRERUNNING  6
62
#define state_RUNNING   8
63
 
64
        int                     hwptr;                  /* free frame position in the buffer (only for playback) */
65
        int                     hwptr_done;             /* processed frame position in the buffer */
66
        int                     transfer_done;          /* processed frames since last period update */
67
 
68
        struct urb              *urb[NRURBS];   /* data urb table */
69
        struct urb              *completed_urb;
70
        char                    *tmpbuf;                        /* temporary buffer for playback */
71
};
72
 
73
 
74
#define usX2Y(c) ((struct usX2Ydev *)(c)->private_data)
75
 
76
int usX2Y_audio_create(struct snd_card *card);
77
 
78
int usX2Y_AsyncSeq04_init(struct usX2Ydev *usX2Y);
79
int usX2Y_In04_init(struct usX2Ydev *usX2Y);
80
 
81
#define NAME_ALLCAPS "US-X2Y"
82
 
83
#endif

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.