Lines Matching refs:emu

51 	struct snd_emu8000 *emu;  member
79 emu8k_open_dram_for_pcm(struct snd_emu8000 *emu, int channels) in emu8k_open_dram_for_pcm() argument
84 snd_emux_lock_voice(emu->emu, 0); in emu8k_open_dram_for_pcm()
86 snd_emux_lock_voice(emu->emu, 1); in emu8k_open_dram_for_pcm()
91 snd_emux_lock_voice(emu->emu, i); in emu8k_open_dram_for_pcm()
96 snd_emu8000_dma_chan(emu, i, mode); in emu8k_open_dram_for_pcm()
100 EMU8000_VTFT_WRITE(emu, 30, 0); in emu8k_open_dram_for_pcm()
101 EMU8000_PSST_WRITE(emu, 30, 0x1d8); in emu8k_open_dram_for_pcm()
102 EMU8000_CSL_WRITE(emu, 30, 0x1e0); in emu8k_open_dram_for_pcm()
103 EMU8000_CCCA_WRITE(emu, 30, 0x1d8); in emu8k_open_dram_for_pcm()
104 EMU8000_VTFT_WRITE(emu, 31, 0); in emu8k_open_dram_for_pcm()
105 EMU8000_PSST_WRITE(emu, 31, 0x1d8); in emu8k_open_dram_for_pcm()
106 EMU8000_CSL_WRITE(emu, 31, 0x1e0); in emu8k_open_dram_for_pcm()
107 EMU8000_CCCA_WRITE(emu, 31, 0x1d8); in emu8k_open_dram_for_pcm()
115 snd_emu8000_write_wait(struct snd_emu8000 *emu, int can_schedule) in snd_emu8000_write_wait() argument
117 while ((EMU8000_SMALW_READ(emu) & 0x80000000) != 0) { in snd_emu8000_write_wait()
130 emu8k_close_dram(struct snd_emu8000 *emu) in emu8k_close_dram() argument
135 snd_emux_unlock_voice(emu->emu, i); in emu8k_close_dram()
137 snd_emu8000_dma_chan(emu, i, EMU8000_RAM_CLOSE); in emu8k_close_dram()
138 snd_emux_unlock_voice(emu->emu, i); in emu8k_close_dram()
184 int val = EMU8000_CCCA_READ(rec->emu, ch) & 0xfffffff; in emu8k_get_curpos()
229 struct snd_emu8000 *emu = snd_pcm_substream_chip(subs); in emu8k_pcm_open() local
237 rec->emu = emu; in emu8k_pcm_open()
245 runtime->hw.buffer_bytes_max = emu->mem_size - LOOP_BLANK_SIZE * 3; in emu8k_pcm_open()
282 struct snd_emu8000 *hw = rec->emu; in setup_voice()
336 struct snd_emu8000 *hw = rec->emu; in start_voice()
371 struct snd_emu8000 *hw = rec->emu; in stop_voice()
426 static int emu8k_transfer_block(struct snd_emu8000 *emu, int offset, unsigned short *buf, int count) in emu8k_transfer_block() argument
428 EMU8000_SMALW_WRITE(emu, offset); in emu8k_transfer_block()
434 EMU8000_SMLD_WRITE(emu, sval); in emu8k_transfer_block()
448 struct snd_emu8000 *emu = rec->emu; in emu8k_pcm_copy() local
450 snd_emu8000_write_wait(emu, 1); in emu8k_pcm_copy()
456 err = emu8k_transfer_block(emu, pos + rec->loop_start[i], buf, count); in emu8k_pcm_copy()
463 return emu8k_transfer_block(emu, pos + rec->loop_start[voice], src, count); in emu8k_pcm_copy()
468 static int emu8k_silence_block(struct snd_emu8000 *emu, int offset, int count) in emu8k_silence_block() argument
470 EMU8000_SMALW_WRITE(emu, offset); in emu8k_silence_block()
473 EMU8000_SMLD_WRITE(emu, 0); in emu8k_silence_block()
485 struct snd_emu8000 *emu = rec->emu; in emu8k_pcm_silence() local
487 snd_emu8000_write_wait(emu, 1); in emu8k_pcm_silence()
492 err = emu8k_silence_block(emu, pos + rec->loop_start[0], count / 2); in emu8k_pcm_silence()
495 return emu8k_silence_block(emu, pos + rec->loop_start[1], count / 2); in emu8k_pcm_silence()
497 return emu8k_silence_block(emu, pos + rec->loop_start[voice], count); in emu8k_pcm_silence()
514 struct snd_emu8000 *emu = rec->emu; in emu8k_pcm_copy() local
517 snd_emu8000_write_wait(emu, 1); in emu8k_pcm_copy()
518 EMU8000_SMALW_WRITE(emu, pos + rec->loop_start[0]); in emu8k_pcm_copy()
520 EMU8000_SMARW_WRITE(emu, pos + rec->loop_start[1]); in emu8k_pcm_copy()
527 EMU8000_SMLD_WRITE(emu, sval); in emu8k_pcm_copy()
533 EMU8000_SMRD_WRITE(emu, sval); in emu8k_pcm_copy()
546 struct snd_emu8000 *emu = rec->emu; in emu8k_pcm_silence() local
548 snd_emu8000_write_wait(emu, 1); in emu8k_pcm_silence()
549 EMU8000_SMALW_WRITE(emu, rec->loop_start[0] + pos); in emu8k_pcm_silence()
551 EMU8000_SMARW_WRITE(emu, rec->loop_start[1] + pos); in emu8k_pcm_silence()
554 EMU8000_SMLD_WRITE(emu, 0); in emu8k_pcm_silence()
557 EMU8000_SMRD_WRITE(emu, 0); in emu8k_pcm_silence()
575 snd_util_mem_free(rec->emu->memhdr, rec->block); in emu8k_pcm_hw_params()
580 rec->block = snd_util_mem_alloc(rec->emu->memhdr, rec->allocated_bytes); in emu8k_pcm_hw_params()
602 emu8k_close_dram(rec->emu); in emu8k_pcm_hw_free()
603 snd_util_mem_free(rec->emu->memhdr, rec->block); in emu8k_pcm_hw_free()
634 snd_emux_terminate_all(rec->emu->emu); in emu8k_pcm_prepare()
635 if ((err = emu8k_open_dram_for_pcm(rec->emu, rec->voices)) != 0) in emu8k_pcm_prepare()
640 snd_emu8000_write_wait(rec->emu, 0); in emu8k_pcm_prepare()
641 EMU8000_SMALW_WRITE(rec->emu, rec->offset); in emu8k_pcm_prepare()
643 EMU8000_SMLD_WRITE(rec->emu, 0); in emu8k_pcm_prepare()
645 EMU8000_SMALW_WRITE(rec->emu, rec->loop_start[ch] + rec->buf_size); in emu8k_pcm_prepare()
647 EMU8000_SMLD_WRITE(rec->emu, 0); in emu8k_pcm_prepare()
682 struct snd_emu8000 *emu = pcm->private_data; in snd_emu8000_pcm_free() local
683 emu->pcm = NULL; in snd_emu8000_pcm_free()
686 int snd_emu8000_pcm_new(struct snd_card *card, struct snd_emu8000 *emu, int index) in snd_emu8000_pcm_new() argument
693 pcm->private_data = emu; in snd_emu8000_pcm_new()
696 emu->pcm = pcm; in snd_emu8000_pcm_new()