aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/sound/ad1816a.h22
-rw-r--r--sound/isa/ad1816a/ad1816a.c8
-rw-r--r--sound/isa/ad1816a/ad1816a_lib.c176
3 files changed, 102 insertions, 104 deletions
diff --git a/include/sound/ad1816a.h b/include/sound/ad1816a.h
index ca2e0e4fa937..b3aa62ee3c8d 100644
--- a/include/sound/ad1816a.h
+++ b/include/sound/ad1816a.h
@@ -123,9 +123,7 @@
123#define AD1816A_CAPTURE_NOT_EQUAL 0x1000 123#define AD1816A_CAPTURE_NOT_EQUAL 0x1000
124#define AD1816A_WSS_ENABLE 0x8000 124#define AD1816A_WSS_ENABLE 0x8000
125 125
126typedef struct _snd_ad1816a ad1816a_t; 126struct snd_ad1816a {
127
128struct _snd_ad1816a {
129 unsigned long port; 127 unsigned long port;
130 struct resource *res_port; 128 struct resource *res_port;
131 int irq; 129 int irq;
@@ -140,15 +138,15 @@ struct _snd_ad1816a {
140 unsigned short mode; 138 unsigned short mode;
141 unsigned int clock_freq; 139 unsigned int clock_freq;
142 140
143 snd_card_t *card; 141 struct snd_card *card;
144 snd_pcm_t *pcm; 142 struct snd_pcm *pcm;
145 143
146 snd_pcm_substream_t *playback_substream; 144 struct snd_pcm_substream *playback_substream;
147 snd_pcm_substream_t *capture_substream; 145 struct snd_pcm_substream *capture_substream;
148 unsigned int p_dma_size; 146 unsigned int p_dma_size;
149 unsigned int c_dma_size; 147 unsigned int c_dma_size;
150 148
151 snd_timer_t *timer; 149 struct snd_timer *timer;
152}; 150};
153 151
154 152
@@ -165,11 +163,11 @@ struct _snd_ad1816a {
165 AD1816A_MODE_TIMER) 163 AD1816A_MODE_TIMER)
166 164
167 165
168extern int snd_ad1816a_create(snd_card_t *card, unsigned long port, 166extern int snd_ad1816a_create(struct snd_card *card, unsigned long port,
169 int irq, int dma1, int dma2, 167 int irq, int dma1, int dma2,
170 ad1816a_t **chip); 168 struct snd_ad1816a **chip);
171 169
172extern int snd_ad1816a_pcm(ad1816a_t *chip, int device, snd_pcm_t **rpcm); 170extern int snd_ad1816a_pcm(struct snd_ad1816a *chip, int device, struct snd_pcm **rpcm);
173extern int snd_ad1816a_mixer(ad1816a_t *chip); 171extern int snd_ad1816a_mixer(struct snd_ad1816a *chip);
174 172
175#endif /* __SOUND_AD1816A_H */ 173#endif /* __SOUND_AD1816A_H */
diff --git a/sound/isa/ad1816a/ad1816a.c b/sound/isa/ad1816a/ad1816a.c
index 0eb442ca23d6..543a4e284a40 100644
--- a/sound/isa/ad1816a/ad1816a.c
+++ b/sound/isa/ad1816a/ad1816a.c
@@ -188,10 +188,10 @@ static int __devinit snd_card_ad1816a_probe(int dev, struct pnp_card_link *pcard
188 const struct pnp_card_device_id *pid) 188 const struct pnp_card_device_id *pid)
189{ 189{
190 int error; 190 int error;
191 snd_card_t *card; 191 struct snd_card *card;
192 struct snd_card_ad1816a *acard; 192 struct snd_card_ad1816a *acard;
193 ad1816a_t *chip; 193 struct snd_ad1816a *chip;
194 opl3_t *opl3; 194 struct snd_opl3 *opl3;
195 195
196 if ((card = snd_card_new(index[dev], id[dev], THIS_MODULE, 196 if ((card = snd_card_new(index[dev], id[dev], THIS_MODULE,
197 sizeof(struct snd_card_ad1816a))) == NULL) 197 sizeof(struct snd_card_ad1816a))) == NULL)
@@ -282,7 +282,7 @@ static int __devinit snd_ad1816a_pnp_detect(struct pnp_card_link *card,
282 282
283static void __devexit snd_ad1816a_pnp_remove(struct pnp_card_link * pcard) 283static void __devexit snd_ad1816a_pnp_remove(struct pnp_card_link * pcard)
284{ 284{
285 snd_card_t *card = (snd_card_t *) pnp_get_card_drvdata(pcard); 285 struct snd_card *card = (struct snd_card *) pnp_get_card_drvdata(pcard);
286 286
287 snd_card_disconnect(card); 287 snd_card_disconnect(card);
288 snd_card_free_in_thread(card); 288 snd_card_free_in_thread(card);
diff --git a/sound/isa/ad1816a/ad1816a_lib.c b/sound/isa/ad1816a/ad1816a_lib.c
index 170409e26d03..89d11af33340 100644
--- a/sound/isa/ad1816a/ad1816a_lib.c
+++ b/sound/isa/ad1816a/ad1816a_lib.c
@@ -34,7 +34,7 @@ MODULE_AUTHOR("Massimo Piccioni <dafastidio@libero.it>");
34MODULE_DESCRIPTION("lowlevel code for Analog Devices AD1816A chip"); 34MODULE_DESCRIPTION("lowlevel code for Analog Devices AD1816A chip");
35MODULE_LICENSE("GPL"); 35MODULE_LICENSE("GPL");
36 36
37static inline int snd_ad1816a_busy_wait(ad1816a_t *chip) 37static inline int snd_ad1816a_busy_wait(struct snd_ad1816a *chip)
38{ 38{
39 int timeout; 39 int timeout;
40 40
@@ -46,34 +46,34 @@ static inline int snd_ad1816a_busy_wait(ad1816a_t *chip)
46 return -EBUSY; 46 return -EBUSY;
47} 47}
48 48
49static inline unsigned char snd_ad1816a_in(ad1816a_t *chip, unsigned char reg) 49static inline unsigned char snd_ad1816a_in(struct snd_ad1816a *chip, unsigned char reg)
50{ 50{
51 snd_ad1816a_busy_wait(chip); 51 snd_ad1816a_busy_wait(chip);
52 return inb(AD1816A_REG(reg)); 52 return inb(AD1816A_REG(reg));
53} 53}
54 54
55static inline void snd_ad1816a_out(ad1816a_t *chip, unsigned char reg, 55static inline void snd_ad1816a_out(struct snd_ad1816a *chip, unsigned char reg,
56 unsigned char value) 56 unsigned char value)
57{ 57{
58 snd_ad1816a_busy_wait(chip); 58 snd_ad1816a_busy_wait(chip);
59 outb(value, AD1816A_REG(reg)); 59 outb(value, AD1816A_REG(reg));
60} 60}
61 61
62static inline void snd_ad1816a_out_mask(ad1816a_t *chip, unsigned char reg, 62static inline void snd_ad1816a_out_mask(struct snd_ad1816a *chip, unsigned char reg,
63 unsigned char mask, unsigned char value) 63 unsigned char mask, unsigned char value)
64{ 64{
65 snd_ad1816a_out(chip, reg, 65 snd_ad1816a_out(chip, reg,
66 (value & mask) | (snd_ad1816a_in(chip, reg) & ~mask)); 66 (value & mask) | (snd_ad1816a_in(chip, reg) & ~mask));
67} 67}
68 68
69static unsigned short snd_ad1816a_read(ad1816a_t *chip, unsigned char reg) 69static unsigned short snd_ad1816a_read(struct snd_ad1816a *chip, unsigned char reg)
70{ 70{
71 snd_ad1816a_out(chip, AD1816A_INDIR_ADDR, reg & 0x3f); 71 snd_ad1816a_out(chip, AD1816A_INDIR_ADDR, reg & 0x3f);
72 return snd_ad1816a_in(chip, AD1816A_INDIR_DATA_LOW) | 72 return snd_ad1816a_in(chip, AD1816A_INDIR_DATA_LOW) |
73 (snd_ad1816a_in(chip, AD1816A_INDIR_DATA_HIGH) << 8); 73 (snd_ad1816a_in(chip, AD1816A_INDIR_DATA_HIGH) << 8);
74} 74}
75 75
76static void snd_ad1816a_write(ad1816a_t *chip, unsigned char reg, 76static void snd_ad1816a_write(struct snd_ad1816a *chip, unsigned char reg,
77 unsigned short value) 77 unsigned short value)
78{ 78{
79 snd_ad1816a_out(chip, AD1816A_INDIR_ADDR, reg & 0x3f); 79 snd_ad1816a_out(chip, AD1816A_INDIR_ADDR, reg & 0x3f);
@@ -81,7 +81,7 @@ static void snd_ad1816a_write(ad1816a_t *chip, unsigned char reg,
81 snd_ad1816a_out(chip, AD1816A_INDIR_DATA_HIGH, (value >> 8) & 0xff); 81 snd_ad1816a_out(chip, AD1816A_INDIR_DATA_HIGH, (value >> 8) & 0xff);
82} 82}
83 83
84static void snd_ad1816a_write_mask(ad1816a_t *chip, unsigned char reg, 84static void snd_ad1816a_write_mask(struct snd_ad1816a *chip, unsigned char reg,
85 unsigned short mask, unsigned short value) 85 unsigned short mask, unsigned short value)
86{ 86{
87 snd_ad1816a_write(chip, reg, 87 snd_ad1816a_write(chip, reg,
@@ -89,7 +89,7 @@ static void snd_ad1816a_write_mask(ad1816a_t *chip, unsigned char reg,
89} 89}
90 90
91 91
92static unsigned char snd_ad1816a_get_format(ad1816a_t *chip, 92static unsigned char snd_ad1816a_get_format(struct snd_ad1816a *chip,
93 unsigned int format, int channels) 93 unsigned int format, int channels)
94{ 94{
95 unsigned char retval = AD1816A_FMT_LINEAR_8; 95 unsigned char retval = AD1816A_FMT_LINEAR_8;
@@ -110,7 +110,7 @@ static unsigned char snd_ad1816a_get_format(ad1816a_t *chip,
110 return (channels > 1) ? (retval | AD1816A_FMT_STEREO) : retval; 110 return (channels > 1) ? (retval | AD1816A_FMT_STEREO) : retval;
111} 111}
112 112
113static int snd_ad1816a_open(ad1816a_t *chip, unsigned int mode) 113static int snd_ad1816a_open(struct snd_ad1816a *chip, unsigned int mode)
114{ 114{
115 unsigned long flags; 115 unsigned long flags;
116 116
@@ -146,7 +146,7 @@ static int snd_ad1816a_open(ad1816a_t *chip, unsigned int mode)
146 return 0; 146 return 0;
147} 147}
148 148
149static void snd_ad1816a_close(ad1816a_t *chip, unsigned int mode) 149static void snd_ad1816a_close(struct snd_ad1816a *chip, unsigned int mode)
150{ 150{
151 unsigned long flags; 151 unsigned long flags;
152 152
@@ -178,7 +178,7 @@ static void snd_ad1816a_close(ad1816a_t *chip, unsigned int mode)
178} 178}
179 179
180 180
181static int snd_ad1816a_trigger(ad1816a_t *chip, unsigned char what, 181static int snd_ad1816a_trigger(struct snd_ad1816a *chip, unsigned char what,
182 int channel, int cmd) 182 int channel, int cmd)
183{ 183{
184 int error = 0; 184 int error = 0;
@@ -204,36 +204,36 @@ static int snd_ad1816a_trigger(ad1816a_t *chip, unsigned char what,
204 return error; 204 return error;
205} 205}
206 206
207static int snd_ad1816a_playback_trigger(snd_pcm_substream_t *substream, int cmd) 207static int snd_ad1816a_playback_trigger(struct snd_pcm_substream *substream, int cmd)
208{ 208{
209 ad1816a_t *chip = snd_pcm_substream_chip(substream); 209 struct snd_ad1816a *chip = snd_pcm_substream_chip(substream);
210 return snd_ad1816a_trigger(chip, AD1816A_PLAYBACK_ENABLE, 210 return snd_ad1816a_trigger(chip, AD1816A_PLAYBACK_ENABLE,
211 SNDRV_PCM_STREAM_PLAYBACK, cmd); 211 SNDRV_PCM_STREAM_PLAYBACK, cmd);
212} 212}
213 213
214static int snd_ad1816a_capture_trigger(snd_pcm_substream_t *substream, int cmd) 214static int snd_ad1816a_capture_trigger(struct snd_pcm_substream *substream, int cmd)
215{ 215{
216 ad1816a_t *chip = snd_pcm_substream_chip(substream); 216 struct snd_ad1816a *chip = snd_pcm_substream_chip(substream);
217 return snd_ad1816a_trigger(chip, AD1816A_CAPTURE_ENABLE, 217 return snd_ad1816a_trigger(chip, AD1816A_CAPTURE_ENABLE,
218 SNDRV_PCM_STREAM_CAPTURE, cmd); 218 SNDRV_PCM_STREAM_CAPTURE, cmd);
219} 219}
220 220
221static int snd_ad1816a_hw_params(snd_pcm_substream_t * substream, 221static int snd_ad1816a_hw_params(struct snd_pcm_substream *substream,
222 snd_pcm_hw_params_t * hw_params) 222 struct snd_pcm_hw_params *hw_params)
223{ 223{
224 return snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(hw_params)); 224 return snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(hw_params));
225} 225}
226 226
227static int snd_ad1816a_hw_free(snd_pcm_substream_t * substream) 227static int snd_ad1816a_hw_free(struct snd_pcm_substream *substream)
228{ 228{
229 return snd_pcm_lib_free_pages(substream); 229 return snd_pcm_lib_free_pages(substream);
230} 230}
231 231
232static int snd_ad1816a_playback_prepare(snd_pcm_substream_t *substream) 232static int snd_ad1816a_playback_prepare(struct snd_pcm_substream *substream)
233{ 233{
234 ad1816a_t *chip = snd_pcm_substream_chip(substream); 234 struct snd_ad1816a *chip = snd_pcm_substream_chip(substream);
235 unsigned long flags; 235 unsigned long flags;
236 snd_pcm_runtime_t *runtime = substream->runtime; 236 struct snd_pcm_runtime *runtime = substream->runtime;
237 unsigned int size, rate; 237 unsigned int size, rate;
238 238
239 spin_lock_irqsave(&chip->lock, flags); 239 spin_lock_irqsave(&chip->lock, flags);
@@ -261,11 +261,11 @@ static int snd_ad1816a_playback_prepare(snd_pcm_substream_t *substream)
261 return 0; 261 return 0;
262} 262}
263 263
264static int snd_ad1816a_capture_prepare(snd_pcm_substream_t *substream) 264static int snd_ad1816a_capture_prepare(struct snd_pcm_substream *substream)
265{ 265{
266 ad1816a_t *chip = snd_pcm_substream_chip(substream); 266 struct snd_ad1816a *chip = snd_pcm_substream_chip(substream);
267 unsigned long flags; 267 unsigned long flags;
268 snd_pcm_runtime_t *runtime = substream->runtime; 268 struct snd_pcm_runtime *runtime = substream->runtime;
269 unsigned int size, rate; 269 unsigned int size, rate;
270 270
271 spin_lock_irqsave(&chip->lock, flags); 271 spin_lock_irqsave(&chip->lock, flags);
@@ -294,9 +294,9 @@ static int snd_ad1816a_capture_prepare(snd_pcm_substream_t *substream)
294} 294}
295 295
296 296
297static snd_pcm_uframes_t snd_ad1816a_playback_pointer(snd_pcm_substream_t *substream) 297static snd_pcm_uframes_t snd_ad1816a_playback_pointer(struct snd_pcm_substream *substream)
298{ 298{
299 ad1816a_t *chip = snd_pcm_substream_chip(substream); 299 struct snd_ad1816a *chip = snd_pcm_substream_chip(substream);
300 size_t ptr; 300 size_t ptr;
301 if (!(chip->mode & AD1816A_MODE_PLAYBACK)) 301 if (!(chip->mode & AD1816A_MODE_PLAYBACK))
302 return 0; 302 return 0;
@@ -304,9 +304,9 @@ static snd_pcm_uframes_t snd_ad1816a_playback_pointer(snd_pcm_substream_t *subst
304 return bytes_to_frames(substream->runtime, ptr); 304 return bytes_to_frames(substream->runtime, ptr);
305} 305}
306 306
307static snd_pcm_uframes_t snd_ad1816a_capture_pointer(snd_pcm_substream_t *substream) 307static snd_pcm_uframes_t snd_ad1816a_capture_pointer(struct snd_pcm_substream *substream)
308{ 308{
309 ad1816a_t *chip = snd_pcm_substream_chip(substream); 309 struct snd_ad1816a *chip = snd_pcm_substream_chip(substream);
310 size_t ptr; 310 size_t ptr;
311 if (!(chip->mode & AD1816A_MODE_CAPTURE)) 311 if (!(chip->mode & AD1816A_MODE_CAPTURE))
312 return 0; 312 return 0;
@@ -317,7 +317,7 @@ static snd_pcm_uframes_t snd_ad1816a_capture_pointer(snd_pcm_substream_t *substr
317 317
318static irqreturn_t snd_ad1816a_interrupt(int irq, void *dev_id, struct pt_regs *regs) 318static irqreturn_t snd_ad1816a_interrupt(int irq, void *dev_id, struct pt_regs *regs)
319{ 319{
320 ad1816a_t *chip = dev_id; 320 struct snd_ad1816a *chip = dev_id;
321 unsigned char status; 321 unsigned char status;
322 322
323 spin_lock(&chip->lock); 323 spin_lock(&chip->lock);
@@ -340,7 +340,7 @@ static irqreturn_t snd_ad1816a_interrupt(int irq, void *dev_id, struct pt_regs *
340} 340}
341 341
342 342
343static snd_pcm_hardware_t snd_ad1816a_playback = { 343static struct snd_pcm_hardware snd_ad1816a_playback = {
344 .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | 344 .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
345 SNDRV_PCM_INFO_MMAP_VALID), 345 SNDRV_PCM_INFO_MMAP_VALID),
346 .formats = (SNDRV_PCM_FMTBIT_MU_LAW | SNDRV_PCM_FMTBIT_A_LAW | 346 .formats = (SNDRV_PCM_FMTBIT_MU_LAW | SNDRV_PCM_FMTBIT_A_LAW |
@@ -359,7 +359,7 @@ static snd_pcm_hardware_t snd_ad1816a_playback = {
359 .fifo_size = 0, 359 .fifo_size = 0,
360}; 360};
361 361
362static snd_pcm_hardware_t snd_ad1816a_capture = { 362static struct snd_pcm_hardware snd_ad1816a_capture = {
363 .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | 363 .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
364 SNDRV_PCM_INFO_MMAP_VALID), 364 SNDRV_PCM_INFO_MMAP_VALID),
365 .formats = (SNDRV_PCM_FMTBIT_MU_LAW | SNDRV_PCM_FMTBIT_A_LAW | 365 .formats = (SNDRV_PCM_FMTBIT_MU_LAW | SNDRV_PCM_FMTBIT_A_LAW |
@@ -379,32 +379,32 @@ static snd_pcm_hardware_t snd_ad1816a_capture = {
379}; 379};
380 380
381#if 0 /* not used now */ 381#if 0 /* not used now */
382static int snd_ad1816a_timer_close(snd_timer_t *timer) 382static int snd_ad1816a_timer_close(struct snd_timer *timer)
383{ 383{
384 ad1816a_t *chip = snd_timer_chip(timer); 384 struct snd_ad1816a *chip = snd_timer_chip(timer);
385 snd_ad1816a_close(chip, AD1816A_MODE_TIMER); 385 snd_ad1816a_close(chip, AD1816A_MODE_TIMER);
386 return 0; 386 return 0;
387} 387}
388 388
389static int snd_ad1816a_timer_open(snd_timer_t *timer) 389static int snd_ad1816a_timer_open(struct snd_timer *timer)
390{ 390{
391 ad1816a_t *chip = snd_timer_chip(timer); 391 struct snd_ad1816a *chip = snd_timer_chip(timer);
392 snd_ad1816a_open(chip, AD1816A_MODE_TIMER); 392 snd_ad1816a_open(chip, AD1816A_MODE_TIMER);
393 return 0; 393 return 0;
394} 394}
395 395
396static unsigned long snd_ad1816a_timer_resolution(snd_timer_t *timer) 396static unsigned long snd_ad1816a_timer_resolution(struct snd_timer *timer)
397{ 397{
398 snd_assert(timer != NULL, return 0); 398 snd_assert(timer != NULL, return 0);
399 399
400 return 10000; 400 return 10000;
401} 401}
402 402
403static int snd_ad1816a_timer_start(snd_timer_t *timer) 403static int snd_ad1816a_timer_start(struct snd_timer *timer)
404{ 404{
405 unsigned short bits; 405 unsigned short bits;
406 unsigned long flags; 406 unsigned long flags;
407 ad1816a_t *chip = snd_timer_chip(timer); 407 struct snd_ad1816a *chip = snd_timer_chip(timer);
408 spin_lock_irqsave(&chip->lock, flags); 408 spin_lock_irqsave(&chip->lock, flags);
409 bits = snd_ad1816a_read(chip, AD1816A_INTERRUPT_ENABLE); 409 bits = snd_ad1816a_read(chip, AD1816A_INTERRUPT_ENABLE);
410 410
@@ -419,10 +419,10 @@ static int snd_ad1816a_timer_start(snd_timer_t *timer)
419 return 0; 419 return 0;
420} 420}
421 421
422static int snd_ad1816a_timer_stop(snd_timer_t *timer) 422static int snd_ad1816a_timer_stop(struct snd_timer *timer)
423{ 423{
424 unsigned long flags; 424 unsigned long flags;
425 ad1816a_t *chip = snd_timer_chip(timer); 425 struct snd_ad1816a *chip = snd_timer_chip(timer);
426 spin_lock_irqsave(&chip->lock, flags); 426 spin_lock_irqsave(&chip->lock, flags);
427 427
428 snd_ad1816a_write_mask(chip, AD1816A_INTERRUPT_ENABLE, 428 snd_ad1816a_write_mask(chip, AD1816A_INTERRUPT_ENABLE,
@@ -432,7 +432,7 @@ static int snd_ad1816a_timer_stop(snd_timer_t *timer)
432 return 0; 432 return 0;
433} 433}
434 434
435static struct _snd_timer_hardware snd_ad1816a_timer_table = { 435static struct snd_timer_hardware snd_ad1816a_timer_table = {
436 .flags = SNDRV_TIMER_HW_AUTO, 436 .flags = SNDRV_TIMER_HW_AUTO,
437 .resolution = 10000, 437 .resolution = 10000,
438 .ticks = 65535, 438 .ticks = 65535,
@@ -445,10 +445,10 @@ static struct _snd_timer_hardware snd_ad1816a_timer_table = {
445#endif /* not used now */ 445#endif /* not used now */
446 446
447 447
448static int snd_ad1816a_playback_open(snd_pcm_substream_t *substream) 448static int snd_ad1816a_playback_open(struct snd_pcm_substream *substream)
449{ 449{
450 ad1816a_t *chip = snd_pcm_substream_chip(substream); 450 struct snd_ad1816a *chip = snd_pcm_substream_chip(substream);
451 snd_pcm_runtime_t *runtime = substream->runtime; 451 struct snd_pcm_runtime *runtime = substream->runtime;
452 int error; 452 int error;
453 453
454 if ((error = snd_ad1816a_open(chip, AD1816A_MODE_PLAYBACK)) < 0) 454 if ((error = snd_ad1816a_open(chip, AD1816A_MODE_PLAYBACK)) < 0)
@@ -461,10 +461,10 @@ static int snd_ad1816a_playback_open(snd_pcm_substream_t *substream)
461 return 0; 461 return 0;
462} 462}
463 463
464static int snd_ad1816a_capture_open(snd_pcm_substream_t *substream) 464static int snd_ad1816a_capture_open(struct snd_pcm_substream *substream)
465{ 465{
466 ad1816a_t *chip = snd_pcm_substream_chip(substream); 466 struct snd_ad1816a *chip = snd_pcm_substream_chip(substream);
467 snd_pcm_runtime_t *runtime = substream->runtime; 467 struct snd_pcm_runtime *runtime = substream->runtime;
468 int error; 468 int error;
469 469
470 if ((error = snd_ad1816a_open(chip, AD1816A_MODE_CAPTURE)) < 0) 470 if ((error = snd_ad1816a_open(chip, AD1816A_MODE_CAPTURE)) < 0)
@@ -477,18 +477,18 @@ static int snd_ad1816a_capture_open(snd_pcm_substream_t *substream)
477 return 0; 477 return 0;
478} 478}
479 479
480static int snd_ad1816a_playback_close(snd_pcm_substream_t *substream) 480static int snd_ad1816a_playback_close(struct snd_pcm_substream *substream)
481{ 481{
482 ad1816a_t *chip = snd_pcm_substream_chip(substream); 482 struct snd_ad1816a *chip = snd_pcm_substream_chip(substream);
483 483
484 chip->playback_substream = NULL; 484 chip->playback_substream = NULL;
485 snd_ad1816a_close(chip, AD1816A_MODE_PLAYBACK); 485 snd_ad1816a_close(chip, AD1816A_MODE_PLAYBACK);
486 return 0; 486 return 0;
487} 487}
488 488
489static int snd_ad1816a_capture_close(snd_pcm_substream_t *substream) 489static int snd_ad1816a_capture_close(struct snd_pcm_substream *substream)
490{ 490{
491 ad1816a_t *chip = snd_pcm_substream_chip(substream); 491 struct snd_ad1816a *chip = snd_pcm_substream_chip(substream);
492 492
493 chip->capture_substream = NULL; 493 chip->capture_substream = NULL;
494 snd_ad1816a_close(chip, AD1816A_MODE_CAPTURE); 494 snd_ad1816a_close(chip, AD1816A_MODE_CAPTURE);
@@ -496,7 +496,7 @@ static int snd_ad1816a_capture_close(snd_pcm_substream_t *substream)
496} 496}
497 497
498 498
499static void snd_ad1816a_init(ad1816a_t *chip) 499static void snd_ad1816a_init(struct snd_ad1816a *chip)
500{ 500{
501 unsigned long flags; 501 unsigned long flags;
502 502
@@ -516,7 +516,7 @@ static void snd_ad1816a_init(ad1816a_t *chip)
516 spin_unlock_irqrestore(&chip->lock, flags); 516 spin_unlock_irqrestore(&chip->lock, flags);
517} 517}
518 518
519static int snd_ad1816a_probe(ad1816a_t *chip) 519static int snd_ad1816a_probe(struct snd_ad1816a *chip)
520{ 520{
521 unsigned long flags; 521 unsigned long flags;
522 522
@@ -540,7 +540,7 @@ static int snd_ad1816a_probe(ad1816a_t *chip)
540 return 0; 540 return 0;
541} 541}
542 542
543static int snd_ad1816a_free(ad1816a_t *chip) 543static int snd_ad1816a_free(struct snd_ad1816a *chip)
544{ 544{
545 release_and_free_resource(chip->res_port); 545 release_and_free_resource(chip->res_port);
546 if (chip->irq >= 0) 546 if (chip->irq >= 0)
@@ -557,13 +557,13 @@ static int snd_ad1816a_free(ad1816a_t *chip)
557 return 0; 557 return 0;
558} 558}
559 559
560static int snd_ad1816a_dev_free(snd_device_t *device) 560static int snd_ad1816a_dev_free(struct snd_device *device)
561{ 561{
562 ad1816a_t *chip = device->device_data; 562 struct snd_ad1816a *chip = device->device_data;
563 return snd_ad1816a_free(chip); 563 return snd_ad1816a_free(chip);
564} 564}
565 565
566static const char *snd_ad1816a_chip_id(ad1816a_t *chip) 566static const char *snd_ad1816a_chip_id(struct snd_ad1816a *chip)
567{ 567{
568 switch (chip->hardware) { 568 switch (chip->hardware) {
569 case AD1816A_HW_AD1816A: return "AD1816A"; 569 case AD1816A_HW_AD1816A: return "AD1816A";
@@ -576,15 +576,15 @@ static const char *snd_ad1816a_chip_id(ad1816a_t *chip)
576 } 576 }
577} 577}
578 578
579int snd_ad1816a_create(snd_card_t *card, 579int snd_ad1816a_create(struct snd_card *card,
580 unsigned long port, int irq, int dma1, int dma2, 580 unsigned long port, int irq, int dma1, int dma2,
581 ad1816a_t **rchip) 581 struct snd_ad1816a **rchip)
582{ 582{
583 static snd_device_ops_t ops = { 583 static struct snd_device_ops ops = {
584 .dev_free = snd_ad1816a_dev_free, 584 .dev_free = snd_ad1816a_dev_free,
585 }; 585 };
586 int error; 586 int error;
587 ad1816a_t *chip; 587 struct snd_ad1816a *chip;
588 588
589 *rchip = NULL; 589 *rchip = NULL;
590 590
@@ -640,7 +640,7 @@ int snd_ad1816a_create(snd_card_t *card,
640 return 0; 640 return 0;
641} 641}
642 642
643static snd_pcm_ops_t snd_ad1816a_playback_ops = { 643static struct snd_pcm_ops snd_ad1816a_playback_ops = {
644 .open = snd_ad1816a_playback_open, 644 .open = snd_ad1816a_playback_open,
645 .close = snd_ad1816a_playback_close, 645 .close = snd_ad1816a_playback_close,
646 .ioctl = snd_pcm_lib_ioctl, 646 .ioctl = snd_pcm_lib_ioctl,
@@ -651,7 +651,7 @@ static snd_pcm_ops_t snd_ad1816a_playback_ops = {
651 .pointer = snd_ad1816a_playback_pointer, 651 .pointer = snd_ad1816a_playback_pointer,
652}; 652};
653 653
654static snd_pcm_ops_t snd_ad1816a_capture_ops = { 654static struct snd_pcm_ops snd_ad1816a_capture_ops = {
655 .open = snd_ad1816a_capture_open, 655 .open = snd_ad1816a_capture_open,
656 .close = snd_ad1816a_capture_close, 656 .close = snd_ad1816a_capture_close,
657 .ioctl = snd_pcm_lib_ioctl, 657 .ioctl = snd_pcm_lib_ioctl,
@@ -662,10 +662,10 @@ static snd_pcm_ops_t snd_ad1816a_capture_ops = {
662 .pointer = snd_ad1816a_capture_pointer, 662 .pointer = snd_ad1816a_capture_pointer,
663}; 663};
664 664
665int snd_ad1816a_pcm(ad1816a_t *chip, int device, snd_pcm_t **rpcm) 665int snd_ad1816a_pcm(struct snd_ad1816a *chip, int device, struct snd_pcm **rpcm)
666{ 666{
667 int error; 667 int error;
668 snd_pcm_t *pcm; 668 struct snd_pcm *pcm;
669 669
670 if ((error = snd_pcm_new(chip->card, "AD1816A", device, 1, 1, &pcm))) 670 if ((error = snd_pcm_new(chip->card, "AD1816A", device, 1, 1, &pcm)))
671 return error; 671 return error;
@@ -690,16 +690,16 @@ int snd_ad1816a_pcm(ad1816a_t *chip, int device, snd_pcm_t **rpcm)
690} 690}
691 691
692#if 0 /* not used now */ 692#if 0 /* not used now */
693static void snd_ad1816a_timer_free(snd_timer_t *timer) 693static void snd_ad1816a_timer_free(struct snd_timer *timer)
694{ 694{
695 ad1816a_t *chip = timer->private_data; 695 struct snd_ad1816a *chip = timer->private_data;
696 chip->timer = NULL; 696 chip->timer = NULL;
697} 697}
698 698
699int snd_ad1816a_timer(ad1816a_t *chip, int device, snd_timer_t **rtimer) 699int snd_ad1816a_timer(struct snd_ad1816a *chip, int device, struct snd_timer **rtimer)
700{ 700{
701 snd_timer_t *timer; 701 struct snd_timer *timer;
702 snd_timer_id_t tid; 702 struct snd_timer_id tid;
703 int error; 703 int error;
704 704
705 tid.dev_class = SNDRV_TIMER_CLASS_CARD; 705 tid.dev_class = SNDRV_TIMER_CLASS_CARD;
@@ -724,7 +724,7 @@ int snd_ad1816a_timer(ad1816a_t *chip, int device, snd_timer_t **rtimer)
724 * 724 *
725 */ 725 */
726 726
727static int snd_ad1816a_info_mux(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) 727static int snd_ad1816a_info_mux(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
728{ 728{
729 static char *texts[8] = { 729 static char *texts[8] = {
730 "Line", "Mix", "CD", "Synth", "Video", 730 "Line", "Mix", "CD", "Synth", "Video",
@@ -740,9 +740,9 @@ static int snd_ad1816a_info_mux(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *
740 return 0; 740 return 0;
741} 741}
742 742
743static int snd_ad1816a_get_mux(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) 743static int snd_ad1816a_get_mux(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
744{ 744{
745 ad1816a_t *chip = snd_kcontrol_chip(kcontrol); 745 struct snd_ad1816a *chip = snd_kcontrol_chip(kcontrol);
746 unsigned long flags; 746 unsigned long flags;
747 unsigned short val; 747 unsigned short val;
748 748
@@ -754,9 +754,9 @@ static int snd_ad1816a_get_mux(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *
754 return 0; 754 return 0;
755} 755}
756 756
757static int snd_ad1816a_put_mux(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) 757static int snd_ad1816a_put_mux(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
758{ 758{
759 ad1816a_t *chip = snd_kcontrol_chip(kcontrol); 759 struct snd_ad1816a *chip = snd_kcontrol_chip(kcontrol);
760 unsigned long flags; 760 unsigned long flags;
761 unsigned short val; 761 unsigned short val;
762 int change; 762 int change;
@@ -778,7 +778,7 @@ static int snd_ad1816a_put_mux(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *
778 .get = snd_ad1816a_get_single, .put = snd_ad1816a_put_single, \ 778 .get = snd_ad1816a_get_single, .put = snd_ad1816a_put_single, \
779 .private_value = reg | (shift << 8) | (mask << 16) | (invert << 24) } 779 .private_value = reg | (shift << 8) | (mask << 16) | (invert << 24) }
780 780
781static int snd_ad1816a_info_single(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) 781static int snd_ad1816a_info_single(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
782{ 782{
783 int mask = (kcontrol->private_value >> 16) & 0xff; 783 int mask = (kcontrol->private_value >> 16) & 0xff;
784 784
@@ -789,9 +789,9 @@ static int snd_ad1816a_info_single(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t
789 return 0; 789 return 0;
790} 790}
791 791
792static int snd_ad1816a_get_single(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) 792static int snd_ad1816a_get_single(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
793{ 793{
794 ad1816a_t *chip = snd_kcontrol_chip(kcontrol); 794 struct snd_ad1816a *chip = snd_kcontrol_chip(kcontrol);
795 unsigned long flags; 795 unsigned long flags;
796 int reg = kcontrol->private_value & 0xff; 796 int reg = kcontrol->private_value & 0xff;
797 int shift = (kcontrol->private_value >> 8) & 0xff; 797 int shift = (kcontrol->private_value >> 8) & 0xff;
@@ -806,9 +806,9 @@ static int snd_ad1816a_get_single(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_
806 return 0; 806 return 0;
807} 807}
808 808
809static int snd_ad1816a_put_single(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) 809static int snd_ad1816a_put_single(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
810{ 810{
811 ad1816a_t *chip = snd_kcontrol_chip(kcontrol); 811 struct snd_ad1816a *chip = snd_kcontrol_chip(kcontrol);
812 unsigned long flags; 812 unsigned long flags;
813 int reg = kcontrol->private_value & 0xff; 813 int reg = kcontrol->private_value & 0xff;
814 int shift = (kcontrol->private_value >> 8) & 0xff; 814 int shift = (kcontrol->private_value >> 8) & 0xff;
@@ -835,7 +835,7 @@ static int snd_ad1816a_put_single(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_
835 .get = snd_ad1816a_get_double, .put = snd_ad1816a_put_double, \ 835 .get = snd_ad1816a_get_double, .put = snd_ad1816a_put_double, \
836 .private_value = reg | (shift_left << 8) | (shift_right << 12) | (mask << 16) | (invert << 24) } 836 .private_value = reg | (shift_left << 8) | (shift_right << 12) | (mask << 16) | (invert << 24) }
837 837
838static int snd_ad1816a_info_double(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) 838static int snd_ad1816a_info_double(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
839{ 839{
840 int mask = (kcontrol->private_value >> 16) & 0xff; 840 int mask = (kcontrol->private_value >> 16) & 0xff;
841 841
@@ -846,9 +846,9 @@ static int snd_ad1816a_info_double(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t
846 return 0; 846 return 0;
847} 847}
848 848
849static int snd_ad1816a_get_double(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) 849static int snd_ad1816a_get_double(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
850{ 850{
851 ad1816a_t *chip = snd_kcontrol_chip(kcontrol); 851 struct snd_ad1816a *chip = snd_kcontrol_chip(kcontrol);
852 unsigned long flags; 852 unsigned long flags;
853 int reg = kcontrol->private_value & 0xff; 853 int reg = kcontrol->private_value & 0xff;
854 int shift_left = (kcontrol->private_value >> 8) & 0x0f; 854 int shift_left = (kcontrol->private_value >> 8) & 0x0f;
@@ -869,9 +869,9 @@ static int snd_ad1816a_get_double(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_
869 return 0; 869 return 0;
870} 870}
871 871
872static int snd_ad1816a_put_double(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) 872static int snd_ad1816a_put_double(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
873{ 873{
874 ad1816a_t *chip = snd_kcontrol_chip(kcontrol); 874 struct snd_ad1816a *chip = snd_kcontrol_chip(kcontrol);
875 unsigned long flags; 875 unsigned long flags;
876 int reg = kcontrol->private_value & 0xff; 876 int reg = kcontrol->private_value & 0xff;
877 int shift_left = (kcontrol->private_value >> 8) & 0x0f; 877 int shift_left = (kcontrol->private_value >> 8) & 0x0f;
@@ -898,7 +898,7 @@ static int snd_ad1816a_put_double(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_
898 return change; 898 return change;
899} 899}
900 900
901static snd_kcontrol_new_t snd_ad1816a_controls[] = { 901static struct snd_kcontrol_new snd_ad1816a_controls[] = {
902AD1816A_DOUBLE("Master Playback Switch", AD1816A_MASTER_ATT, 15, 7, 1, 1), 902AD1816A_DOUBLE("Master Playback Switch", AD1816A_MASTER_ATT, 15, 7, 1, 1),
903AD1816A_DOUBLE("Master Playback Volume", AD1816A_MASTER_ATT, 8, 0, 31, 1), 903AD1816A_DOUBLE("Master Playback Volume", AD1816A_MASTER_ATT, 8, 0, 31, 1),
904AD1816A_DOUBLE("PCM Playback Switch", AD1816A_VOICE_ATT, 15, 7, 1, 1), 904AD1816A_DOUBLE("PCM Playback Switch", AD1816A_VOICE_ATT, 15, 7, 1, 1),
@@ -933,9 +933,9 @@ AD1816A_SINGLE("3D Control - Switch", AD1816A_3D_PHAT_CTRL, 15, 1, 1),
933AD1816A_SINGLE("3D Control - Level", AD1816A_3D_PHAT_CTRL, 0, 15, 0), 933AD1816A_SINGLE("3D Control - Level", AD1816A_3D_PHAT_CTRL, 0, 15, 0),
934}; 934};
935 935
936int snd_ad1816a_mixer(ad1816a_t *chip) 936int snd_ad1816a_mixer(struct snd_ad1816a *chip)
937{ 937{
938 snd_card_t *card; 938 struct snd_card *card;
939 unsigned int idx; 939 unsigned int idx;
940 int err; 940 int err;
941 941