Changeset 598 for GPL/trunk/alsa-kernel/drivers/opl3
- Timestamp:
- Apr 3, 2017, 4:51:56 PM (9 years ago)
- Location:
- GPL/trunk
- Files:
-
- 1 deleted
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
GPL/trunk
-
Property svn:mergeinfo
set to
/GPL/branches/uniaud32-2.1.x merged eligible
-
Property svn:mergeinfo
set to
-
GPL/trunk/alsa-kernel/drivers/opl3/opl3_midi.c
r426 r598 30 30 extern int use_internal_drums; 31 31 32 static void snd_opl3_note_off_unsafe(void *p, int note, int vel, 33 struct snd_midi_channel *chan); 32 34 /* 33 35 * The next table looks magical, but it certainly is not. Its values have … … 243 245 int i; 244 246 245 spin_lock_irqsave(&opl3-> sys_timer_lock, flags);247 spin_lock_irqsave(&opl3->voice_lock, flags); 246 248 for (i = 0; i < opl3->max_voices; i++) { 247 249 struct snd_opl3_voice *vp = &opl3->voices[i]; 248 250 if (vp->state > 0 && vp->note_off_check) { 249 251 if (vp->note_off == jiffies) 250 snd_opl3_note_off(opl3, vp->note, 0, vp->chan); 252 snd_opl3_note_off_unsafe(opl3, vp->note, 0, 253 vp->chan); 251 254 else 252 255 again++; 253 256 } 254 257 } 258 spin_unlock_irqrestore(&opl3->voice_lock, flags); 259 260 spin_lock_irqsave(&opl3->sys_timer_lock, flags); 255 261 if (again) { 256 262 opl3->tlist.expires = jiffies + 1; /* invoke again */ … … 659 665 * Release a note in response to a midi note off. 660 666 */ 661 void snd_opl3_note_off(void *p, int note, int vel, struct snd_midi_channel *chan) 667 static void snd_opl3_note_off_unsafe(void *p, int note, int vel, 668 struct snd_midi_channel *chan) 662 669 { 663 670 struct snd_opl3 *opl3; … … 666 673 struct snd_opl3_voice *vp; 667 674 668 unsigned long flags;669 670 675 opl3 = p; 671 676 … … 674 679 chan->number, chan->midi_program, note); 675 680 #endif 676 677 spin_lock_irqsave(&opl3->voice_lock, flags);678 681 679 682 if (opl3->synth_mode == SNDRV_OPL3_MODE_SEQ) { 680 683 if (chan->drum_channel && use_internal_drums) { 681 684 snd_opl3_drum_switch(opl3, note, vel, 0, chan); 682 spin_unlock_irqrestore(&opl3->voice_lock, flags);683 685 return; 684 686 } … … 698 700 } 699 701 } 702 } 703 704 void snd_opl3_note_off(void *p, int note, int vel, 705 struct snd_midi_channel *chan) 706 { 707 struct snd_opl3 *opl3 = p; 708 unsigned long flags; 709 710 spin_lock_irqsave(&opl3->voice_lock, flags); 711 snd_opl3_note_off_unsafe(p, note, vel, chan); 700 712 spin_unlock_irqrestore(&opl3->voice_lock, flags); 701 713 } -
GPL/trunk/alsa-kernel/drivers/opl3/opl3_synth.c
r426 r598 20 20 */ 21 21 22 #include <linux/slab.h> 22 23 #include <sound/opl3.h> 23 24 #include <sound/asound_fm.h>
Note:
See TracChangeset
for help on using the changeset viewer.