aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci/emu10k1/emupcm.c
diff options
context:
space:
mode:
Diffstat (limited to 'sound/pci/emu10k1/emupcm.c')
-rw-r--r--sound/pci/emu10k1/emupcm.c354
1 files changed, 179 insertions, 175 deletions
diff --git a/sound/pci/emu10k1/emupcm.c b/sound/pci/emu10k1/emupcm.c
index 166f7c4d28c9..8e6caf581c0c 100644
--- a/sound/pci/emu10k1/emupcm.c
+++ b/sound/pci/emu10k1/emupcm.c
@@ -35,9 +35,10 @@
35#include <sound/core.h> 35#include <sound/core.h>
36#include <sound/emu10k1.h> 36#include <sound/emu10k1.h>
37 37
38static void snd_emu10k1_pcm_interrupt(emu10k1_t *emu, emu10k1_voice_t *voice) 38static void snd_emu10k1_pcm_interrupt(struct snd_emu10k1 *emu,
39 struct snd_emu10k1_voice *voice)
39{ 40{
40 emu10k1_pcm_t *epcm; 41 struct snd_emu10k1_pcm *epcm;
41 42
42 if ((epcm = voice->epcm) == NULL) 43 if ((epcm = voice->epcm) == NULL)
43 return; 44 return;
@@ -52,7 +53,8 @@ static void snd_emu10k1_pcm_interrupt(emu10k1_t *emu, emu10k1_voice_t *voice)
52 snd_pcm_period_elapsed(epcm->substream); 53 snd_pcm_period_elapsed(epcm->substream);
53} 54}
54 55
55static void snd_emu10k1_pcm_ac97adc_interrupt(emu10k1_t *emu, unsigned int status) 56static void snd_emu10k1_pcm_ac97adc_interrupt(struct snd_emu10k1 *emu,
57 unsigned int status)
56{ 58{
57#if 0 59#if 0
58 if (status & IPR_ADCBUFHALFFULL) { 60 if (status & IPR_ADCBUFHALFFULL) {
@@ -63,7 +65,8 @@ static void snd_emu10k1_pcm_ac97adc_interrupt(emu10k1_t *emu, unsigned int statu
63 snd_pcm_period_elapsed(emu->pcm_capture_substream); 65 snd_pcm_period_elapsed(emu->pcm_capture_substream);
64} 66}
65 67
66static void snd_emu10k1_pcm_ac97mic_interrupt(emu10k1_t *emu, unsigned int status) 68static void snd_emu10k1_pcm_ac97mic_interrupt(struct snd_emu10k1 *emu,
69 unsigned int status)
67{ 70{
68#if 0 71#if 0
69 if (status & IPR_MICBUFHALFFULL) { 72 if (status & IPR_MICBUFHALFFULL) {
@@ -74,7 +77,8 @@ static void snd_emu10k1_pcm_ac97mic_interrupt(emu10k1_t *emu, unsigned int statu
74 snd_pcm_period_elapsed(emu->pcm_capture_mic_substream); 77 snd_pcm_period_elapsed(emu->pcm_capture_mic_substream);
75} 78}
76 79
77static void snd_emu10k1_pcm_efx_interrupt(emu10k1_t *emu, unsigned int status) 80static void snd_emu10k1_pcm_efx_interrupt(struct snd_emu10k1 *emu,
81 unsigned int status)
78{ 82{
79#if 0 83#if 0
80 if (status & IPR_EFXBUFHALFFULL) { 84 if (status & IPR_EFXBUFHALFFULL) {
@@ -85,11 +89,11 @@ static void snd_emu10k1_pcm_efx_interrupt(emu10k1_t *emu, unsigned int status)
85 snd_pcm_period_elapsed(emu->pcm_capture_efx_substream); 89 snd_pcm_period_elapsed(emu->pcm_capture_efx_substream);
86} 90}
87 91
88static snd_pcm_uframes_t snd_emu10k1_efx_playback_pointer(snd_pcm_substream_t * substream) 92static snd_pcm_uframes_t snd_emu10k1_efx_playback_pointer(struct snd_pcm_substream *substream)
89{ 93{
90 emu10k1_t *emu = snd_pcm_substream_chip(substream); 94 struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
91 snd_pcm_runtime_t *runtime = substream->runtime; 95 struct snd_pcm_runtime *runtime = substream->runtime;
92 emu10k1_pcm_t *epcm = runtime->private_data; 96 struct snd_emu10k1_pcm *epcm = runtime->private_data;
93 unsigned int ptr; 97 unsigned int ptr;
94 98
95 if (!epcm->running) 99 if (!epcm->running)
@@ -102,7 +106,7 @@ static snd_pcm_uframes_t snd_emu10k1_efx_playback_pointer(snd_pcm_substream_t *
102 return ptr; 106 return ptr;
103} 107}
104 108
105static int snd_emu10k1_pcm_channel_alloc(emu10k1_pcm_t * epcm, int voices) 109static int snd_emu10k1_pcm_channel_alloc(struct snd_emu10k1_pcm * epcm, int voices)
106{ 110{
107 int err, i; 111 int err, i;
108 112
@@ -167,7 +171,7 @@ static unsigned int capture_period_sizes[31] = {
167 384*128,448*128,512*128 171 384*128,448*128,512*128
168}; 172};
169 173
170static snd_pcm_hw_constraint_list_t hw_constraints_capture_period_sizes = { 174static struct snd_pcm_hw_constraint_list hw_constraints_capture_period_sizes = {
171 .count = 31, 175 .count = 31,
172 .list = capture_period_sizes, 176 .list = capture_period_sizes,
173 .mask = 0 177 .mask = 0
@@ -177,7 +181,7 @@ static unsigned int capture_rates[8] = {
177 8000, 11025, 16000, 22050, 24000, 32000, 44100, 48000 181 8000, 11025, 16000, 22050, 24000, 32000, 44100, 48000
178}; 182};
179 183
180static snd_pcm_hw_constraint_list_t hw_constraints_capture_rates = { 184static struct snd_pcm_hw_constraint_list hw_constraints_capture_rates = {
181 .count = 8, 185 .count = 8,
182 .list = capture_rates, 186 .list = capture_rates,
183 .mask = 0 187 .mask = 0
@@ -271,15 +275,15 @@ static inline int emu10k1_ccis(int stereo, int w_16)
271 } 275 }
272} 276}
273 277
274static void snd_emu10k1_pcm_init_voice(emu10k1_t *emu, 278static void snd_emu10k1_pcm_init_voice(struct snd_emu10k1 *emu,
275 int master, int extra, 279 int master, int extra,
276 emu10k1_voice_t *evoice, 280 struct snd_emu10k1_voice *evoice,
277 unsigned int start_addr, 281 unsigned int start_addr,
278 unsigned int end_addr, 282 unsigned int end_addr,
279 emu10k1_pcm_mixer_t *mix) 283 struct snd_emu10k1_pcm_mixer *mix)
280{ 284{
281 snd_pcm_substream_t *substream = evoice->epcm->substream; 285 struct snd_pcm_substream *substream = evoice->epcm->substream;
282 snd_pcm_runtime_t *runtime = substream->runtime; 286 struct snd_pcm_runtime *runtime = substream->runtime;
283 unsigned int silent_page, tmp; 287 unsigned int silent_page, tmp;
284 int voice, stereo, w_16; 288 int voice, stereo, w_16;
285 unsigned char attn, send_amount[8]; 289 unsigned char attn, send_amount[8];
@@ -392,12 +396,12 @@ static void snd_emu10k1_pcm_init_voice(emu10k1_t *emu,
392 spin_unlock_irqrestore(&emu->reg_lock, flags); 396 spin_unlock_irqrestore(&emu->reg_lock, flags);
393} 397}
394 398
395static int snd_emu10k1_playback_hw_params(snd_pcm_substream_t * substream, 399static int snd_emu10k1_playback_hw_params(struct snd_pcm_substream *substream,
396 snd_pcm_hw_params_t * hw_params) 400 struct snd_pcm_hw_params *hw_params)
397{ 401{
398 emu10k1_t *emu = snd_pcm_substream_chip(substream); 402 struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
399 snd_pcm_runtime_t *runtime = substream->runtime; 403 struct snd_pcm_runtime *runtime = substream->runtime;
400 emu10k1_pcm_t *epcm = runtime->private_data; 404 struct snd_emu10k1_pcm *epcm = runtime->private_data;
401 int err; 405 int err;
402 406
403 if ((err = snd_emu10k1_pcm_channel_alloc(epcm, params_channels(hw_params))) < 0) 407 if ((err = snd_emu10k1_pcm_channel_alloc(epcm, params_channels(hw_params))) < 0)
@@ -412,7 +416,7 @@ static int snd_emu10k1_playback_hw_params(snd_pcm_substream_t * substream,
412 epcm->start_addr = 0; 416 epcm->start_addr = 0;
413 if (! epcm->memblk) 417 if (! epcm->memblk)
414 return -ENOMEM; 418 return -ENOMEM;
415 mapped = ((emu10k1_memblk_t *)epcm->memblk)->mapped_page; 419 mapped = ((struct snd_emu10k1_memblk *)epcm->memblk)->mapped_page;
416 if (mapped < 0) 420 if (mapped < 0)
417 return -ENOMEM; 421 return -ENOMEM;
418 epcm->start_addr = mapped << PAGE_SHIFT; 422 epcm->start_addr = mapped << PAGE_SHIFT;
@@ -420,11 +424,11 @@ static int snd_emu10k1_playback_hw_params(snd_pcm_substream_t * substream,
420 return 0; 424 return 0;
421} 425}
422 426
423static int snd_emu10k1_playback_hw_free(snd_pcm_substream_t * substream) 427static int snd_emu10k1_playback_hw_free(struct snd_pcm_substream *substream)
424{ 428{
425 emu10k1_t *emu = snd_pcm_substream_chip(substream); 429 struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
426 snd_pcm_runtime_t *runtime = substream->runtime; 430 struct snd_pcm_runtime *runtime = substream->runtime;
427 emu10k1_pcm_t *epcm; 431 struct snd_emu10k1_pcm *epcm;
428 432
429 if (runtime->private_data == NULL) 433 if (runtime->private_data == NULL)
430 return 0; 434 return 0;
@@ -450,11 +454,11 @@ static int snd_emu10k1_playback_hw_free(snd_pcm_substream_t * substream)
450 return 0; 454 return 0;
451} 455}
452 456
453static int snd_emu10k1_efx_playback_hw_free(snd_pcm_substream_t * substream) 457static int snd_emu10k1_efx_playback_hw_free(struct snd_pcm_substream *substream)
454{ 458{
455 emu10k1_t *emu = snd_pcm_substream_chip(substream); 459 struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
456 snd_pcm_runtime_t *runtime = substream->runtime; 460 struct snd_pcm_runtime *runtime = substream->runtime;
457 emu10k1_pcm_t *epcm; 461 struct snd_emu10k1_pcm *epcm;
458 int i; 462 int i;
459 463
460 if (runtime->private_data == NULL) 464 if (runtime->private_data == NULL)
@@ -479,11 +483,11 @@ static int snd_emu10k1_efx_playback_hw_free(snd_pcm_substream_t * substream)
479 return 0; 483 return 0;
480} 484}
481 485
482static int snd_emu10k1_playback_prepare(snd_pcm_substream_t * substream) 486static int snd_emu10k1_playback_prepare(struct snd_pcm_substream *substream)
483{ 487{
484 emu10k1_t *emu = snd_pcm_substream_chip(substream); 488 struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
485 snd_pcm_runtime_t *runtime = substream->runtime; 489 struct snd_pcm_runtime *runtime = substream->runtime;
486 emu10k1_pcm_t *epcm = runtime->private_data; 490 struct snd_emu10k1_pcm *epcm = runtime->private_data;
487 unsigned int start_addr, end_addr; 491 unsigned int start_addr, end_addr;
488 492
489 start_addr = epcm->start_addr; 493 start_addr = epcm->start_addr;
@@ -507,11 +511,11 @@ static int snd_emu10k1_playback_prepare(snd_pcm_substream_t * substream)
507 return 0; 511 return 0;
508} 512}
509 513
510static int snd_emu10k1_efx_playback_prepare(snd_pcm_substream_t * substream) 514static int snd_emu10k1_efx_playback_prepare(struct snd_pcm_substream *substream)
511{ 515{
512 emu10k1_t *emu = snd_pcm_substream_chip(substream); 516 struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
513 snd_pcm_runtime_t *runtime = substream->runtime; 517 struct snd_pcm_runtime *runtime = substream->runtime;
514 emu10k1_pcm_t *epcm = runtime->private_data; 518 struct snd_emu10k1_pcm *epcm = runtime->private_data;
515 unsigned int start_addr, end_addr; 519 unsigned int start_addr, end_addr;
516 unsigned int channel_size; 520 unsigned int channel_size;
517 int i; 521 int i;
@@ -543,7 +547,7 @@ static int snd_emu10k1_efx_playback_prepare(snd_pcm_substream_t * substream)
543 return 0; 547 return 0;
544} 548}
545 549
546static snd_pcm_hardware_t snd_emu10k1_efx_playback = 550static struct snd_pcm_hardware snd_emu10k1_efx_playback =
547{ 551{
548 .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_NONINTERLEAVED | 552 .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_NONINTERLEAVED |
549 SNDRV_PCM_INFO_BLOCK_TRANSFER | 553 SNDRV_PCM_INFO_BLOCK_TRANSFER |
@@ -562,22 +566,22 @@ static snd_pcm_hardware_t snd_emu10k1_efx_playback =
562 .fifo_size = 0, 566 .fifo_size = 0,
563}; 567};
564 568
565static int snd_emu10k1_capture_hw_params(snd_pcm_substream_t * substream, 569static int snd_emu10k1_capture_hw_params(struct snd_pcm_substream *substream,
566 snd_pcm_hw_params_t * hw_params) 570 struct snd_pcm_hw_params *hw_params)
567{ 571{
568 return snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(hw_params)); 572 return snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(hw_params));
569} 573}
570 574
571static int snd_emu10k1_capture_hw_free(snd_pcm_substream_t * substream) 575static int snd_emu10k1_capture_hw_free(struct snd_pcm_substream *substream)
572{ 576{
573 return snd_pcm_lib_free_pages(substream); 577 return snd_pcm_lib_free_pages(substream);
574} 578}
575 579
576static int snd_emu10k1_capture_prepare(snd_pcm_substream_t * substream) 580static int snd_emu10k1_capture_prepare(struct snd_pcm_substream *substream)
577{ 581{
578 emu10k1_t *emu = snd_pcm_substream_chip(substream); 582 struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
579 snd_pcm_runtime_t *runtime = substream->runtime; 583 struct snd_pcm_runtime *runtime = substream->runtime;
580 emu10k1_pcm_t *epcm = runtime->private_data; 584 struct snd_emu10k1_pcm *epcm = runtime->private_data;
581 int idx; 585 int idx;
582 586
583 /* zeroing the buffer size will stop capture */ 587 /* zeroing the buffer size will stop capture */
@@ -620,9 +624,9 @@ static int snd_emu10k1_capture_prepare(snd_pcm_substream_t * substream)
620 return 0; 624 return 0;
621} 625}
622 626
623static void snd_emu10k1_playback_invalidate_cache(emu10k1_t *emu, int extra, emu10k1_voice_t *evoice) 627static void snd_emu10k1_playback_invalidate_cache(struct snd_emu10k1 *emu, int extra, struct snd_emu10k1_voice *evoice)
624{ 628{
625 snd_pcm_runtime_t *runtime; 629 struct snd_pcm_runtime *runtime;
626 unsigned int voice, stereo, i, ccis, cra = 64, cs, sample; 630 unsigned int voice, stereo, i, ccis, cra = 64, cs, sample;
627 631
628 if (evoice == NULL) 632 if (evoice == NULL)
@@ -655,12 +659,12 @@ static void snd_emu10k1_playback_invalidate_cache(emu10k1_t *emu, int extra, emu
655 } 659 }
656} 660}
657 661
658static void snd_emu10k1_playback_prepare_voice(emu10k1_t *emu, emu10k1_voice_t *evoice, 662static void snd_emu10k1_playback_prepare_voice(struct snd_emu10k1 *emu, struct snd_emu10k1_voice *evoice,
659 int master, int extra, 663 int master, int extra,
660 emu10k1_pcm_mixer_t *mix) 664 struct snd_emu10k1_pcm_mixer *mix)
661{ 665{
662 snd_pcm_substream_t *substream; 666 struct snd_pcm_substream *substream;
663 snd_pcm_runtime_t *runtime; 667 struct snd_pcm_runtime *runtime;
664 unsigned int attn, vattn; 668 unsigned int attn, vattn;
665 unsigned int voice, tmp; 669 unsigned int voice, tmp;
666 670
@@ -680,10 +684,10 @@ static void snd_emu10k1_playback_prepare_voice(emu10k1_t *emu, emu10k1_voice_t *
680 snd_emu10k1_voice_clear_loop_stop(emu, voice); 684 snd_emu10k1_voice_clear_loop_stop(emu, voice);
681} 685}
682 686
683static void snd_emu10k1_playback_trigger_voice(emu10k1_t *emu, emu10k1_voice_t *evoice, int master, int extra) 687static void snd_emu10k1_playback_trigger_voice(struct snd_emu10k1 *emu, struct snd_emu10k1_voice *evoice, int master, int extra)
684{ 688{
685 snd_pcm_substream_t *substream; 689 struct snd_pcm_substream *substream;
686 snd_pcm_runtime_t *runtime; 690 struct snd_pcm_runtime *runtime;
687 unsigned int voice, pitch, pitch_target; 691 unsigned int voice, pitch, pitch_target;
688 692
689 if (evoice == NULL) /* skip second voice for mono */ 693 if (evoice == NULL) /* skip second voice for mono */
@@ -702,7 +706,7 @@ static void snd_emu10k1_playback_trigger_voice(emu10k1_t *emu, emu10k1_voice_t *
702 snd_emu10k1_voice_intr_enable(emu, voice); 706 snd_emu10k1_voice_intr_enable(emu, voice);
703} 707}
704 708
705static void snd_emu10k1_playback_stop_voice(emu10k1_t *emu, emu10k1_voice_t *evoice) 709static void snd_emu10k1_playback_stop_voice(struct snd_emu10k1 *emu, struct snd_emu10k1_voice *evoice)
706{ 710{
707 unsigned int voice; 711 unsigned int voice;
708 712
@@ -718,13 +722,13 @@ static void snd_emu10k1_playback_stop_voice(emu10k1_t *emu, emu10k1_voice_t *evo
718 snd_emu10k1_ptr_write(emu, IP, voice, 0); 722 snd_emu10k1_ptr_write(emu, IP, voice, 0);
719} 723}
720 724
721static int snd_emu10k1_playback_trigger(snd_pcm_substream_t * substream, 725static int snd_emu10k1_playback_trigger(struct snd_pcm_substream *substream,
722 int cmd) 726 int cmd)
723{ 727{
724 emu10k1_t *emu = snd_pcm_substream_chip(substream); 728 struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
725 snd_pcm_runtime_t *runtime = substream->runtime; 729 struct snd_pcm_runtime *runtime = substream->runtime;
726 emu10k1_pcm_t *epcm = runtime->private_data; 730 struct snd_emu10k1_pcm *epcm = runtime->private_data;
727 emu10k1_pcm_mixer_t *mix; 731 struct snd_emu10k1_pcm_mixer *mix;
728 int result = 0; 732 int result = 0;
729 733
730 // printk("trigger - emu10k1 = 0x%x, cmd = %i, pointer = %i\n", (int)emu, cmd, substream->ops->pointer(substream)); 734 // printk("trigger - emu10k1 = 0x%x, cmd = %i, pointer = %i\n", (int)emu, cmd, substream->ops->pointer(substream));
@@ -759,12 +763,12 @@ static int snd_emu10k1_playback_trigger(snd_pcm_substream_t * substream,
759 return result; 763 return result;
760} 764}
761 765
762static int snd_emu10k1_capture_trigger(snd_pcm_substream_t * substream, 766static int snd_emu10k1_capture_trigger(struct snd_pcm_substream *substream,
763 int cmd) 767 int cmd)
764{ 768{
765 emu10k1_t *emu = snd_pcm_substream_chip(substream); 769 struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
766 snd_pcm_runtime_t *runtime = substream->runtime; 770 struct snd_pcm_runtime *runtime = substream->runtime;
767 emu10k1_pcm_t *epcm = runtime->private_data; 771 struct snd_emu10k1_pcm *epcm = runtime->private_data;
768 int result = 0; 772 int result = 0;
769 773
770 spin_lock(&emu->reg_lock); 774 spin_lock(&emu->reg_lock);
@@ -819,11 +823,11 @@ static int snd_emu10k1_capture_trigger(snd_pcm_substream_t * substream,
819 return result; 823 return result;
820} 824}
821 825
822static snd_pcm_uframes_t snd_emu10k1_playback_pointer(snd_pcm_substream_t * substream) 826static snd_pcm_uframes_t snd_emu10k1_playback_pointer(struct snd_pcm_substream *substream)
823{ 827{
824 emu10k1_t *emu = snd_pcm_substream_chip(substream); 828 struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
825 snd_pcm_runtime_t *runtime = substream->runtime; 829 struct snd_pcm_runtime *runtime = substream->runtime;
826 emu10k1_pcm_t *epcm = runtime->private_data; 830 struct snd_emu10k1_pcm *epcm = runtime->private_data;
827 unsigned int ptr; 831 unsigned int ptr;
828 832
829 if (!epcm->running) 833 if (!epcm->running)
@@ -847,12 +851,12 @@ static snd_pcm_uframes_t snd_emu10k1_playback_pointer(snd_pcm_substream_t * subs
847} 851}
848 852
849 853
850static int snd_emu10k1_efx_playback_trigger(snd_pcm_substream_t * substream, 854static int snd_emu10k1_efx_playback_trigger(struct snd_pcm_substream *substream,
851 int cmd) 855 int cmd)
852{ 856{
853 emu10k1_t *emu = snd_pcm_substream_chip(substream); 857 struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
854 snd_pcm_runtime_t *runtime = substream->runtime; 858 struct snd_pcm_runtime *runtime = substream->runtime;
855 emu10k1_pcm_t *epcm = runtime->private_data; 859 struct snd_emu10k1_pcm *epcm = runtime->private_data;
856 int i; 860 int i;
857 int result = 0; 861 int result = 0;
858 862
@@ -896,11 +900,11 @@ static int snd_emu10k1_efx_playback_trigger(snd_pcm_substream_t * substream,
896} 900}
897 901
898 902
899static snd_pcm_uframes_t snd_emu10k1_capture_pointer(snd_pcm_substream_t * substream) 903static snd_pcm_uframes_t snd_emu10k1_capture_pointer(struct snd_pcm_substream *substream)
900{ 904{
901 emu10k1_t *emu = snd_pcm_substream_chip(substream); 905 struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
902 snd_pcm_runtime_t *runtime = substream->runtime; 906 struct snd_pcm_runtime *runtime = substream->runtime;
903 emu10k1_pcm_t *epcm = runtime->private_data; 907 struct snd_emu10k1_pcm *epcm = runtime->private_data;
904 unsigned int ptr; 908 unsigned int ptr;
905 909
906 if (!epcm->running) 910 if (!epcm->running)
@@ -917,7 +921,7 @@ static snd_pcm_uframes_t snd_emu10k1_capture_pointer(snd_pcm_substream_t * subst
917 * Playback support device description 921 * Playback support device description
918 */ 922 */
919 923
920static snd_pcm_hardware_t snd_emu10k1_playback = 924static struct snd_pcm_hardware snd_emu10k1_playback =
921{ 925{
922 .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | 926 .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
923 SNDRV_PCM_INFO_BLOCK_TRANSFER | 927 SNDRV_PCM_INFO_BLOCK_TRANSFER |
@@ -940,7 +944,7 @@ static snd_pcm_hardware_t snd_emu10k1_playback =
940 * Capture support device description 944 * Capture support device description
941 */ 945 */
942 946
943static snd_pcm_hardware_t snd_emu10k1_capture = 947static struct snd_pcm_hardware snd_emu10k1_capture =
944{ 948{
945 .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | 949 .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
946 SNDRV_PCM_INFO_BLOCK_TRANSFER | 950 SNDRV_PCM_INFO_BLOCK_TRANSFER |
@@ -963,9 +967,9 @@ static snd_pcm_hardware_t snd_emu10k1_capture =
963 * 967 *
964 */ 968 */
965 969
966static void snd_emu10k1_pcm_mixer_notify1(emu10k1_t *emu, snd_kcontrol_t *kctl, int idx, int activate) 970static void snd_emu10k1_pcm_mixer_notify1(struct snd_emu10k1 *emu, struct snd_kcontrol *kctl, int idx, int activate)
967{ 971{
968 snd_ctl_elem_id_t id; 972 struct snd_ctl_elem_id id;
969 973
970 if (! kctl) 974 if (! kctl)
971 return; 975 return;
@@ -978,29 +982,29 @@ static void snd_emu10k1_pcm_mixer_notify1(emu10k1_t *emu, snd_kcontrol_t *kctl,
978 snd_ctl_build_ioff(&id, kctl, idx)); 982 snd_ctl_build_ioff(&id, kctl, idx));
979} 983}
980 984
981static void snd_emu10k1_pcm_mixer_notify(emu10k1_t *emu, int idx, int activate) 985static void snd_emu10k1_pcm_mixer_notify(struct snd_emu10k1 *emu, int idx, int activate)
982{ 986{
983 snd_emu10k1_pcm_mixer_notify1(emu, emu->ctl_send_routing, idx, activate); 987 snd_emu10k1_pcm_mixer_notify1(emu, emu->ctl_send_routing, idx, activate);
984 snd_emu10k1_pcm_mixer_notify1(emu, emu->ctl_send_volume, idx, activate); 988 snd_emu10k1_pcm_mixer_notify1(emu, emu->ctl_send_volume, idx, activate);
985 snd_emu10k1_pcm_mixer_notify1(emu, emu->ctl_attn, idx, activate); 989 snd_emu10k1_pcm_mixer_notify1(emu, emu->ctl_attn, idx, activate);
986} 990}
987 991
988static void snd_emu10k1_pcm_efx_mixer_notify(emu10k1_t *emu, int idx, int activate) 992static void snd_emu10k1_pcm_efx_mixer_notify(struct snd_emu10k1 *emu, int idx, int activate)
989{ 993{
990 snd_emu10k1_pcm_mixer_notify1(emu, emu->ctl_efx_send_routing, idx, activate); 994 snd_emu10k1_pcm_mixer_notify1(emu, emu->ctl_efx_send_routing, idx, activate);
991 snd_emu10k1_pcm_mixer_notify1(emu, emu->ctl_efx_send_volume, idx, activate); 995 snd_emu10k1_pcm_mixer_notify1(emu, emu->ctl_efx_send_volume, idx, activate);
992 snd_emu10k1_pcm_mixer_notify1(emu, emu->ctl_efx_attn, idx, activate); 996 snd_emu10k1_pcm_mixer_notify1(emu, emu->ctl_efx_attn, idx, activate);
993} 997}
994 998
995static void snd_emu10k1_pcm_free_substream(snd_pcm_runtime_t *runtime) 999static void snd_emu10k1_pcm_free_substream(struct snd_pcm_runtime *runtime)
996{ 1000{
997 kfree(runtime->private_data); 1001 kfree(runtime->private_data);
998} 1002}
999 1003
1000static int snd_emu10k1_efx_playback_close(snd_pcm_substream_t * substream) 1004static int snd_emu10k1_efx_playback_close(struct snd_pcm_substream *substream)
1001{ 1005{
1002 emu10k1_t *emu = snd_pcm_substream_chip(substream); 1006 struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
1003 emu10k1_pcm_mixer_t *mix; 1007 struct snd_emu10k1_pcm_mixer *mix;
1004 int i; 1008 int i;
1005 1009
1006 for (i=0; i < NUM_EFX_PLAYBACK; i++) { 1010 for (i=0; i < NUM_EFX_PLAYBACK; i++) {
@@ -1011,12 +1015,12 @@ static int snd_emu10k1_efx_playback_close(snd_pcm_substream_t * substream)
1011 return 0; 1015 return 0;
1012} 1016}
1013 1017
1014static int snd_emu10k1_efx_playback_open(snd_pcm_substream_t * substream) 1018static int snd_emu10k1_efx_playback_open(struct snd_pcm_substream *substream)
1015{ 1019{
1016 emu10k1_t *emu = snd_pcm_substream_chip(substream); 1020 struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
1017 emu10k1_pcm_t *epcm; 1021 struct snd_emu10k1_pcm *epcm;
1018 emu10k1_pcm_mixer_t *mix; 1022 struct snd_emu10k1_pcm_mixer *mix;
1019 snd_pcm_runtime_t *runtime = substream->runtime; 1023 struct snd_pcm_runtime *runtime = substream->runtime;
1020 int i; 1024 int i;
1021 1025
1022 epcm = kzalloc(sizeof(*epcm), GFP_KERNEL); 1026 epcm = kzalloc(sizeof(*epcm), GFP_KERNEL);
@@ -1044,12 +1048,12 @@ static int snd_emu10k1_efx_playback_open(snd_pcm_substream_t * substream)
1044 return 0; 1048 return 0;
1045} 1049}
1046 1050
1047static int snd_emu10k1_playback_open(snd_pcm_substream_t * substream) 1051static int snd_emu10k1_playback_open(struct snd_pcm_substream *substream)
1048{ 1052{
1049 emu10k1_t *emu = snd_pcm_substream_chip(substream); 1053 struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
1050 emu10k1_pcm_t *epcm; 1054 struct snd_emu10k1_pcm *epcm;
1051 emu10k1_pcm_mixer_t *mix; 1055 struct snd_emu10k1_pcm_mixer *mix;
1052 snd_pcm_runtime_t *runtime = substream->runtime; 1056 struct snd_pcm_runtime *runtime = substream->runtime;
1053 int i, err; 1057 int i, err;
1054 1058
1055 epcm = kzalloc(sizeof(*epcm), GFP_KERNEL); 1059 epcm = kzalloc(sizeof(*epcm), GFP_KERNEL);
@@ -1081,21 +1085,21 @@ static int snd_emu10k1_playback_open(snd_pcm_substream_t * substream)
1081 return 0; 1085 return 0;
1082} 1086}
1083 1087
1084static int snd_emu10k1_playback_close(snd_pcm_substream_t * substream) 1088static int snd_emu10k1_playback_close(struct snd_pcm_substream *substream)
1085{ 1089{
1086 emu10k1_t *emu = snd_pcm_substream_chip(substream); 1090 struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
1087 emu10k1_pcm_mixer_t *mix = &emu->pcm_mixer[substream->number]; 1091 struct snd_emu10k1_pcm_mixer *mix = &emu->pcm_mixer[substream->number];
1088 1092
1089 mix->epcm = NULL; 1093 mix->epcm = NULL;
1090 snd_emu10k1_pcm_mixer_notify(emu, substream->number, 0); 1094 snd_emu10k1_pcm_mixer_notify(emu, substream->number, 0);
1091 return 0; 1095 return 0;
1092} 1096}
1093 1097
1094static int snd_emu10k1_capture_open(snd_pcm_substream_t * substream) 1098static int snd_emu10k1_capture_open(struct snd_pcm_substream *substream)
1095{ 1099{
1096 emu10k1_t *emu = snd_pcm_substream_chip(substream); 1100 struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
1097 snd_pcm_runtime_t *runtime = substream->runtime; 1101 struct snd_pcm_runtime *runtime = substream->runtime;
1098 emu10k1_pcm_t *epcm; 1102 struct snd_emu10k1_pcm *epcm;
1099 1103
1100 epcm = kzalloc(sizeof(*epcm), GFP_KERNEL); 1104 epcm = kzalloc(sizeof(*epcm), GFP_KERNEL);
1101 if (epcm == NULL) 1105 if (epcm == NULL)
@@ -1118,20 +1122,20 @@ static int snd_emu10k1_capture_open(snd_pcm_substream_t * substream)
1118 return 0; 1122 return 0;
1119} 1123}
1120 1124
1121static int snd_emu10k1_capture_close(snd_pcm_substream_t * substream) 1125static int snd_emu10k1_capture_close(struct snd_pcm_substream *substream)
1122{ 1126{
1123 emu10k1_t *emu = snd_pcm_substream_chip(substream); 1127 struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
1124 1128
1125 emu->capture_interrupt = NULL; 1129 emu->capture_interrupt = NULL;
1126 emu->pcm_capture_substream = NULL; 1130 emu->pcm_capture_substream = NULL;
1127 return 0; 1131 return 0;
1128} 1132}
1129 1133
1130static int snd_emu10k1_capture_mic_open(snd_pcm_substream_t * substream) 1134static int snd_emu10k1_capture_mic_open(struct snd_pcm_substream *substream)
1131{ 1135{
1132 emu10k1_t *emu = snd_pcm_substream_chip(substream); 1136 struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
1133 emu10k1_pcm_t *epcm; 1137 struct snd_emu10k1_pcm *epcm;
1134 snd_pcm_runtime_t *runtime = substream->runtime; 1138 struct snd_pcm_runtime *runtime = substream->runtime;
1135 1139
1136 epcm = kzalloc(sizeof(*epcm), GFP_KERNEL); 1140 epcm = kzalloc(sizeof(*epcm), GFP_KERNEL);
1137 if (epcm == NULL) 1141 if (epcm == NULL)
@@ -1156,20 +1160,20 @@ static int snd_emu10k1_capture_mic_open(snd_pcm_substream_t * substream)
1156 return 0; 1160 return 0;
1157} 1161}
1158 1162
1159static int snd_emu10k1_capture_mic_close(snd_pcm_substream_t * substream) 1163static int snd_emu10k1_capture_mic_close(struct snd_pcm_substream *substream)
1160{ 1164{
1161 emu10k1_t *emu = snd_pcm_substream_chip(substream); 1165 struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
1162 1166
1163 emu->capture_interrupt = NULL; 1167 emu->capture_interrupt = NULL;
1164 emu->pcm_capture_mic_substream = NULL; 1168 emu->pcm_capture_mic_substream = NULL;
1165 return 0; 1169 return 0;
1166} 1170}
1167 1171
1168static int snd_emu10k1_capture_efx_open(snd_pcm_substream_t * substream) 1172static int snd_emu10k1_capture_efx_open(struct snd_pcm_substream *substream)
1169{ 1173{
1170 emu10k1_t *emu = snd_pcm_substream_chip(substream); 1174 struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
1171 emu10k1_pcm_t *epcm; 1175 struct snd_emu10k1_pcm *epcm;
1172 snd_pcm_runtime_t *runtime = substream->runtime; 1176 struct snd_pcm_runtime *runtime = substream->runtime;
1173 int nefx = emu->audigy ? 64 : 32; 1177 int nefx = emu->audigy ? 64 : 32;
1174 int idx; 1178 int idx;
1175 1179
@@ -1206,16 +1210,16 @@ static int snd_emu10k1_capture_efx_open(snd_pcm_substream_t * substream)
1206 return 0; 1210 return 0;
1207} 1211}
1208 1212
1209static int snd_emu10k1_capture_efx_close(snd_pcm_substream_t * substream) 1213static int snd_emu10k1_capture_efx_close(struct snd_pcm_substream *substream)
1210{ 1214{
1211 emu10k1_t *emu = snd_pcm_substream_chip(substream); 1215 struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
1212 1216
1213 emu->capture_interrupt = NULL; 1217 emu->capture_interrupt = NULL;
1214 emu->pcm_capture_efx_substream = NULL; 1218 emu->pcm_capture_efx_substream = NULL;
1215 return 0; 1219 return 0;
1216} 1220}
1217 1221
1218static snd_pcm_ops_t snd_emu10k1_playback_ops = { 1222static struct snd_pcm_ops snd_emu10k1_playback_ops = {
1219 .open = snd_emu10k1_playback_open, 1223 .open = snd_emu10k1_playback_open,
1220 .close = snd_emu10k1_playback_close, 1224 .close = snd_emu10k1_playback_close,
1221 .ioctl = snd_pcm_lib_ioctl, 1225 .ioctl = snd_pcm_lib_ioctl,
@@ -1227,7 +1231,7 @@ static snd_pcm_ops_t snd_emu10k1_playback_ops = {
1227 .page = snd_pcm_sgbuf_ops_page, 1231 .page = snd_pcm_sgbuf_ops_page,
1228}; 1232};
1229 1233
1230static snd_pcm_ops_t snd_emu10k1_capture_ops = { 1234static struct snd_pcm_ops snd_emu10k1_capture_ops = {
1231 .open = snd_emu10k1_capture_open, 1235 .open = snd_emu10k1_capture_open,
1232 .close = snd_emu10k1_capture_close, 1236 .close = snd_emu10k1_capture_close,
1233 .ioctl = snd_pcm_lib_ioctl, 1237 .ioctl = snd_pcm_lib_ioctl,
@@ -1239,7 +1243,7 @@ static snd_pcm_ops_t snd_emu10k1_capture_ops = {
1239}; 1243};
1240 1244
1241/* EFX playback */ 1245/* EFX playback */
1242static snd_pcm_ops_t snd_emu10k1_efx_playback_ops = { 1246static struct snd_pcm_ops snd_emu10k1_efx_playback_ops = {
1243 .open = snd_emu10k1_efx_playback_open, 1247 .open = snd_emu10k1_efx_playback_open,
1244 .close = snd_emu10k1_efx_playback_close, 1248 .close = snd_emu10k1_efx_playback_close,
1245 .ioctl = snd_pcm_lib_ioctl, 1249 .ioctl = snd_pcm_lib_ioctl,
@@ -1251,10 +1255,10 @@ static snd_pcm_ops_t snd_emu10k1_efx_playback_ops = {
1251 .page = snd_pcm_sgbuf_ops_page, 1255 .page = snd_pcm_sgbuf_ops_page,
1252}; 1256};
1253 1257
1254int __devinit snd_emu10k1_pcm(emu10k1_t * emu, int device, snd_pcm_t ** rpcm) 1258int __devinit snd_emu10k1_pcm(struct snd_emu10k1 * emu, int device, struct snd_pcm ** rpcm)
1255{ 1259{
1256 snd_pcm_t *pcm; 1260 struct snd_pcm *pcm;
1257 snd_pcm_substream_t *substream; 1261 struct snd_pcm_substream *substream;
1258 int err; 1262 int err;
1259 1263
1260 if (rpcm) 1264 if (rpcm)
@@ -1286,10 +1290,10 @@ int __devinit snd_emu10k1_pcm(emu10k1_t * emu, int device, snd_pcm_t ** rpcm)
1286 return 0; 1290 return 0;
1287} 1291}
1288 1292
1289int __devinit snd_emu10k1_pcm_multi(emu10k1_t * emu, int device, snd_pcm_t ** rpcm) 1293int __devinit snd_emu10k1_pcm_multi(struct snd_emu10k1 * emu, int device, struct snd_pcm ** rpcm)
1290{ 1294{
1291 snd_pcm_t *pcm; 1295 struct snd_pcm *pcm;
1292 snd_pcm_substream_t *substream; 1296 struct snd_pcm_substream *substream;
1293 int err; 1297 int err;
1294 1298
1295 if (rpcm) 1299 if (rpcm)
@@ -1318,7 +1322,7 @@ int __devinit snd_emu10k1_pcm_multi(emu10k1_t * emu, int device, snd_pcm_t ** rp
1318} 1322}
1319 1323
1320 1324
1321static snd_pcm_ops_t snd_emu10k1_capture_mic_ops = { 1325static struct snd_pcm_ops snd_emu10k1_capture_mic_ops = {
1322 .open = snd_emu10k1_capture_mic_open, 1326 .open = snd_emu10k1_capture_mic_open,
1323 .close = snd_emu10k1_capture_mic_close, 1327 .close = snd_emu10k1_capture_mic_close,
1324 .ioctl = snd_pcm_lib_ioctl, 1328 .ioctl = snd_pcm_lib_ioctl,
@@ -1329,9 +1333,9 @@ static snd_pcm_ops_t snd_emu10k1_capture_mic_ops = {
1329 .pointer = snd_emu10k1_capture_pointer, 1333 .pointer = snd_emu10k1_capture_pointer,
1330}; 1334};
1331 1335
1332int __devinit snd_emu10k1_pcm_mic(emu10k1_t * emu, int device, snd_pcm_t ** rpcm) 1336int __devinit snd_emu10k1_pcm_mic(struct snd_emu10k1 * emu, int device, struct snd_pcm ** rpcm)
1333{ 1337{
1334 snd_pcm_t *pcm; 1338 struct snd_pcm *pcm;
1335 int err; 1339 int err;
1336 1340
1337 if (rpcm) 1341 if (rpcm)
@@ -1355,9 +1359,9 @@ int __devinit snd_emu10k1_pcm_mic(emu10k1_t * emu, int device, snd_pcm_t ** rpcm
1355 return 0; 1359 return 0;
1356} 1360}
1357 1361
1358static int snd_emu10k1_pcm_efx_voices_mask_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) 1362static int snd_emu10k1_pcm_efx_voices_mask_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
1359{ 1363{
1360 emu10k1_t *emu = snd_kcontrol_chip(kcontrol); 1364 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
1361 int nefx = emu->audigy ? 64 : 32; 1365 int nefx = emu->audigy ? 64 : 32;
1362 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; 1366 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
1363 uinfo->count = nefx; 1367 uinfo->count = nefx;
@@ -1366,9 +1370,9 @@ static int snd_emu10k1_pcm_efx_voices_mask_info(snd_kcontrol_t *kcontrol, snd_ct
1366 return 0; 1370 return 0;
1367} 1371}
1368 1372
1369static int snd_emu10k1_pcm_efx_voices_mask_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) 1373static int snd_emu10k1_pcm_efx_voices_mask_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
1370{ 1374{
1371 emu10k1_t *emu = snd_kcontrol_chip(kcontrol); 1375 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
1372 int nefx = emu->audigy ? 64 : 32; 1376 int nefx = emu->audigy ? 64 : 32;
1373 int idx; 1377 int idx;
1374 1378
@@ -1379,9 +1383,9 @@ static int snd_emu10k1_pcm_efx_voices_mask_get(snd_kcontrol_t * kcontrol, snd_ct
1379 return 0; 1383 return 0;
1380} 1384}
1381 1385
1382static int snd_emu10k1_pcm_efx_voices_mask_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) 1386static int snd_emu10k1_pcm_efx_voices_mask_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
1383{ 1387{
1384 emu10k1_t *emu = snd_kcontrol_chip(kcontrol); 1388 struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
1385 unsigned int nval[2], bits; 1389 unsigned int nval[2], bits;
1386 int nefx = emu->audigy ? 64 : 32; 1390 int nefx = emu->audigy ? 64 : 32;
1387 int nefxb = emu->audigy ? 7 : 6; 1391 int nefxb = emu->audigy ? 7 : 6;
@@ -1410,7 +1414,7 @@ static int snd_emu10k1_pcm_efx_voices_mask_put(snd_kcontrol_t * kcontrol, snd_ct
1410 return change; 1414 return change;
1411} 1415}
1412 1416
1413static snd_kcontrol_new_t snd_emu10k1_pcm_efx_voices_mask = { 1417static struct snd_kcontrol_new snd_emu10k1_pcm_efx_voices_mask = {
1414 .iface = SNDRV_CTL_ELEM_IFACE_PCM, 1418 .iface = SNDRV_CTL_ELEM_IFACE_PCM,
1415 .name = "Captured FX8010 Outputs", 1419 .name = "Captured FX8010 Outputs",
1416 .info = snd_emu10k1_pcm_efx_voices_mask_info, 1420 .info = snd_emu10k1_pcm_efx_voices_mask_info,
@@ -1418,7 +1422,7 @@ static snd_kcontrol_new_t snd_emu10k1_pcm_efx_voices_mask = {
1418 .put = snd_emu10k1_pcm_efx_voices_mask_put 1422 .put = snd_emu10k1_pcm_efx_voices_mask_put
1419}; 1423};
1420 1424
1421static snd_pcm_ops_t snd_emu10k1_capture_efx_ops = { 1425static struct snd_pcm_ops snd_emu10k1_capture_efx_ops = {
1422 .open = snd_emu10k1_capture_efx_open, 1426 .open = snd_emu10k1_capture_efx_open,
1423 .close = snd_emu10k1_capture_efx_close, 1427 .close = snd_emu10k1_capture_efx_close,
1424 .ioctl = snd_pcm_lib_ioctl, 1428 .ioctl = snd_pcm_lib_ioctl,
@@ -1435,9 +1439,9 @@ static snd_pcm_ops_t snd_emu10k1_capture_efx_ops = {
1435#define INITIAL_TRAM_SHIFT 14 1439#define INITIAL_TRAM_SHIFT 14
1436#define INITIAL_TRAM_POS(size) ((((size) / 2) - INITIAL_TRAM_SHIFT) - 1) 1440#define INITIAL_TRAM_POS(size) ((((size) / 2) - INITIAL_TRAM_SHIFT) - 1)
1437 1441
1438static void snd_emu10k1_fx8010_playback_irq(emu10k1_t *emu, void *private_data) 1442static void snd_emu10k1_fx8010_playback_irq(struct snd_emu10k1 *emu, void *private_data)
1439{ 1443{
1440 snd_pcm_substream_t *substream = private_data; 1444 struct snd_pcm_substream *substream = private_data;
1441 snd_pcm_period_elapsed(substream); 1445 snd_pcm_period_elapsed(substream);
1442} 1446}
1443 1447
@@ -1461,11 +1465,11 @@ static void snd_emu10k1_fx8010_playback_tram_poke1(unsigned short *dst_left,
1461 } 1465 }
1462} 1466}
1463 1467
1464static void fx8010_pb_trans_copy(snd_pcm_substream_t *substream, 1468static void fx8010_pb_trans_copy(struct snd_pcm_substream *substream,
1465 snd_pcm_indirect_t *rec, size_t bytes) 1469 struct snd_pcm_indirect *rec, size_t bytes)
1466{ 1470{
1467 emu10k1_t *emu = snd_pcm_substream_chip(substream); 1471 struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
1468 snd_emu10k1_fx8010_pcm_t *pcm = &emu->fx8010.pcm[substream->number]; 1472 struct snd_emu10k1_fx8010_pcm *pcm = &emu->fx8010.pcm[substream->number];
1469 unsigned int tram_size = pcm->buffer_size; 1473 unsigned int tram_size = pcm->buffer_size;
1470 unsigned short *src = (unsigned short *)(substream->runtime->dma_area + rec->sw_data); 1474 unsigned short *src = (unsigned short *)(substream->runtime->dma_area + rec->sw_data);
1471 unsigned int frames = bytes >> 2, count; 1475 unsigned int frames = bytes >> 2, count;
@@ -1490,25 +1494,25 @@ static void fx8010_pb_trans_copy(snd_pcm_substream_t *substream,
1490 pcm->tram_shift = tram_shift; 1494 pcm->tram_shift = tram_shift;
1491} 1495}
1492 1496
1493static int snd_emu10k1_fx8010_playback_transfer(snd_pcm_substream_t *substream) 1497static int snd_emu10k1_fx8010_playback_transfer(struct snd_pcm_substream *substream)
1494{ 1498{
1495 emu10k1_t *emu = snd_pcm_substream_chip(substream); 1499 struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
1496 snd_emu10k1_fx8010_pcm_t *pcm = &emu->fx8010.pcm[substream->number]; 1500 struct snd_emu10k1_fx8010_pcm *pcm = &emu->fx8010.pcm[substream->number];
1497 1501
1498 snd_pcm_indirect_playback_transfer(substream, &pcm->pcm_rec, fx8010_pb_trans_copy); 1502 snd_pcm_indirect_playback_transfer(substream, &pcm->pcm_rec, fx8010_pb_trans_copy);
1499 return 0; 1503 return 0;
1500} 1504}
1501 1505
1502static int snd_emu10k1_fx8010_playback_hw_params(snd_pcm_substream_t * substream, 1506static int snd_emu10k1_fx8010_playback_hw_params(struct snd_pcm_substream *substream,
1503 snd_pcm_hw_params_t * hw_params) 1507 struct snd_pcm_hw_params *hw_params)
1504{ 1508{
1505 return snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(hw_params)); 1509 return snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(hw_params));
1506} 1510}
1507 1511
1508static int snd_emu10k1_fx8010_playback_hw_free(snd_pcm_substream_t * substream) 1512static int snd_emu10k1_fx8010_playback_hw_free(struct snd_pcm_substream *substream)
1509{ 1513{
1510 emu10k1_t *emu = snd_pcm_substream_chip(substream); 1514 struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
1511 snd_emu10k1_fx8010_pcm_t *pcm = &emu->fx8010.pcm[substream->number]; 1515 struct snd_emu10k1_fx8010_pcm *pcm = &emu->fx8010.pcm[substream->number];
1512 unsigned int i; 1516 unsigned int i;
1513 1517
1514 for (i = 0; i < pcm->channels; i++) 1518 for (i = 0; i < pcm->channels; i++)
@@ -1517,11 +1521,11 @@ static int snd_emu10k1_fx8010_playback_hw_free(snd_pcm_substream_t * substream)
1517 return 0; 1521 return 0;
1518} 1522}
1519 1523
1520static int snd_emu10k1_fx8010_playback_prepare(snd_pcm_substream_t * substream) 1524static int snd_emu10k1_fx8010_playback_prepare(struct snd_pcm_substream *substream)
1521{ 1525{
1522 emu10k1_t *emu = snd_pcm_substream_chip(substream); 1526 struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
1523 snd_pcm_runtime_t *runtime = substream->runtime; 1527 struct snd_pcm_runtime *runtime = substream->runtime;
1524 snd_emu10k1_fx8010_pcm_t *pcm = &emu->fx8010.pcm[substream->number]; 1528 struct snd_emu10k1_fx8010_pcm *pcm = &emu->fx8010.pcm[substream->number];
1525 unsigned int i; 1529 unsigned int i;
1526 1530
1527 // printk("prepare: etram_pages = 0x%p, dma_area = 0x%x, buffer_size = 0x%x (0x%x)\n", emu->fx8010.etram_pages, runtime->dma_area, runtime->buffer_size, runtime->buffer_size << 2); 1531 // printk("prepare: etram_pages = 0x%p, dma_area = 0x%x, buffer_size = 0x%x (0x%x)\n", emu->fx8010.etram_pages, runtime->dma_area, runtime->buffer_size, runtime->buffer_size << 2);
@@ -1541,10 +1545,10 @@ static int snd_emu10k1_fx8010_playback_prepare(snd_pcm_substream_t * substream)
1541 return 0; 1545 return 0;
1542} 1546}
1543 1547
1544static int snd_emu10k1_fx8010_playback_trigger(snd_pcm_substream_t * substream, int cmd) 1548static int snd_emu10k1_fx8010_playback_trigger(struct snd_pcm_substream *substream, int cmd)
1545{ 1549{
1546 emu10k1_t *emu = snd_pcm_substream_chip(substream); 1550 struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
1547 snd_emu10k1_fx8010_pcm_t *pcm = &emu->fx8010.pcm[substream->number]; 1551 struct snd_emu10k1_fx8010_pcm *pcm = &emu->fx8010.pcm[substream->number];
1548 int result = 0; 1552 int result = 0;
1549 1553
1550 spin_lock(&emu->reg_lock); 1554 spin_lock(&emu->reg_lock);
@@ -1586,10 +1590,10 @@ static int snd_emu10k1_fx8010_playback_trigger(snd_pcm_substream_t * substream,
1586 return result; 1590 return result;
1587} 1591}
1588 1592
1589static snd_pcm_uframes_t snd_emu10k1_fx8010_playback_pointer(snd_pcm_substream_t * substream) 1593static snd_pcm_uframes_t snd_emu10k1_fx8010_playback_pointer(struct snd_pcm_substream *substream)
1590{ 1594{
1591 emu10k1_t *emu = snd_pcm_substream_chip(substream); 1595 struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
1592 snd_emu10k1_fx8010_pcm_t *pcm = &emu->fx8010.pcm[substream->number]; 1596 struct snd_emu10k1_fx8010_pcm *pcm = &emu->fx8010.pcm[substream->number];
1593 size_t ptr; /* byte pointer */ 1597 size_t ptr; /* byte pointer */
1594 1598
1595 if (!snd_emu10k1_ptr_read(emu, emu->gpr_base + pcm->gpr_trigger, 0)) 1599 if (!snd_emu10k1_ptr_read(emu, emu->gpr_base + pcm->gpr_trigger, 0))
@@ -1598,7 +1602,7 @@ static snd_pcm_uframes_t snd_emu10k1_fx8010_playback_pointer(snd_pcm_substream_t
1598 return snd_pcm_indirect_playback_pointer(substream, &pcm->pcm_rec, ptr); 1602 return snd_pcm_indirect_playback_pointer(substream, &pcm->pcm_rec, ptr);
1599} 1603}
1600 1604
1601static snd_pcm_hardware_t snd_emu10k1_fx8010_playback = 1605static struct snd_pcm_hardware snd_emu10k1_fx8010_playback =
1602{ 1606{
1603 .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | 1607 .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
1604 /* SNDRV_PCM_INFO_MMAP_VALID | */ SNDRV_PCM_INFO_PAUSE), 1608 /* SNDRV_PCM_INFO_MMAP_VALID | */ SNDRV_PCM_INFO_PAUSE),
@@ -1616,11 +1620,11 @@ static snd_pcm_hardware_t snd_emu10k1_fx8010_playback =
1616 .fifo_size = 0, 1620 .fifo_size = 0,
1617}; 1621};
1618 1622
1619static int snd_emu10k1_fx8010_playback_open(snd_pcm_substream_t * substream) 1623static int snd_emu10k1_fx8010_playback_open(struct snd_pcm_substream *substream)
1620{ 1624{
1621 emu10k1_t *emu = snd_pcm_substream_chip(substream); 1625 struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
1622 snd_pcm_runtime_t *runtime = substream->runtime; 1626 struct snd_pcm_runtime *runtime = substream->runtime;
1623 snd_emu10k1_fx8010_pcm_t *pcm = &emu->fx8010.pcm[substream->number]; 1627 struct snd_emu10k1_fx8010_pcm *pcm = &emu->fx8010.pcm[substream->number];
1624 1628
1625 runtime->hw = snd_emu10k1_fx8010_playback; 1629 runtime->hw = snd_emu10k1_fx8010_playback;
1626 runtime->hw.channels_min = runtime->hw.channels_max = pcm->channels; 1630 runtime->hw.channels_min = runtime->hw.channels_max = pcm->channels;
@@ -1635,10 +1639,10 @@ static int snd_emu10k1_fx8010_playback_open(snd_pcm_substream_t * substream)
1635 return 0; 1639 return 0;
1636} 1640}
1637 1641
1638static int snd_emu10k1_fx8010_playback_close(snd_pcm_substream_t * substream) 1642static int snd_emu10k1_fx8010_playback_close(struct snd_pcm_substream *substream)
1639{ 1643{
1640 emu10k1_t *emu = snd_pcm_substream_chip(substream); 1644 struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
1641 snd_emu10k1_fx8010_pcm_t *pcm = &emu->fx8010.pcm[substream->number]; 1645 struct snd_emu10k1_fx8010_pcm *pcm = &emu->fx8010.pcm[substream->number];
1642 1646
1643 spin_lock_irq(&emu->reg_lock); 1647 spin_lock_irq(&emu->reg_lock);
1644 pcm->opened = 0; 1648 pcm->opened = 0;
@@ -1646,7 +1650,7 @@ static int snd_emu10k1_fx8010_playback_close(snd_pcm_substream_t * substream)
1646 return 0; 1650 return 0;
1647} 1651}
1648 1652
1649static snd_pcm_ops_t snd_emu10k1_fx8010_playback_ops = { 1653static struct snd_pcm_ops snd_emu10k1_fx8010_playback_ops = {
1650 .open = snd_emu10k1_fx8010_playback_open, 1654 .open = snd_emu10k1_fx8010_playback_open,
1651 .close = snd_emu10k1_fx8010_playback_close, 1655 .close = snd_emu10k1_fx8010_playback_close,
1652 .ioctl = snd_pcm_lib_ioctl, 1656 .ioctl = snd_pcm_lib_ioctl,
@@ -1658,10 +1662,10 @@ static snd_pcm_ops_t snd_emu10k1_fx8010_playback_ops = {
1658 .ack = snd_emu10k1_fx8010_playback_transfer, 1662 .ack = snd_emu10k1_fx8010_playback_transfer,
1659}; 1663};
1660 1664
1661int __devinit snd_emu10k1_pcm_efx(emu10k1_t * emu, int device, snd_pcm_t ** rpcm) 1665int __devinit snd_emu10k1_pcm_efx(struct snd_emu10k1 * emu, int device, struct snd_pcm ** rpcm)
1662{ 1666{
1663 snd_pcm_t *pcm; 1667 struct snd_pcm *pcm;
1664 snd_kcontrol_t *kctl; 1668 struct snd_kcontrol *kctl;
1665 int err; 1669 int err;
1666 1670
1667 if (rpcm) 1671 if (rpcm)