diff options
author | Takashi Iwai <tiwai@suse.de> | 2018-09-13 08:20:43 +0200 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2018-10-04 20:13:17 +0200 |
commit | 6aea5702e27ebc85747d6e4943a0c378e1752be0 (patch) | |
tree | c14ccb05935b7390997e8f4c74a5f4d4b2ab3617 /sound/core/seq | |
parent | cd3b7116b57527f659b96ff6988d2de3d448c5b3 (diff) | |
download | linux-6aea5702e27ebc85747d6e4943a0c378e1752be0.tar.bz2 |
ALSA: rawmidi: A lightweight function to discard pending bytes
For discarding the pending bytes on rawmidi, we process with a loop of
snd_rawmidi_transmit() which is just a waste of CPU power.
Implement a lightweight API function to discard the pending bytes and
the proceed the ring buffer instantly, and use it instead of open
codes.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/core/seq')
-rw-r--r-- | sound/core/seq/seq_virmidi.c | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/sound/core/seq/seq_virmidi.c b/sound/core/seq/seq_virmidi.c index cb988efd1ed0..e5a40795914a 100644 --- a/sound/core/seq/seq_virmidi.c +++ b/sound/core/seq/seq_virmidi.c @@ -149,9 +149,7 @@ static void snd_vmidi_output_work(struct work_struct *work) /* discard the outputs in dispatch mode unless subscribed */ if (vmidi->seq_mode == SNDRV_VIRMIDI_SEQ_DISPATCH && !(vmidi->rdev->flags & SNDRV_VIRMIDI_SUBSCRIBE)) { - char buf[32]; - while (snd_rawmidi_transmit(substream, buf, sizeof(buf)) > 0) - ; /* ignored */ + snd_rawmidi_proceed(substream); return; } |