• Home
  • Raw
  • Download

Lines Matching refs:emu

35 void snd_emu8000_poke(struct snd_emu8000 *emu, unsigned int port, unsigned int reg, unsigned int va…  in snd_emu8000_poke()  argument
38 spin_lock_irqsave(&emu->reg_lock, flags); in snd_emu8000_poke()
39 if (reg != emu->last_reg) { in snd_emu8000_poke()
40 outw((unsigned short)reg, EMU8000_PTR(emu)); /* Set register */ in snd_emu8000_poke()
41 emu->last_reg = reg; in snd_emu8000_poke()
44 spin_unlock_irqrestore(&emu->reg_lock, flags); in snd_emu8000_poke()
48 unsigned short snd_emu8000_peek(struct snd_emu8000 *emu, unsigned int port, unsigned int reg) in snd_emu8000_peek() argument
52 spin_lock_irqsave(&emu->reg_lock, flags); in snd_emu8000_peek()
53 if (reg != emu->last_reg) { in snd_emu8000_peek()
54 outw((unsigned short)reg, EMU8000_PTR(emu)); /* Set register */ in snd_emu8000_peek()
55 emu->last_reg = reg; in snd_emu8000_peek()
58 spin_unlock_irqrestore(&emu->reg_lock, flags); in snd_emu8000_peek()
63 void snd_emu8000_poke_dw(struct snd_emu8000 *emu, unsigned int port, unsigned int reg, unsigned int… in snd_emu8000_poke_dw() argument
66 spin_lock_irqsave(&emu->reg_lock, flags); in snd_emu8000_poke_dw()
67 if (reg != emu->last_reg) { in snd_emu8000_poke_dw()
68 outw((unsigned short)reg, EMU8000_PTR(emu)); /* Set register */ in snd_emu8000_poke_dw()
69 emu->last_reg = reg; in snd_emu8000_poke_dw()
73 spin_unlock_irqrestore(&emu->reg_lock, flags); in snd_emu8000_poke_dw()
77 unsigned int snd_emu8000_peek_dw(struct snd_emu8000 *emu, unsigned int port, unsigned int reg) in snd_emu8000_peek_dw() argument
82 spin_lock_irqsave(&emu->reg_lock, flags); in snd_emu8000_peek_dw()
83 if (reg != emu->last_reg) { in snd_emu8000_peek_dw()
84 outw((unsigned short)reg, EMU8000_PTR(emu)); /* Set register */ in snd_emu8000_peek_dw()
85 emu->last_reg = reg; in snd_emu8000_peek_dw()
89 spin_unlock_irqrestore(&emu->reg_lock, flags); in snd_emu8000_peek_dw()
97 snd_emu8000_dma_chan(struct snd_emu8000 *emu, int ch, int mode) in snd_emu8000_dma_chan() argument
102 EMU8000_CCCA_WRITE(emu, ch, 0); in snd_emu8000_dma_chan()
103 EMU8000_DCYSUSV_WRITE(emu, ch, 0x807F); in snd_emu8000_dma_chan()
106 EMU8000_DCYSUSV_WRITE(emu, ch, 0x80); in snd_emu8000_dma_chan()
107 EMU8000_VTFT_WRITE(emu, ch, 0); in snd_emu8000_dma_chan()
108 EMU8000_CVCF_WRITE(emu, ch, 0); in snd_emu8000_dma_chan()
109 EMU8000_PTRX_WRITE(emu, ch, 0x40000000); in snd_emu8000_dma_chan()
110 EMU8000_CPF_WRITE(emu, ch, 0x40000000); in snd_emu8000_dma_chan()
111 EMU8000_PSST_WRITE(emu, ch, 0); in snd_emu8000_dma_chan()
112 EMU8000_CSL_WRITE(emu, ch, 0); in snd_emu8000_dma_chan()
114 EMU8000_CCCA_WRITE(emu, ch, 0x06000000 | right_bit); in snd_emu8000_dma_chan()
116 EMU8000_CCCA_WRITE(emu, ch, 0x04000000 | right_bit); in snd_emu8000_dma_chan()
122 snd_emu8000_read_wait(struct snd_emu8000 *emu) in snd_emu8000_read_wait() argument
124 while ((EMU8000_SMALR_READ(emu) & 0x80000000) != 0) { in snd_emu8000_read_wait()
134 snd_emu8000_write_wait(struct snd_emu8000 *emu) in snd_emu8000_write_wait() argument
136 while ((EMU8000_SMALW_READ(emu) & 0x80000000) != 0) { in snd_emu8000_write_wait()
147 snd_emu8000_detect(struct snd_emu8000 *emu) in snd_emu8000_detect() argument
150 EMU8000_HWCF1_WRITE(emu, 0x0059); in snd_emu8000_detect()
151 EMU8000_HWCF2_WRITE(emu, 0x0020); in snd_emu8000_detect()
152 EMU8000_HWCF3_WRITE(emu, 0x0000); in snd_emu8000_detect()
158 if ((EMU8000_HWCF1_READ(emu) & 0x007e) != 0x0058) in snd_emu8000_detect()
160 if ((EMU8000_HWCF2_READ(emu) & 0x0003) != 0x0003) in snd_emu8000_detect()
164 emu->port1); in snd_emu8000_detect()
173 init_audio(struct snd_emu8000 *emu) in init_audio() argument
179 EMU8000_DCYSUSV_WRITE(emu, ch, 0x80); in init_audio()
183 EMU8000_ENVVOL_WRITE(emu, ch, 0); in init_audio()
184 EMU8000_ENVVAL_WRITE(emu, ch, 0); in init_audio()
185 EMU8000_DCYSUS_WRITE(emu, ch, 0); in init_audio()
186 EMU8000_ATKHLDV_WRITE(emu, ch, 0); in init_audio()
187 EMU8000_LFO1VAL_WRITE(emu, ch, 0); in init_audio()
188 EMU8000_ATKHLD_WRITE(emu, ch, 0); in init_audio()
189 EMU8000_LFO2VAL_WRITE(emu, ch, 0); in init_audio()
190 EMU8000_IP_WRITE(emu, ch, 0); in init_audio()
191 EMU8000_IFATN_WRITE(emu, ch, 0); in init_audio()
192 EMU8000_PEFE_WRITE(emu, ch, 0); in init_audio()
193 EMU8000_FMMOD_WRITE(emu, ch, 0); in init_audio()
194 EMU8000_TREMFRQ_WRITE(emu, ch, 0); in init_audio()
195 EMU8000_FM2FRQ2_WRITE(emu, ch, 0); in init_audio()
196 EMU8000_PTRX_WRITE(emu, ch, 0); in init_audio()
197 EMU8000_VTFT_WRITE(emu, ch, 0); in init_audio()
198 EMU8000_PSST_WRITE(emu, ch, 0); in init_audio()
199 EMU8000_CSL_WRITE(emu, ch, 0); in init_audio()
200 EMU8000_CCCA_WRITE(emu, ch, 0); in init_audio()
204 EMU8000_CPF_WRITE(emu, ch, 0); in init_audio()
205 EMU8000_CVCF_WRITE(emu, ch, 0); in init_audio()
214 init_dma(struct snd_emu8000 *emu) in init_dma() argument
216 EMU8000_SMALR_WRITE(emu, 0); in init_dma()
217 EMU8000_SMARR_WRITE(emu, 0); in init_dma()
218 EMU8000_SMALW_WRITE(emu, 0); in init_dma()
219 EMU8000_SMARW_WRITE(emu, 0); in init_dma()
318 send_array(struct snd_emu8000 *emu, const unsigned short *data, int size) in send_array() argument
325 EMU8000_INIT1_WRITE(emu, i, *p); in send_array()
327 EMU8000_INIT2_WRITE(emu, i, *p); in send_array()
329 EMU8000_INIT3_WRITE(emu, i, *p); in send_array()
331 EMU8000_INIT4_WRITE(emu, i, *p); in send_array()
340 init_arrays(struct snd_emu8000 *emu) in init_arrays() argument
342 send_array(emu, init1, ARRAY_SIZE(init1)/4); in init_arrays()
345 send_array(emu, init2, ARRAY_SIZE(init2)/4); in init_arrays()
346 send_array(emu, init3, ARRAY_SIZE(init3)/4); in init_arrays()
348 EMU8000_HWCF4_WRITE(emu, 0); in init_arrays()
349 EMU8000_HWCF5_WRITE(emu, 0x83); in init_arrays()
350 EMU8000_HWCF6_WRITE(emu, 0x8000); in init_arrays()
352 send_array(emu, init4, ARRAY_SIZE(init4)/4); in init_arrays()
366 size_dram(struct snd_emu8000 *emu) in size_dram() argument
370 if (emu->dram_checked) in size_dram()
376 snd_emu8000_dma_chan(emu, 0, EMU8000_RAM_WRITE); in size_dram()
377 snd_emu8000_dma_chan(emu, 1, EMU8000_RAM_READ); in size_dram()
378 EMU8000_SMALW_WRITE(emu, EMU8000_DRAM_OFFSET); in size_dram()
379 EMU8000_SMLD_WRITE(emu, UNIQUE_ID1); in size_dram()
380 snd_emu8000_init_fm(emu); /* This must really be here and not 2 lines back even */ in size_dram()
381 snd_emu8000_write_wait(emu); in size_dram()
387 EMU8000_SMALR_WRITE(emu, EMU8000_DRAM_OFFSET); in size_dram()
388 EMU8000_SMLD_READ(emu); /* discard stale data */ in size_dram()
389 if (EMU8000_SMLD_READ(emu) != UNIQUE_ID1) in size_dram()
391 snd_emu8000_read_wait(emu); in size_dram()
401 EMU8000_SMALW_WRITE(emu, EMU8000_DRAM_OFFSET + (size>>1)); in size_dram()
402 EMU8000_SMLD_WRITE(emu, UNIQUE_ID2); in size_dram()
403 snd_emu8000_write_wait(emu); in size_dram()
410 EMU8000_SMALR_WRITE(emu, EMU8000_DRAM_OFFSET + (size>>1)); in size_dram()
412 EMU8000_SMLD_READ(emu); /* discard stale data */ in size_dram()
413 if (EMU8000_SMLD_READ(emu) != UNIQUE_ID2) in size_dram()
415 snd_emu8000_read_wait(emu); in size_dram()
422 EMU8000_SMALR_WRITE(emu, EMU8000_DRAM_OFFSET); in size_dram()
423 EMU8000_SMLD_READ(emu); /* discard stale data */ in size_dram()
424 if (EMU8000_SMLD_READ(emu) != UNIQUE_ID1) in size_dram()
426 snd_emu8000_read_wait(emu); in size_dram()
434 if ((EMU8000_SMALW_READ(emu) & 0x80000000) == 0) in size_dram()
440 snd_emu8000_dma_chan(emu, 0, EMU8000_RAM_CLOSE); in size_dram()
441 snd_emu8000_dma_chan(emu, 1, EMU8000_RAM_CLOSE); in size_dram()
444 emu->port1, size/1024); in size_dram()
446 emu->mem_size = size; in size_dram()
447 emu->dram_checked = 1; in size_dram()
456 snd_emu8000_init_fm(struct snd_emu8000 *emu) in snd_emu8000_init_fm() argument
464 EMU8000_DCYSUSV_WRITE(emu, 30, 0x80); in snd_emu8000_init_fm()
465 EMU8000_PSST_WRITE(emu, 30, 0xFFFFFFE0); /* full left */ in snd_emu8000_init_fm()
466 EMU8000_CSL_WRITE(emu, 30, 0x00FFFFE8 | (emu->fm_chorus_depth << 24)); in snd_emu8000_init_fm()
467 EMU8000_PTRX_WRITE(emu, 30, (emu->fm_reverb_depth << 8)); in snd_emu8000_init_fm()
468 EMU8000_CPF_WRITE(emu, 30, 0); in snd_emu8000_init_fm()
469 EMU8000_CCCA_WRITE(emu, 30, 0x00FFFFE3); in snd_emu8000_init_fm()
472 EMU8000_DCYSUSV_WRITE(emu, 31, 0x80); in snd_emu8000_init_fm()
473 EMU8000_PSST_WRITE(emu, 31, 0x00FFFFF0); /* full right */ in snd_emu8000_init_fm()
474 EMU8000_CSL_WRITE(emu, 31, 0x00FFFFF8 | (emu->fm_chorus_depth << 24)); in snd_emu8000_init_fm()
475 EMU8000_PTRX_WRITE(emu, 31, (emu->fm_reverb_depth << 8)); in snd_emu8000_init_fm()
476 EMU8000_CPF_WRITE(emu, 31, 0x8000); in snd_emu8000_init_fm()
477 EMU8000_CCCA_WRITE(emu, 31, 0x00FFFFF3); in snd_emu8000_init_fm()
479 snd_emu8000_poke((emu), EMU8000_DATA0(emu), EMU8000_CMD(1, (30)), 0); in snd_emu8000_init_fm()
481 spin_lock_irqsave(&emu->reg_lock, flags); in snd_emu8000_init_fm()
482 while (!(inw(EMU8000_PTR(emu)) & 0x1000)) in snd_emu8000_init_fm()
484 while ((inw(EMU8000_PTR(emu)) & 0x1000)) in snd_emu8000_init_fm()
486 spin_unlock_irqrestore(&emu->reg_lock, flags); in snd_emu8000_init_fm()
487 snd_emu8000_poke((emu), EMU8000_DATA0(emu), EMU8000_CMD(1, (30)), 0x4828); in snd_emu8000_init_fm()
489 outb(0x3C, EMU8000_PTR(emu)); in snd_emu8000_init_fm()
490 outb(0, EMU8000_DATA1(emu)); in snd_emu8000_init_fm()
493 EMU8000_VTFT_WRITE(emu, 30, 0x8000FFFF); in snd_emu8000_init_fm()
494 EMU8000_VTFT_WRITE(emu, 31, 0x8000FFFF); in snd_emu8000_init_fm()
502 snd_emu8000_init_hw(struct snd_emu8000 *emu) in snd_emu8000_init_hw() argument
506 emu->last_reg = 0xffff; /* reset the last register index */ in snd_emu8000_init_hw()
509 EMU8000_HWCF1_WRITE(emu, 0x0059); in snd_emu8000_init_hw()
510 EMU8000_HWCF2_WRITE(emu, 0x0020); in snd_emu8000_init_hw()
513 EMU8000_HWCF3_WRITE(emu, 0); in snd_emu8000_init_hw()
516 init_audio(emu); in snd_emu8000_init_hw()
519 init_dma(emu); in snd_emu8000_init_hw()
522 init_arrays(emu); in snd_emu8000_init_hw()
528 snd_emu8000_init_fm(emu); in snd_emu8000_init_hw()
532 EMU8000_DCYSUSV_WRITE(emu, 0, 0x807F); in snd_emu8000_init_hw()
535 size_dram(emu); in snd_emu8000_init_hw()
538 EMU8000_HWCF3_WRITE(emu, 0x4); in snd_emu8000_init_hw()
541 snd_emu8000_update_equalizer(emu); in snd_emu8000_init_hw()
542 snd_emu8000_update_chorus_mode(emu); in snd_emu8000_init_hw()
543 snd_emu8000_update_reverb_mode(emu); in snd_emu8000_init_hw()
586 snd_emu8000_update_equalizer(struct snd_emu8000 *emu) in snd_emu8000_update_equalizer() argument
589 int bass = emu->bass_level; in snd_emu8000_update_equalizer()
590 int treble = emu->treble_level; in snd_emu8000_update_equalizer()
594 EMU8000_INIT4_WRITE(emu, 0x01, bass_parm[bass][0]); in snd_emu8000_update_equalizer()
595 EMU8000_INIT4_WRITE(emu, 0x11, bass_parm[bass][1]); in snd_emu8000_update_equalizer()
596 EMU8000_INIT3_WRITE(emu, 0x11, treble_parm[treble][0]); in snd_emu8000_update_equalizer()
597 EMU8000_INIT3_WRITE(emu, 0x13, treble_parm[treble][1]); in snd_emu8000_update_equalizer()
598 EMU8000_INIT3_WRITE(emu, 0x1b, treble_parm[treble][2]); in snd_emu8000_update_equalizer()
599 EMU8000_INIT4_WRITE(emu, 0x07, treble_parm[treble][3]); in snd_emu8000_update_equalizer()
600 EMU8000_INIT4_WRITE(emu, 0x0b, treble_parm[treble][4]); in snd_emu8000_update_equalizer()
601 EMU8000_INIT4_WRITE(emu, 0x0d, treble_parm[treble][5]); in snd_emu8000_update_equalizer()
602 EMU8000_INIT4_WRITE(emu, 0x17, treble_parm[treble][6]); in snd_emu8000_update_equalizer()
603 EMU8000_INIT4_WRITE(emu, 0x19, treble_parm[treble][7]); in snd_emu8000_update_equalizer()
605 EMU8000_INIT4_WRITE(emu, 0x15, (unsigned short)(w + 0x0262)); in snd_emu8000_update_equalizer()
606 EMU8000_INIT4_WRITE(emu, 0x1d, (unsigned short)(w + 0x8362)); in snd_emu8000_update_equalizer()
651 snd_emu8000_load_chorus_fx(struct snd_emu8000 *emu, int mode, const void __user *buf, long len) in snd_emu8000_load_chorus_fx() argument
666 snd_emu8000_update_chorus_mode(struct snd_emu8000 *emu) in snd_emu8000_update_chorus_mode() argument
668 int effect = emu->chorus_mode; in snd_emu8000_update_chorus_mode()
672 EMU8000_INIT3_WRITE(emu, 0x09, chorus_parm[effect].feedback); in snd_emu8000_update_chorus_mode()
673 EMU8000_INIT3_WRITE(emu, 0x0c, chorus_parm[effect].delay_offset); in snd_emu8000_update_chorus_mode()
674 EMU8000_INIT4_WRITE(emu, 0x03, chorus_parm[effect].lfo_depth); in snd_emu8000_update_chorus_mode()
675 EMU8000_HWCF4_WRITE(emu, chorus_parm[effect].delay); in snd_emu8000_update_chorus_mode()
676 EMU8000_HWCF5_WRITE(emu, chorus_parm[effect].lfo_freq); in snd_emu8000_update_chorus_mode()
677 EMU8000_HWCF6_WRITE(emu, 0x8000); in snd_emu8000_update_chorus_mode()
678 EMU8000_HWCF7_WRITE(emu, 0x0000); in snd_emu8000_update_chorus_mode()
778 snd_emu8000_load_reverb_fx(struct snd_emu8000 *emu, int mode, const void __user *buf, long len) in snd_emu8000_load_reverb_fx() argument
794 snd_emu8000_update_reverb_mode(struct snd_emu8000 *emu) in snd_emu8000_update_reverb_mode() argument
796 int effect = emu->reverb_mode; in snd_emu8000_update_reverb_mode()
805 port = EMU8000_DATA1(emu); in snd_emu8000_update_reverb_mode()
807 port = EMU8000_DATA2(emu); in snd_emu8000_update_reverb_mode()
808 snd_emu8000_poke(emu, port, reverb_cmds[i].cmd, reverb_parm[effect].parms[i]); in snd_emu8000_update_reverb_mode()
831 struct snd_emu8000 *emu = snd_kcontrol_chip(kcontrol); in mixer_bass_treble_get() local
833 ucontrol->value.integer.value[0] = kcontrol->private_value ? emu->treble_level : emu->bass_level; in mixer_bass_treble_get()
839 struct snd_emu8000 *emu = snd_kcontrol_chip(kcontrol); in mixer_bass_treble_put() local
845 spin_lock_irqsave(&emu->control_lock, flags); in mixer_bass_treble_put()
847 change = val1 != emu->treble_level; in mixer_bass_treble_put()
848 emu->treble_level = val1; in mixer_bass_treble_put()
850 change = val1 != emu->bass_level; in mixer_bass_treble_put()
851 emu->bass_level = val1; in mixer_bass_treble_put()
853 spin_unlock_irqrestore(&emu->control_lock, flags); in mixer_bass_treble_put()
854 snd_emu8000_update_equalizer(emu); in mixer_bass_treble_put()
892 struct snd_emu8000 *emu = snd_kcontrol_chip(kcontrol); in mixer_chorus_reverb_get() local
894 ucontrol->value.integer.value[0] = kcontrol->private_value ? emu->chorus_mode : emu->reverb_mode; in mixer_chorus_reverb_get()
900 struct snd_emu8000 *emu = snd_kcontrol_chip(kcontrol); in mixer_chorus_reverb_put() local
905 spin_lock_irqsave(&emu->control_lock, flags); in mixer_chorus_reverb_put()
908 change = val1 != emu->chorus_mode; in mixer_chorus_reverb_put()
909 emu->chorus_mode = val1; in mixer_chorus_reverb_put()
912 change = val1 != emu->reverb_mode; in mixer_chorus_reverb_put()
913 emu->reverb_mode = val1; in mixer_chorus_reverb_put()
915 spin_unlock_irqrestore(&emu->control_lock, flags); in mixer_chorus_reverb_put()
918 snd_emu8000_update_chorus_mode(emu); in mixer_chorus_reverb_put()
920 snd_emu8000_update_reverb_mode(emu); in mixer_chorus_reverb_put()
959 struct snd_emu8000 *emu = snd_kcontrol_chip(kcontrol); in mixer_fm_depth_get() local
961 …ucontrol->value.integer.value[0] = kcontrol->private_value ? emu->fm_chorus_depth : emu->fm_reverb… in mixer_fm_depth_get()
967 struct snd_emu8000 *emu = snd_kcontrol_chip(kcontrol); in mixer_fm_depth_put() local
973 spin_lock_irqsave(&emu->control_lock, flags); in mixer_fm_depth_put()
975 change = val1 != emu->fm_chorus_depth; in mixer_fm_depth_put()
976 emu->fm_chorus_depth = val1; in mixer_fm_depth_put()
978 change = val1 != emu->fm_reverb_depth; in mixer_fm_depth_put()
979 emu->fm_reverb_depth = val1; in mixer_fm_depth_put()
981 spin_unlock_irqrestore(&emu->control_lock, flags); in mixer_fm_depth_put()
983 snd_emu8000_init_fm(emu); in mixer_fm_depth_put()
1021 snd_emu8000_create_mixer(struct snd_card *card, struct snd_emu8000 *emu) in snd_emu8000_create_mixer() argument
1025 if (snd_BUG_ON(!emu || !card)) in snd_emu8000_create_mixer()
1028 spin_lock_init(&emu->control_lock); in snd_emu8000_create_mixer()
1030 memset(emu->controls, 0, sizeof(emu->controls)); in snd_emu8000_create_mixer()
1032 if ((err = snd_ctl_add(card, emu->controls[i] = snd_ctl_new1(mixer_defs[i], emu))) < 0) { in snd_emu8000_create_mixer()
1033 emu->controls[i] = NULL; in snd_emu8000_create_mixer()
1042 if (emu->controls[i]) in snd_emu8000_create_mixer()
1043 snd_ctl_remove(card, emu->controls[i]); in snd_emu8000_create_mixer()