xref: /linux/drivers/media/pci/cobalt/cobalt-alsa.h (revision fcc8487d477a3452a1d0ccbdd4c5e0e1e3cb8bed)
1 /*
2  *  ALSA interface to cobalt PCM capture streams
3  *
4  *  Copyright 2014-2015 Cisco Systems, Inc. and/or its affiliates.
5  *  All rights reserved.
6  *
7  *  This program is free software; you may redistribute it and/or modify
8  *  it under the terms of the GNU General Public License as published by
9  *  the Free Software Foundation; version 2 of the License.
10  *
11  *  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
12  *  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
13  *  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
14  *  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
15  *  BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
16  *  ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
17  *  CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
18  *  SOFTWARE.
19  */
20 
21 struct snd_card;
22 
23 struct snd_cobalt_card {
24 	struct cobalt_stream *s;
25 	struct snd_card *sc;
26 	unsigned int capture_transfer_done;
27 	unsigned int hwptr_done_capture;
28 	unsigned alsa_record_cnt;
29 	struct snd_pcm_substream *capture_pcm_substream;
30 
31 	unsigned int pb_size;
32 	unsigned int pb_count;
33 	unsigned int pb_pos;
34 	unsigned pb_filled;
35 	bool alsa_pb_channel;
36 	unsigned alsa_playback_cnt;
37 	struct snd_pcm_substream *playback_pcm_substream;
38 };
39 
40 int cobalt_alsa_init(struct cobalt_stream *s);
41 void cobalt_alsa_exit(struct cobalt_stream *s);
42