{
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;
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,
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;
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,