Merge branch 'topic/midi' into for-linus
[safe/jmp/linux-2.6] / sound / core / seq / seq_midi.c
index 4d26146..ebaf1b5 100644 (file)
@@ -120,7 +120,8 @@ static int dump_midi(struct snd_rawmidi_substream *substream, const char *buf, i
                return -EINVAL;
        runtime = substream->runtime;
        if ((tmp = runtime->avail) < count) {
-               snd_printd("warning, output event was lost (count = %i, available = %i)\n", count, tmp);
+               if (printk_ratelimit())
+                       snd_printk(KERN_ERR "MIDI output buffer overrun\n");
                return -ENOMEM;
        }
        if (snd_rawmidi_kernel_write(substream, buf, count) < count)
@@ -236,6 +237,7 @@ static int midisynth_use(void *private_data, struct snd_seq_port_subscribe *info
        memset(&params, 0, sizeof(params));
        params.avail_min = 1;
        params.buffer_size = output_buffer_size;
+       params.no_active_sensing = 1;
        if ((err = snd_rawmidi_output_params(msynth->output_rfile.output, &params)) < 0) {
                snd_rawmidi_kernel_release(&msynth->output_rfile);
                return err;
@@ -248,12 +250,9 @@ static int midisynth_use(void *private_data, struct snd_seq_port_subscribe *info
 static int midisynth_unuse(void *private_data, struct snd_seq_port_subscribe *info)
 {
        struct seq_midisynth *msynth = private_data;
-       unsigned char buf = 0xff; /* MIDI reset */
 
        if (snd_BUG_ON(!msynth->output_rfile.output))
                return -EINVAL;
-       /* sending single MIDI reset message to shut the device up */
-       snd_rawmidi_kernel_write(msynth->output_rfile.output, &buf, 1);
        snd_rawmidi_drain_output(msynth->output_rfile.output);
        return snd_rawmidi_kernel_release(&msynth->output_rfile);
 }