Lines Matching refs:ch
182 static inline int emu8k_get_curpos(struct snd_emu8k_pcm *rec, int ch) in emu8k_get_curpos() argument
184 int val = EMU8000_CCCA_READ(rec->emu, ch) & 0xfffffff; in emu8k_get_curpos()
185 val -= rec->loop_start[ch] - 1; in emu8k_get_curpos()
280 static void setup_voice(struct snd_emu8k_pcm *rec, int ch) in setup_voice() argument
286 EMU8000_DCYSUSV_WRITE(hw, ch, 0x0080); in setup_voice()
287 EMU8000_VTFT_WRITE(hw, ch, 0x0000FFFF); in setup_voice()
288 EMU8000_CVCF_WRITE(hw, ch, 0x0000FFFF); in setup_voice()
289 EMU8000_PTRX_WRITE(hw, ch, 0); in setup_voice()
290 EMU8000_CPF_WRITE(hw, ch, 0); in setup_voice()
293 EMU8000_IP_WRITE(hw, ch, rec->pitch); in setup_voice()
295 EMU8000_ENVVAL_WRITE(hw, ch, 0x8000); in setup_voice()
296 EMU8000_ATKHLD_WRITE(hw, ch, 0x7f7f); in setup_voice()
297 EMU8000_DCYSUS_WRITE(hw, ch, 0x7f7f); in setup_voice()
298 EMU8000_ENVVOL_WRITE(hw, ch, 0x8000); in setup_voice()
299 EMU8000_ATKHLDV_WRITE(hw, ch, 0x7f7f); in setup_voice()
303 EMU8000_PEFE_WRITE(hw, ch, 0x0); in setup_voice()
305 EMU8000_LFO1VAL_WRITE(hw, ch, 0x8000); in setup_voice()
306 EMU8000_LFO2VAL_WRITE(hw, ch, 0x8000); in setup_voice()
308 EMU8000_FMMOD_WRITE(hw, ch, 0); in setup_voice()
310 EMU8000_TREMFRQ_WRITE(hw, ch, 0); in setup_voice()
312 EMU8000_FM2FRQ2_WRITE(hw, ch, 0); in setup_voice()
314 temp = rec->panning[ch]; in setup_voice()
315 temp = (temp <<24) | ((unsigned int)rec->loop_start[ch] - 1); in setup_voice()
316 EMU8000_PSST_WRITE(hw, ch, temp); in setup_voice()
319 temp = (temp << 24) | ((unsigned int)rec->loop_start[ch] + rec->buf_size - 1); in setup_voice()
320 EMU8000_CSL_WRITE(hw, ch, temp); in setup_voice()
323 temp = (temp << 28) | ((unsigned int)rec->loop_start[ch] - 1); in setup_voice()
324 EMU8000_CCCA_WRITE(hw, ch, temp); in setup_voice()
326 EMU8000_00A0_WRITE(hw, ch, 0); in setup_voice()
327 EMU8000_0080_WRITE(hw, ch, 0); in setup_voice()
333 static void start_voice(struct snd_emu8k_pcm *rec, int ch) in start_voice() argument
341 EMU8000_IFATN_WRITE(hw, ch, 0xff00); in start_voice()
342 EMU8000_VTFT_WRITE(hw, ch, 0xffff); in start_voice()
343 EMU8000_CVCF_WRITE(hw, ch, 0xffff); in start_voice()
345 EMU8000_DCYSUSV_WRITE(hw, ch, 0x7f7f); in start_voice()
348 if (rec->panning[ch] == 0) in start_voice()
351 aux = (-rec->panning[ch]) & 0xff; in start_voice()
353 EMU8000_PTRX_WRITE(hw, ch, temp); in start_voice()
354 EMU8000_CPF_WRITE(hw, ch, pt << 16); in start_voice()
368 static void stop_voice(struct snd_emu8k_pcm *rec, int ch) in stop_voice() argument
373 EMU8000_DCYSUSV_WRITE(hw, ch, 0x807F); in stop_voice()
387 int ch; in emu8k_pcm_trigger() local
391 for (ch = 0; ch < rec->voices; ch++) in emu8k_pcm_trigger()
392 start_voice(rec, ch); in emu8k_pcm_trigger()
397 for (ch = 0; ch < rec->voices; ch++) in emu8k_pcm_trigger()
398 stop_voice(rec, ch); in emu8k_pcm_trigger()
598 int ch; in emu8k_pcm_hw_free() local
599 for (ch = 0; ch < rec->voices; ch++) in emu8k_pcm_hw_free()
600 stop_voice(rec, ch); // to be sure in emu8k_pcm_hw_free()
632 int err, i, ch; in emu8k_pcm_prepare() local
644 for (ch = 0; ch < rec->voices; ch++) { in emu8k_pcm_prepare()
645 EMU8000_SMALW_WRITE(rec->emu, rec->loop_start[ch] + rec->buf_size); in emu8k_pcm_prepare()