aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sound/arm/pxa2xx-ac97.c44
-rw-r--r--sound/arm/pxa2xx-pcm.c59
-rw-r--r--sound/arm/pxa2xx-pcm.h20
3 files changed, 62 insertions, 61 deletions
diff --git a/sound/arm/pxa2xx-ac97.c b/sound/arm/pxa2xx-ac97.c
index c96c8a2aa1c2..d9efc37393ee 100644
--- a/sound/arm/pxa2xx-ac97.c
+++ b/sound/arm/pxa2xx-ac97.c
@@ -37,7 +37,7 @@ static DECLARE_MUTEX(car_mutex);
37static DECLARE_WAIT_QUEUE_HEAD(gsr_wq); 37static DECLARE_WAIT_QUEUE_HEAD(gsr_wq);
38static volatile long gsr_bits; 38static volatile long gsr_bits;
39 39
40static unsigned short pxa2xx_ac97_read(ac97_t *ac97, unsigned short reg) 40static unsigned short pxa2xx_ac97_read(struct snd_ac97 *ac97, unsigned short reg)
41{ 41{
42 unsigned short val = -1; 42 unsigned short val = -1;
43 volatile u32 *reg_addr; 43 volatile u32 *reg_addr;
@@ -75,7 +75,7 @@ out: up(&car_mutex);
75 return val; 75 return val;
76} 76}
77 77
78static void pxa2xx_ac97_write(ac97_t *ac97, unsigned short reg, unsigned short val) 78static void pxa2xx_ac97_write(struct snd_ac97 *ac97, unsigned short reg, unsigned short val)
79{ 79{
80 volatile u32 *reg_addr; 80 volatile u32 *reg_addr;
81 81
@@ -99,7 +99,7 @@ static void pxa2xx_ac97_write(ac97_t *ac97, unsigned short reg, unsigned short v
99out: up(&car_mutex); 99out: up(&car_mutex);
100} 100}
101 101
102static void pxa2xx_ac97_reset(ac97_t *ac97) 102static void pxa2xx_ac97_reset(struct snd_ac97 *ac97)
103{ 103{
104 /* First, try cold reset */ 104 /* First, try cold reset */
105 GCR &= GCR_COLD_RST; /* clear everything but nCRST */ 105 GCR &= GCR_COLD_RST; /* clear everything but nCRST */
@@ -172,13 +172,13 @@ static irqreturn_t pxa2xx_ac97_irq(int irq, void *dev_id, struct pt_regs *regs)
172 return IRQ_NONE; 172 return IRQ_NONE;
173} 173}
174 174
175static ac97_bus_ops_t pxa2xx_ac97_ops = { 175static struct snd_ac97_bus_ops pxa2xx_ac97_ops = {
176 .read = pxa2xx_ac97_read, 176 .read = pxa2xx_ac97_read,
177 .write = pxa2xx_ac97_write, 177 .write = pxa2xx_ac97_write,
178 .reset = pxa2xx_ac97_reset, 178 .reset = pxa2xx_ac97_reset,
179}; 179};
180 180
181static pxa2xx_pcm_dma_params_t pxa2xx_ac97_pcm_out = { 181static struct pxa2xx_pcm_dma_params pxa2xx_ac97_pcm_out = {
182 .name = "AC97 PCM out", 182 .name = "AC97 PCM out",
183 .dev_addr = __PREG(PCDR), 183 .dev_addr = __PREG(PCDR),
184 .drcmr = &DRCMRTXPCDR, 184 .drcmr = &DRCMRTXPCDR,
@@ -186,7 +186,7 @@ static pxa2xx_pcm_dma_params_t pxa2xx_ac97_pcm_out = {
186 DCMD_BURST32 | DCMD_WIDTH4, 186 DCMD_BURST32 | DCMD_WIDTH4,
187}; 187};
188 188
189static pxa2xx_pcm_dma_params_t pxa2xx_ac97_pcm_in = { 189static struct pxa2xx_pcm_dma_params pxa2xx_ac97_pcm_in = {
190 .name = "AC97 PCM in", 190 .name = "AC97 PCM in",
191 .dev_addr = __PREG(PCDR), 191 .dev_addr = __PREG(PCDR),
192 .drcmr = &DRCMRRXPCDR, 192 .drcmr = &DRCMRRXPCDR,
@@ -194,12 +194,12 @@ static pxa2xx_pcm_dma_params_t pxa2xx_ac97_pcm_in = {
194 DCMD_BURST32 | DCMD_WIDTH4, 194 DCMD_BURST32 | DCMD_WIDTH4,
195}; 195};
196 196
197static snd_pcm_t *pxa2xx_ac97_pcm; 197static struct snd_pcm *pxa2xx_ac97_pcm;
198static ac97_t *pxa2xx_ac97_ac97; 198static struct snd_ac97 *pxa2xx_ac97_ac97;
199 199
200static int pxa2xx_ac97_pcm_startup(snd_pcm_substream_t *substream) 200static int pxa2xx_ac97_pcm_startup(struct snd_pcm_substream *substream)
201{ 201{
202 snd_pcm_runtime_t *runtime = substream->runtime; 202 struct snd_pcm_runtime *runtime = substream->runtime;
203 pxa2xx_audio_ops_t *platform_ops; 203 pxa2xx_audio_ops_t *platform_ops;
204 int r; 204 int r;
205 205
@@ -218,7 +218,7 @@ static int pxa2xx_ac97_pcm_startup(snd_pcm_substream_t *substream)
218 return 0; 218 return 0;
219} 219}
220 220
221static void pxa2xx_ac97_pcm_shutdown(snd_pcm_substream_t *substream) 221static void pxa2xx_ac97_pcm_shutdown(struct snd_pcm_substream *substream)
222{ 222{
223 pxa2xx_audio_ops_t *platform_ops; 223 pxa2xx_audio_ops_t *platform_ops;
224 224
@@ -227,15 +227,15 @@ static void pxa2xx_ac97_pcm_shutdown(snd_pcm_substream_t *substream)
227 platform_ops->shutdown(substream, platform_ops->priv); 227 platform_ops->shutdown(substream, platform_ops->priv);
228} 228}
229 229
230static int pxa2xx_ac97_pcm_prepare(snd_pcm_substream_t *substream) 230static int pxa2xx_ac97_pcm_prepare(struct snd_pcm_substream *substream)
231{ 231{
232 snd_pcm_runtime_t *runtime = substream->runtime; 232 struct snd_pcm_runtime *runtime = substream->runtime;
233 int reg = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) ? 233 int reg = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) ?
234 AC97_PCM_FRONT_DAC_RATE : AC97_PCM_LR_ADC_RATE; 234 AC97_PCM_FRONT_DAC_RATE : AC97_PCM_LR_ADC_RATE;
235 return snd_ac97_set_rate(pxa2xx_ac97_ac97, reg, runtime->rate); 235 return snd_ac97_set_rate(pxa2xx_ac97_ac97, reg, runtime->rate);
236} 236}
237 237
238static pxa2xx_pcm_client_t pxa2xx_ac97_pcm_client = { 238static struct pxa2xx_pcm_client pxa2xx_ac97_pcm_client = {
239 .playback_params = &pxa2xx_ac97_pcm_out, 239 .playback_params = &pxa2xx_ac97_pcm_out,
240 .capture_params = &pxa2xx_ac97_pcm_in, 240 .capture_params = &pxa2xx_ac97_pcm_in,
241 .startup = pxa2xx_ac97_pcm_startup, 241 .startup = pxa2xx_ac97_pcm_startup,
@@ -245,7 +245,7 @@ static pxa2xx_pcm_client_t pxa2xx_ac97_pcm_client = {
245 245
246#ifdef CONFIG_PM 246#ifdef CONFIG_PM
247 247
248static int pxa2xx_ac97_do_suspend(snd_card_t *card, pm_message_t state) 248static int pxa2xx_ac97_do_suspend(struct snd_card *card, pm_message_t state)
249{ 249{
250 if (card->power_state != SNDRV_CTL_POWER_D3cold) { 250 if (card->power_state != SNDRV_CTL_POWER_D3cold) {
251 pxa2xx_audio_ops_t *platform_ops = card->dev->platform_data; 251 pxa2xx_audio_ops_t *platform_ops = card->dev->platform_data;
@@ -261,7 +261,7 @@ static int pxa2xx_ac97_do_suspend(snd_card_t *card, pm_message_t state)
261 return 0; 261 return 0;
262} 262}
263 263
264static int pxa2xx_ac97_do_resume(snd_card_t *card) 264static int pxa2xx_ac97_do_resume(struct snd_card *card)
265{ 265{
266 if (card->power_state != SNDRV_CTL_POWER_D0) { 266 if (card->power_state != SNDRV_CTL_POWER_D0) {
267 pxa2xx_audio_ops_t *platform_ops = card->dev->platform_data; 267 pxa2xx_audio_ops_t *platform_ops = card->dev->platform_data;
@@ -277,7 +277,7 @@ static int pxa2xx_ac97_do_resume(snd_card_t *card)
277 277
278static int pxa2xx_ac97_suspend(struct platform_device *dev, pm_message_t state) 278static int pxa2xx_ac97_suspend(struct platform_device *dev, pm_message_t state)
279{ 279{
280 snd_card_t *card = platform_get_drvdata(dev); 280 struct snd_card *card = platform_get_drvdata(dev);
281 int ret = 0; 281 int ret = 0;
282 282
283 if (card) 283 if (card)
@@ -288,7 +288,7 @@ static int pxa2xx_ac97_suspend(struct platform_device *dev, pm_message_t state)
288 288
289static int pxa2xx_ac97_resume(struct platform_device *dev) 289static int pxa2xx_ac97_resume(struct platform_device *dev)
290{ 290{
291 snd_card_t *card = platform_get_drvdata(dev); 291 struct snd_card *card = platform_get_drvdata(dev);
292 int ret = 0; 292 int ret = 0;
293 293
294 if (card) 294 if (card)
@@ -304,9 +304,9 @@ static int pxa2xx_ac97_resume(struct platform_device *dev)
304 304
305static int pxa2xx_ac97_probe(struct platform_device *dev) 305static int pxa2xx_ac97_probe(struct platform_device *dev)
306{ 306{
307 snd_card_t *card; 307 struct snd_card *card;
308 ac97_bus_t *ac97_bus; 308 struct snd_ac97_bus *ac97_bus;
309 ac97_template_t ac97_template; 309 struct snd_ac97_template ac97_template;
310 int ret; 310 int ret;
311 311
312 ret = -ENOMEM; 312 ret = -ENOMEM;
@@ -370,7 +370,7 @@ static int pxa2xx_ac97_probe(struct platform_device *dev)
370 370
371static int pxa2xx_ac97_remove(struct platform_device *dev) 371static int pxa2xx_ac97_remove(struct platform_device *dev)
372{ 372{
373 snd_card_t *card = platform_get_drvdata(dev); 373 struct snd_card *card = platform_get_drvdata(dev);
374 374
375 if (card) { 375 if (card) {
376 snd_card_free(card); 376 snd_card_free(card);
diff --git a/sound/arm/pxa2xx-pcm.c b/sound/arm/pxa2xx-pcm.c
index b1eb53b02eae..4938ef10b813 100644
--- a/sound/arm/pxa2xx-pcm.c
+++ b/sound/arm/pxa2xx-pcm.c
@@ -28,7 +28,7 @@
28#include "pxa2xx-pcm.h" 28#include "pxa2xx-pcm.h"
29 29
30 30
31static const snd_pcm_hardware_t pxa2xx_pcm_hardware = { 31static const struct snd_pcm_hardware pxa2xx_pcm_hardware = {
32 .info = SNDRV_PCM_INFO_MMAP | 32 .info = SNDRV_PCM_INFO_MMAP |
33 SNDRV_PCM_INFO_MMAP_VALID | 33 SNDRV_PCM_INFO_MMAP_VALID |
34 SNDRV_PCM_INFO_INTERLEAVED | 34 SNDRV_PCM_INFO_INTERLEAVED |
@@ -44,15 +44,15 @@ static const snd_pcm_hardware_t pxa2xx_pcm_hardware = {
44 44
45struct pxa2xx_runtime_data { 45struct pxa2xx_runtime_data {
46 int dma_ch; 46 int dma_ch;
47 pxa2xx_pcm_dma_params_t *params; 47 struct pxa2xx_pcm_dma_params *params;
48 pxa_dma_desc *dma_desc_array; 48 pxa_dma_desc *dma_desc_array;
49 dma_addr_t dma_desc_array_phys; 49 dma_addr_t dma_desc_array_phys;
50}; 50};
51 51
52static int pxa2xx_pcm_hw_params(snd_pcm_substream_t *substream, 52static int pxa2xx_pcm_hw_params(struct snd_pcm_substream *substream,
53 snd_pcm_hw_params_t *params) 53 struct snd_pcm_hw_params *params)
54{ 54{
55 snd_pcm_runtime_t *runtime = substream->runtime; 55 struct snd_pcm_runtime *runtime = substream->runtime;
56 struct pxa2xx_runtime_data *rtd = runtime->private_data; 56 struct pxa2xx_runtime_data *rtd = runtime->private_data;
57 size_t totsize = params_buffer_bytes(params); 57 size_t totsize = params_buffer_bytes(params);
58 size_t period = params_period_bytes(params); 58 size_t period = params_period_bytes(params);
@@ -86,7 +86,7 @@ static int pxa2xx_pcm_hw_params(snd_pcm_substream_t *substream,
86 return 0; 86 return 0;
87} 87}
88 88
89static int pxa2xx_pcm_hw_free(snd_pcm_substream_t *substream) 89static int pxa2xx_pcm_hw_free(struct snd_pcm_substream *substream)
90{ 90{
91 struct pxa2xx_runtime_data *rtd = substream->runtime->private_data; 91 struct pxa2xx_runtime_data *rtd = substream->runtime->private_data;
92 92
@@ -95,10 +95,10 @@ static int pxa2xx_pcm_hw_free(snd_pcm_substream_t *substream)
95 return 0; 95 return 0;
96} 96}
97 97
98static int pxa2xx_pcm_prepare(snd_pcm_substream_t *substream) 98static int pxa2xx_pcm_prepare(struct snd_pcm_substream *substream)
99{ 99{
100 pxa2xx_pcm_client_t *client = substream->private_data; 100 struct pxa2xx_pcm_client *client = substream->private_data;
101 snd_pcm_runtime_t *runtime = substream->runtime; 101 struct snd_pcm_runtime *runtime = substream->runtime;
102 struct pxa2xx_runtime_data *rtd = runtime->private_data; 102 struct pxa2xx_runtime_data *rtd = runtime->private_data;
103 103
104 DCSR(rtd->dma_ch) &= ~DCSR_RUN; 104 DCSR(rtd->dma_ch) &= ~DCSR_RUN;
@@ -109,7 +109,7 @@ static int pxa2xx_pcm_prepare(snd_pcm_substream_t *substream)
109 return client->prepare(substream); 109 return client->prepare(substream);
110} 110}
111 111
112static int pxa2xx_pcm_trigger(snd_pcm_substream_t *substream, int cmd) 112static int pxa2xx_pcm_trigger(struct snd_pcm_substream *substream, int cmd)
113{ 113{
114 struct pxa2xx_runtime_data *rtd = substream->runtime->private_data; 114 struct pxa2xx_runtime_data *rtd = substream->runtime->private_data;
115 int ret = 0; 115 int ret = 0;
@@ -139,7 +139,7 @@ static int pxa2xx_pcm_trigger(snd_pcm_substream_t *substream, int cmd)
139 139
140static void pxa2xx_pcm_dma_irq(int dma_ch, void *dev_id, struct pt_regs *regs) 140static void pxa2xx_pcm_dma_irq(int dma_ch, void *dev_id, struct pt_regs *regs)
141{ 141{
142 snd_pcm_substream_t *substream = dev_id; 142 struct snd_pcm_substream *substream = dev_id;
143 struct pxa2xx_runtime_data *rtd = substream->runtime->private_data; 143 struct pxa2xx_runtime_data *rtd = substream->runtime->private_data;
144 int dcsr; 144 int dcsr;
145 145
@@ -155,9 +155,9 @@ static void pxa2xx_pcm_dma_irq(int dma_ch, void *dev_id, struct pt_regs *regs)
155 } 155 }
156} 156}
157 157
158static snd_pcm_uframes_t pxa2xx_pcm_pointer(snd_pcm_substream_t *substream) 158static snd_pcm_uframes_t pxa2xx_pcm_pointer(struct snd_pcm_substream *substream)
159{ 159{
160 snd_pcm_runtime_t *runtime = substream->runtime; 160 struct snd_pcm_runtime *runtime = substream->runtime;
161 struct pxa2xx_runtime_data *rtd = runtime->private_data; 161 struct pxa2xx_runtime_data *rtd = runtime->private_data;
162 dma_addr_t ptr = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) ? 162 dma_addr_t ptr = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) ?
163 DSADR(rtd->dma_ch) : DTADR(rtd->dma_ch); 163 DSADR(rtd->dma_ch) : DTADR(rtd->dma_ch);
@@ -168,9 +168,9 @@ static snd_pcm_uframes_t pxa2xx_pcm_pointer(snd_pcm_substream_t *substream)
168} 168}
169 169
170static int 170static int
171pxa2xx_pcm_hw_rule_mult32(snd_pcm_hw_params_t *params, snd_pcm_hw_rule_t *rule) 171pxa2xx_pcm_hw_rule_mult32(struct snd_pcm_hw_params *params, struct snd_pcm_hw_rule *rule)
172{ 172{
173 snd_interval_t *i = hw_param_interval(params, rule->var); 173 struct snd_interval *i = hw_param_interval(params, rule->var);
174 int changed = 0; 174 int changed = 0;
175 175
176 if (i->min & 31) { 176 if (i->min & 31) {
@@ -188,10 +188,10 @@ pxa2xx_pcm_hw_rule_mult32(snd_pcm_hw_params_t *params, snd_pcm_hw_rule_t *rule)
188 return changed; 188 return changed;
189} 189}
190 190
191static int pxa2xx_pcm_open(snd_pcm_substream_t *substream) 191static int pxa2xx_pcm_open(struct snd_pcm_substream *substream)
192{ 192{
193 pxa2xx_pcm_client_t *client = substream->private_data; 193 struct pxa2xx_pcm_client *client = substream->private_data;
194 snd_pcm_runtime_t *runtime = substream->runtime; 194 struct snd_pcm_runtime *runtime = substream->runtime;
195 struct pxa2xx_runtime_data *rtd; 195 struct pxa2xx_runtime_data *rtd;
196 int ret; 196 int ret;
197 197
@@ -246,9 +246,9 @@ static int pxa2xx_pcm_open(snd_pcm_substream_t *substream)
246 return ret; 246 return ret;
247} 247}
248 248
249static int pxa2xx_pcm_close(snd_pcm_substream_t *substream) 249static int pxa2xx_pcm_close(struct snd_pcm_substream *substream)
250{ 250{
251 pxa2xx_pcm_client_t *client = substream->private_data; 251 struct pxa2xx_pcm_client *client = substream->private_data;
252 struct pxa2xx_runtime_data *rtd = substream->runtime->private_data; 252 struct pxa2xx_runtime_data *rtd = substream->runtime->private_data;
253 253
254 pxa_free_dma(rtd->dma_ch); 254 pxa_free_dma(rtd->dma_ch);
@@ -260,16 +260,16 @@ static int pxa2xx_pcm_close(snd_pcm_substream_t *substream)
260} 260}
261 261
262static int 262static int
263pxa2xx_pcm_mmap(snd_pcm_substream_t *substream, struct vm_area_struct *vma) 263pxa2xx_pcm_mmap(struct snd_pcm_substream *substream, struct vm_area_struct *vma)
264{ 264{
265 snd_pcm_runtime_t *runtime = substream->runtime; 265 struct snd_pcm_runtime *runtime = substream->runtime;
266 return dma_mmap_writecombine(substream->pcm->card->dev, vma, 266 return dma_mmap_writecombine(substream->pcm->card->dev, vma,
267 runtime->dma_area, 267 runtime->dma_area,
268 runtime->dma_addr, 268 runtime->dma_addr,
269 runtime->dma_bytes); 269 runtime->dma_bytes);
270} 270}
271 271
272static snd_pcm_ops_t pxa2xx_pcm_ops = { 272static struct snd_pcm_ops pxa2xx_pcm_ops = {
273 .open = pxa2xx_pcm_open, 273 .open = pxa2xx_pcm_open,
274 .close = pxa2xx_pcm_close, 274 .close = pxa2xx_pcm_close,
275 .ioctl = snd_pcm_lib_ioctl, 275 .ioctl = snd_pcm_lib_ioctl,
@@ -281,9 +281,9 @@ static snd_pcm_ops_t pxa2xx_pcm_ops = {
281 .mmap = pxa2xx_pcm_mmap, 281 .mmap = pxa2xx_pcm_mmap,
282}; 282};
283 283
284static int pxa2xx_pcm_preallocate_dma_buffer(snd_pcm_t *pcm, int stream) 284static int pxa2xx_pcm_preallocate_dma_buffer(struct snd_pcm *pcm, int stream)
285{ 285{
286 snd_pcm_substream_t *substream = pcm->streams[stream].substream; 286 struct snd_pcm_substream *substream = pcm->streams[stream].substream;
287 struct snd_dma_buffer *buf = &substream->dma_buffer; 287 struct snd_dma_buffer *buf = &substream->dma_buffer;
288 size_t size = pxa2xx_pcm_hardware.buffer_bytes_max; 288 size_t size = pxa2xx_pcm_hardware.buffer_bytes_max;
289 buf->dev.type = SNDRV_DMA_TYPE_DEV; 289 buf->dev.type = SNDRV_DMA_TYPE_DEV;
@@ -297,9 +297,9 @@ static int pxa2xx_pcm_preallocate_dma_buffer(snd_pcm_t *pcm, int stream)
297 return 0; 297 return 0;
298} 298}
299 299
300static void pxa2xx_pcm_free_dma_buffers(snd_pcm_t *pcm) 300static void pxa2xx_pcm_free_dma_buffers(struct snd_pcm *pcm)
301{ 301{
302 snd_pcm_substream_t *substream; 302 struct snd_pcm_substream *substream;
303 struct snd_dma_buffer *buf; 303 struct snd_dma_buffer *buf;
304 int stream; 304 int stream;
305 305
@@ -318,9 +318,10 @@ static void pxa2xx_pcm_free_dma_buffers(snd_pcm_t *pcm)
318 318
319static u64 pxa2xx_pcm_dmamask = 0xffffffff; 319static u64 pxa2xx_pcm_dmamask = 0xffffffff;
320 320
321int pxa2xx_pcm_new(snd_card_t *card, pxa2xx_pcm_client_t *client, snd_pcm_t **rpcm) 321int pxa2xx_pcm_new(struct snd_card *card, struct pxa2xx_pcm_client *client,
322 struct snd_pcm **rpcm)
322{ 323{
323 snd_pcm_t *pcm; 324 struct snd_pcm *pcm;
324 int play = client->playback_params ? 1 : 0; 325 int play = client->playback_params ? 1 : 0;
325 int capt = client->capture_params ? 1 : 0; 326 int capt = client->capture_params ? 1 : 0;
326 int ret; 327 int ret;
diff --git a/sound/arm/pxa2xx-pcm.h b/sound/arm/pxa2xx-pcm.h
index 43517597cab9..b79f1e803780 100644
--- a/sound/arm/pxa2xx-pcm.h
+++ b/sound/arm/pxa2xx-pcm.h
@@ -10,20 +10,20 @@
10 * published by the Free Software Foundation. 10 * published by the Free Software Foundation.
11 */ 11 */
12 12
13typedef struct { 13struct pxa2xx_pcm_dma_params {
14 char *name; /* stream identifier */ 14 char *name; /* stream identifier */
15 u32 dcmd; /* DMA descriptor dcmd field */ 15 u32 dcmd; /* DMA descriptor dcmd field */
16 volatile u32 *drcmr; /* the DMA request channel to use */ 16 volatile u32 *drcmr; /* the DMA request channel to use */
17 u32 dev_addr; /* device physical address for DMA */ 17 u32 dev_addr; /* device physical address for DMA */
18} pxa2xx_pcm_dma_params_t; 18};
19 19
20typedef struct { 20struct pxa2xx_pcm_client {
21 pxa2xx_pcm_dma_params_t *playback_params; 21 struct pxa2xx_pcm_dma_params *playback_params;
22 pxa2xx_pcm_dma_params_t *capture_params; 22 struct pxa2xx_pcm_dma_params *capture_params;
23 int (*startup)(snd_pcm_substream_t *); 23 int (*startup)(struct snd_pcm_substream *);
24 void (*shutdown)(snd_pcm_substream_t *); 24 void (*shutdown)(struct snd_pcm_substream *);
25 int (*prepare)(snd_pcm_substream_t *); 25 int (*prepare)(struct snd_pcm_substream *);
26} pxa2xx_pcm_client_t; 26};
27 27
28extern int pxa2xx_pcm_new(snd_card_t *, pxa2xx_pcm_client_t *, snd_pcm_t **); 28extern int pxa2xx_pcm_new(struct snd_card *, struct pxa2xx_pcm_client *, struct snd_pcm **);
29 29