diff --git a/sound/firewire/lib.c b/sound/firewire/lib.c index ddc3e88ee0d1..3e9afd7d402c 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)