summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sound/firewire/tascam/tascam-midi.c2
-rw-r--r--sound/firewire/tascam/tascam-transaction.c16
-rw-r--r--sound/firewire/tascam/tascam.h3
3 files changed, 7 insertions, 14 deletions
diff --git a/sound/firewire/tascam/tascam-midi.c b/sound/firewire/tascam/tascam-midi.c
index df4f95d65925..901df81129bb 100644
--- a/sound/firewire/tascam/tascam-midi.c
+++ b/sound/firewire/tascam/tascam-midi.c
@@ -18,6 +18,8 @@ static int midi_playback_open(struct snd_rawmidi_substream *substream)
{
struct snd_tscm *tscm = substream->rmidi->private_data;
+ snd_fw_async_midi_port_init(&tscm->out_ports[substream->number]);
+
/* Initialize internal status. */
tscm->running_status[substream->number] = 0;
tscm->on_sysex[substream->number] = 0;
diff --git a/sound/firewire/tascam/tascam-transaction.c b/sound/firewire/tascam/tascam-transaction.c
index 248afe663387..a248a4ae0353 100644
--- a/sound/firewire/tascam/tascam-transaction.c
+++ b/sound/firewire/tascam/tascam-transaction.c
@@ -236,17 +236,10 @@ static void midi_port_work(struct work_struct *work)
port);
}
-int snd_fw_async_midi_port_init(struct snd_fw_async_midi_port *port,
- struct fw_unit *unit)
+void snd_fw_async_midi_port_init(struct snd_fw_async_midi_port *port)
{
- port->parent = fw_parent_device(unit);
port->idling = true;
- port->next_ktime = 0;
port->error = false;
-
- INIT_WORK(&port->work, midi_port_work);
-
- return 0;
}
static void handle_midi_tx(struct fw_card *card, struct fw_request *request,
@@ -324,10 +317,9 @@ int snd_tscm_transaction_register(struct snd_tscm *tscm)
goto error;
for (i = 0; i < TSCM_MIDI_OUT_PORT_MAX; i++) {
- err = snd_fw_async_midi_port_init(
- &tscm->out_ports[i], tscm->unit);
- if (err < 0)
- goto error;
+ tscm->out_ports[i].parent = fw_parent_device(tscm->unit);
+ tscm->out_ports[i].next_ktime = 0;
+ INIT_WORK(&tscm->out_ports[i].work, midi_port_work);
}
return err;
diff --git a/sound/firewire/tascam/tascam.h b/sound/firewire/tascam/tascam.h
index fdf352bc303f..37ec2016d033 100644
--- a/sound/firewire/tascam/tascam.h
+++ b/sound/firewire/tascam/tascam.h
@@ -146,8 +146,7 @@ void snd_tscm_stream_lock_changed(struct snd_tscm *tscm);
int snd_tscm_stream_lock_try(struct snd_tscm *tscm);
void snd_tscm_stream_lock_release(struct snd_tscm *tscm);
-int snd_fw_async_midi_port_init(struct snd_fw_async_midi_port *port,
- struct fw_unit *unit);
+void snd_fw_async_midi_port_init(struct snd_fw_async_midi_port *port);
static inline void
snd_fw_async_midi_port_run(struct snd_fw_async_midi_port *port,
OpenPOWER on IntegriCloud