[05/25] ALSA: firewire-lib: schedule tasklet again when MIDI substream has rest of MIDI messages
diff mbox

Message ID 1439425221-30826-6-git-send-email-o-takashi@sakamocchi.jp
State New
Headers show

Commit Message

Takashi Sakamoto Aug. 13, 2015, 12:20 a.m. UTC
When two MIDI trigger callbacks can be called immediately, transactions
for the second MIDI messages can be postpone till next trigger callback.

This commit schedules tasklet again at response handling callback if the
MIDI substream still includes untransferred MIDI messages.

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
---
 sound/firewire/lib.c | 3 +++
 1 file changed, 3 insertions(+)

Patch
diff mbox

diff --git a/sound/firewire/lib.c b/sound/firewire/lib.c
index a66e011..e309b9b 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))
+		tasklet_schedule(&port->tasklet);
 }
 
 static void midi_port_tasklet(unsigned long data)