Commit | Line | Data |
---|---|---|
98f2a97f CB |
1 | /***************************************************************************** |
2 | * | |
3 | * Copyright (C) 2008 Cedric Bregardis <cedric.bregardis@free.fr> and | |
4 | * Jean-Christian Hassler <jhassler@free.fr> | |
5 | * | |
6 | * This file is part of the Audiowerk2 ALSA driver | |
7 | * | |
8 | * The Audiowerk2 ALSA driver is free software; you can redistribute it and/or | |
9 | * modify it under the terms of the GNU General Public License as published by | |
10 | * the Free Software Foundation; version 2. | |
11 | * | |
12 | * The Audiowerk2 ALSA driver is distributed in the hope that it will be useful, | |
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
15 | * GNU General Public License for more details. | |
16 | * | |
17 | * You should have received a copy of the GNU General Public License | |
18 | * along with the Audiowerk2 ALSA driver; if not, write to the Free Software | |
19 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, | |
20 | * USA. | |
21 | * | |
22 | *****************************************************************************/ | |
23 | ||
24 | #ifndef AW2_SAA7146_H | |
25 | #define AW2_SAA7146_H | |
26 | ||
27 | #define NB_STREAM_PLAYBACK 2 | |
28 | #define NB_STREAM_CAPTURE 1 | |
29 | ||
30 | #define NUM_STREAM_PLAYBACK_ANA 0 | |
31 | #define NUM_STREAM_PLAYBACK_DIG 1 | |
32 | ||
33 | #define NUM_STREAM_CAPTURE_ANA 0 | |
34 | ||
35 | typedef void (*snd_aw2_saa7146_it_cb) (void *); | |
36 | ||
37 | struct snd_aw2_saa7146_cb_param { | |
38 | snd_aw2_saa7146_it_cb p_it_callback; | |
39 | void *p_callback_param; | |
40 | }; | |
41 | ||
42 | /* definition of the chip-specific record */ | |
43 | ||
44 | struct snd_aw2_saa7146 { | |
45 | void __iomem *base_addr; | |
46 | }; | |
47 | ||
48 | extern void snd_aw2_saa7146_setup(struct snd_aw2_saa7146 *chip, | |
49 | void __iomem *pci_base_addr); | |
50 | extern int snd_aw2_saa7146_free(struct snd_aw2_saa7146 *chip); | |
51 | ||
52 | extern void snd_aw2_saa7146_pcm_init_playback(struct snd_aw2_saa7146 *chip, | |
53 | int stream_number, | |
54 | unsigned long dma_addr, | |
55 | unsigned long period_size, | |
56 | unsigned long buffer_size); | |
57 | extern void snd_aw2_saa7146_pcm_init_capture(struct snd_aw2_saa7146 *chip, | |
58 | int stream_number, | |
59 | unsigned long dma_addr, | |
60 | unsigned long period_size, | |
61 | unsigned long buffer_size); | |
62 | extern void snd_aw2_saa7146_define_it_playback_callback(unsigned int | |
63 | stream_number, | |
64 | snd_aw2_saa7146_it_cb | |
65 | p_it_callback, | |
66 | void *p_callback_param); | |
67 | extern void snd_aw2_saa7146_define_it_capture_callback(unsigned int | |
68 | stream_number, | |
69 | snd_aw2_saa7146_it_cb | |
70 | p_it_callback, | |
71 | void *p_callback_param); | |
72 | extern void snd_aw2_saa7146_pcm_trigger_start_capture(struct snd_aw2_saa7146 | |
73 | *chip, int stream_number); | |
74 | extern void snd_aw2_saa7146_pcm_trigger_stop_capture(struct snd_aw2_saa7146 | |
75 | *chip, int stream_number); | |
76 | ||
77 | extern void snd_aw2_saa7146_pcm_trigger_start_playback(struct snd_aw2_saa7146 | |
78 | *chip, | |
79 | int stream_number); | |
80 | extern void snd_aw2_saa7146_pcm_trigger_stop_playback(struct snd_aw2_saa7146 | |
81 | *chip, int stream_number); | |
82 | ||
83 | extern irqreturn_t snd_aw2_saa7146_interrupt(int irq, void *dev_id); | |
84 | extern unsigned int snd_aw2_saa7146_get_hw_ptr_playback(struct snd_aw2_saa7146 | |
85 | *chip, | |
86 | int stream_number, | |
87 | unsigned char | |
88 | *start_addr, | |
89 | unsigned int | |
90 | buffer_size); | |
91 | extern unsigned int snd_aw2_saa7146_get_hw_ptr_capture(struct snd_aw2_saa7146 | |
92 | *chip, | |
93 | int stream_number, | |
94 | unsigned char | |
95 | *start_addr, | |
96 | unsigned int | |
97 | buffer_size); | |
98 | ||
99 | extern void snd_aw2_saa7146_use_digital_input(struct snd_aw2_saa7146 *chip, | |
100 | int use_digital); | |
101 | ||
102 | extern int snd_aw2_saa7146_is_using_digital_input(struct snd_aw2_saa7146 | |
103 | *chip); | |
104 | ||
105 | #endif |