[alsa-devel] [PATCH 3/5] ALSA: firewire-lib: schedule work again when MIDI substream has rest of MIDI messages
Takashi Sakamoto
o-takashi at sakamocchi.jp
Wed Oct 7 02:19:37 CEST 2015
Currently, when two MIDI trigger callbacks are called immediately,
transactions for the second MIDI messages are postpone till next trigger
callback. This is not good for real-time message transmission.
This commit schedules work again at response handling callback if the
MIDI substream still includes untransferred MIDI messages.
Signed-off-by: Takashi Sakamoto <o-takashi at sakamocchi.jp>
---
sound/firewire/lib.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/sound/firewire/lib.c b/sound/firewire/lib.c
index ddc3e88..3e9afd7 100644
--- a/sound/firewire/lib.c
+++ b/sound/firewire/lib.c
@@ -78,6 +78,9 @@ static void async_midi_port_callback(struct fw_card *card, int rcode,
snd_rawmidi_transmit_ack(substream, port->consume_bytes);
port->idling = true;
+
+ if (!snd_rawmidi_transmit_empty(substream))
+ schedule_work(&port->work);
}
static void midi_port_work(struct work_struct *work)
--
2.1.4
More information about the Alsa-devel
mailing list