diff options
author | Tim <tedon@rogers.com> | 2005-10-25 11:10:55 +0200 |
---|---|---|
committer | Jaroslav Kysela <perex@suse.cz> | 2005-11-04 13:20:13 +0100 |
commit | fc20773329c993ec7d1b2c65618351f057d9d679 (patch) | |
tree | 0a3159b9d7017e932dbd976338f29d34d4b9e8ad | |
parent | aa92c4af15224d8a96343286cdcf7c73b2ad3809 (diff) | |
download | linux-fc20773329c993ec7d1b2c65618351f057d9d679.tar.bz2 |
[ALSA] Fix emu10k1 synth problems.
Modules: EMU10K1/EMU10K2 driver,Common EMU synth
This patch fixes problems with voices cutting off or not
sounding at all.
Signed-off-by: Tim <tedon@rogers.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r-- | sound/pci/emu10k1/emu10k1_callback.c | 4 | ||||
-rw-r--r-- | sound/synth/emux/emux_synth.c | 1 |
2 files changed, 2 insertions, 3 deletions
diff --git a/sound/pci/emu10k1/emu10k1_callback.c b/sound/pci/emu10k1/emu10k1_callback.c index 7cf2f908eed9..6589bf24abcd 100644 --- a/sound/pci/emu10k1/emu10k1_callback.c +++ b/sound/pci/emu10k1/emu10k1_callback.c @@ -241,7 +241,7 @@ lookup_voices(snd_emux_t *emu, emu10k1_t *hw, best_voice_t *best, int active_onl else if (state == SNDRV_EMUX_ST_RELEASED || state == SNDRV_EMUX_ST_PENDING) { bp = best + V_RELEASED; -#if 0 +#if 1 val = snd_emu10k1_ptr_read(hw, CVCF_CURRENTVOL, vp->ch); if (! val) bp = best + V_OFF; @@ -349,7 +349,7 @@ start_voice(snd_emux_voice_t *vp) } /* channel to be silent and idle */ - snd_emu10k1_ptr_write(hw, DCYSUSV, ch, 0x0080); + snd_emu10k1_ptr_write(hw, DCYSUSV, ch, 0x0000); snd_emu10k1_ptr_write(hw, VTFT, ch, 0x0000FFFF); snd_emu10k1_ptr_write(hw, CVCF, ch, 0x0000FFFF); snd_emu10k1_ptr_write(hw, PTRX, ch, 0); diff --git a/sound/synth/emux/emux_synth.c b/sound/synth/emux/emux_synth.c index 751bf1272af3..bd71b73be657 100644 --- a/sound/synth/emux/emux_synth.c +++ b/sound/synth/emux/emux_synth.c @@ -171,7 +171,6 @@ snd_emux_note_off(void *p, int note, int vel, snd_midi_channel_t *chan) vp = &emu->voices[ch]; if (STATE_IS_PLAYING(vp->state) && vp->chan == chan && vp->key == note) { - vp->time = emu->use_time++; vp->state = SNDRV_EMUX_ST_RELEASED; if (vp->ontime == jiffies) { /* if note-off is sent too shortly after |