aboutsummaryrefslogtreecommitdiffstats
path: root/sound
diff options
context:
space:
mode:
authorTim <tedon@rogers.com>2005-10-25 05:10:55 -0400
committerJaroslav Kysela <perex@suse.cz>2005-11-04 07:20:13 -0500
commitfc20773329c993ec7d1b2c65618351f057d9d679 (patch)
tree0a3159b9d7017e932dbd976338f29d34d4b9e8ad /sound
parentaa92c4af15224d8a96343286cdcf7c73b2ad3809 (diff)
[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>
Diffstat (limited to 'sound')
-rw-r--r--sound/pci/emu10k1/emu10k1_callback.c4
-rw-r--r--sound/synth/emux/emux_synth.c1
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
241 else if (state == SNDRV_EMUX_ST_RELEASED || 241 else if (state == SNDRV_EMUX_ST_RELEASED ||
242 state == SNDRV_EMUX_ST_PENDING) { 242 state == SNDRV_EMUX_ST_PENDING) {
243 bp = best + V_RELEASED; 243 bp = best + V_RELEASED;
244#if 0 244#if 1
245 val = snd_emu10k1_ptr_read(hw, CVCF_CURRENTVOL, vp->ch); 245 val = snd_emu10k1_ptr_read(hw, CVCF_CURRENTVOL, vp->ch);
246 if (! val) 246 if (! val)
247 bp = best + V_OFF; 247 bp = best + V_OFF;
@@ -349,7 +349,7 @@ start_voice(snd_emux_voice_t *vp)
349 } 349 }
350 350
351 /* channel to be silent and idle */ 351 /* channel to be silent and idle */
352 snd_emu10k1_ptr_write(hw, DCYSUSV, ch, 0x0080); 352 snd_emu10k1_ptr_write(hw, DCYSUSV, ch, 0x0000);
353 snd_emu10k1_ptr_write(hw, VTFT, ch, 0x0000FFFF); 353 snd_emu10k1_ptr_write(hw, VTFT, ch, 0x0000FFFF);
354 snd_emu10k1_ptr_write(hw, CVCF, ch, 0x0000FFFF); 354 snd_emu10k1_ptr_write(hw, CVCF, ch, 0x0000FFFF);
355 snd_emu10k1_ptr_write(hw, PTRX, ch, 0); 355 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)
171 vp = &emu->voices[ch]; 171 vp = &emu->voices[ch];
172 if (STATE_IS_PLAYING(vp->state) && 172 if (STATE_IS_PLAYING(vp->state) &&
173 vp->chan == chan && vp->key == note) { 173 vp->chan == chan && vp->key == note) {
174 vp->time = emu->use_time++;
175 vp->state = SNDRV_EMUX_ST_RELEASED; 174 vp->state = SNDRV_EMUX_ST_RELEASED;
176 if (vp->ontime == jiffies) { 175 if (vp->ontime == jiffies) {
177 /* if note-off is sent too shortly after 176 /* if note-off is sent too shortly after