Lines Matching refs:ch
171 static inline int emu8k_get_curpos(struct snd_emu8k_pcm *rec, int ch) in emu8k_get_curpos() argument
173 int val = EMU8000_CCCA_READ(rec->emu, ch) & 0xfffffff; in emu8k_get_curpos()
174 val -= rec->loop_start[ch] - 1; in emu8k_get_curpos()
269 static void setup_voice(struct snd_emu8k_pcm *rec, int ch) in setup_voice() argument
275 EMU8000_DCYSUSV_WRITE(hw, ch, 0x0080); in setup_voice()
276 EMU8000_VTFT_WRITE(hw, ch, 0x0000FFFF); in setup_voice()
277 EMU8000_CVCF_WRITE(hw, ch, 0x0000FFFF); in setup_voice()
278 EMU8000_PTRX_WRITE(hw, ch, 0); in setup_voice()
279 EMU8000_CPF_WRITE(hw, ch, 0); in setup_voice()
282 EMU8000_IP_WRITE(hw, ch, rec->pitch); in setup_voice()
284 EMU8000_ENVVAL_WRITE(hw, ch, 0x8000); in setup_voice()
285 EMU8000_ATKHLD_WRITE(hw, ch, 0x7f7f); in setup_voice()
286 EMU8000_DCYSUS_WRITE(hw, ch, 0x7f7f); in setup_voice()
287 EMU8000_ENVVOL_WRITE(hw, ch, 0x8000); in setup_voice()
288 EMU8000_ATKHLDV_WRITE(hw, ch, 0x7f7f); in setup_voice()
292 EMU8000_PEFE_WRITE(hw, ch, 0x0); in setup_voice()
294 EMU8000_LFO1VAL_WRITE(hw, ch, 0x8000); in setup_voice()
295 EMU8000_LFO2VAL_WRITE(hw, ch, 0x8000); in setup_voice()
297 EMU8000_FMMOD_WRITE(hw, ch, 0); in setup_voice()
299 EMU8000_TREMFRQ_WRITE(hw, ch, 0); in setup_voice()
301 EMU8000_FM2FRQ2_WRITE(hw, ch, 0); in setup_voice()
303 temp = rec->panning[ch]; in setup_voice()
304 temp = (temp <<24) | ((unsigned int)rec->loop_start[ch] - 1); in setup_voice()
305 EMU8000_PSST_WRITE(hw, ch, temp); in setup_voice()
308 temp = (temp << 24) | ((unsigned int)rec->loop_start[ch] + rec->buf_size - 1); in setup_voice()
309 EMU8000_CSL_WRITE(hw, ch, temp); in setup_voice()
312 temp = (temp << 28) | ((unsigned int)rec->loop_start[ch] - 1); in setup_voice()
313 EMU8000_CCCA_WRITE(hw, ch, temp); in setup_voice()
315 EMU8000_00A0_WRITE(hw, ch, 0); in setup_voice()
316 EMU8000_0080_WRITE(hw, ch, 0); in setup_voice()
322 static void start_voice(struct snd_emu8k_pcm *rec, int ch) in start_voice() argument
330 EMU8000_IFATN_WRITE(hw, ch, 0xff00); in start_voice()
331 EMU8000_VTFT_WRITE(hw, ch, 0xffff); in start_voice()
332 EMU8000_CVCF_WRITE(hw, ch, 0xffff); in start_voice()
334 EMU8000_DCYSUSV_WRITE(hw, ch, 0x7f7f); in start_voice()
337 if (rec->panning[ch] == 0) in start_voice()
340 aux = (-rec->panning[ch]) & 0xff; in start_voice()
342 EMU8000_PTRX_WRITE(hw, ch, temp); in start_voice()
343 EMU8000_CPF_WRITE(hw, ch, pt << 16); in start_voice()
357 static void stop_voice(struct snd_emu8k_pcm *rec, int ch) in stop_voice() argument
362 EMU8000_DCYSUSV_WRITE(hw, ch, 0x807F); in stop_voice()
376 int ch; in emu8k_pcm_trigger() local
380 for (ch = 0; ch < rec->voices; ch++) in emu8k_pcm_trigger()
381 start_voice(rec, ch); in emu8k_pcm_trigger()
386 for (ch = 0; ch < rec->voices; ch++) in emu8k_pcm_trigger()
387 stop_voice(rec, ch); in emu8k_pcm_trigger()
592 int ch; in emu8k_pcm_hw_free() local
593 for (ch = 0; ch < rec->voices; ch++) in emu8k_pcm_hw_free()
594 stop_voice(rec, ch); // to be sure in emu8k_pcm_hw_free()
626 int err, i, ch; in emu8k_pcm_prepare() local
638 for (ch = 0; ch < rec->voices; ch++) { in emu8k_pcm_prepare()
639 EMU8000_SMALW_WRITE(rec->emu, rec->loop_start[ch] + rec->buf_size); in emu8k_pcm_prepare()