diff options
author | Takashi Sakamoto <o-takashi@sakamocchi.jp> | 2017-04-14 09:46:28 +0200 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2017-04-14 14:50:33 +0200 |
commit | 27badc4c10da29b884f1ac7cc9ce13e849ce8be4 (patch) | |
tree | c4f58a7f2197183e2f079c702165c96a18199d1e /sound/firewire/tascam/tascam-transaction.c | |
parent | ALSA: firewire-tascam: send fixed-length transaction for async midi port (diff) | |
download | linux-27badc4c10da29b884f1ac7cc9ce13e849ce8be4.tar.xz linux-27badc4c10da29b884f1ac7cc9ce13e849ce8be4.zip |
ALSA: firewire-tascam: use the same address for asynchronous transaction for MIDI message
Units on TASCAM FireWire series receive MIDI messages by asynchronous
transactions on IEEE 1394 bus. Although the transaction is sent to a
certain register, current ALSA driver for this series has a redundant design.
This commit use the same address for the transaction.
Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/firewire/tascam/tascam-transaction.c')
-rw-r--r-- | sound/firewire/tascam/tascam-transaction.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/sound/firewire/tascam/tascam-transaction.c b/sound/firewire/tascam/tascam-transaction.c index 2f5e20cf4ce5..4e362b83d8e8 100644 --- a/sound/firewire/tascam/tascam-transaction.c +++ b/sound/firewire/tascam/tascam-transaction.c @@ -230,20 +230,20 @@ static void midi_port_work(struct work_struct *work) fw_send_request(port->parent->card, &port->transaction, TCODE_WRITE_QUADLET_REQUEST, port->parent->node_id, generation, - port->parent->max_speed, port->addr, + port->parent->max_speed, + TSCM_ADDR_BASE + TSCM_OFFSET_MIDI_RX_QUAD, port->buf, 4, async_midi_port_callback, port); } int snd_fw_async_midi_port_init(struct snd_fw_async_midi_port *port, - struct fw_unit *unit, u64 addr) + struct fw_unit *unit) { port->buf = kzalloc(4, GFP_KERNEL); if (port->buf == NULL) return -ENOMEM; port->parent = fw_parent_device(unit); - port->addr = addr; port->idling = true; port->next_ktime = 0; port->error = false; @@ -336,8 +336,7 @@ int snd_tscm_transaction_register(struct snd_tscm *tscm) for (i = 0; i < TSCM_MIDI_OUT_PORT_MAX; i++) { err = snd_fw_async_midi_port_init( - &tscm->out_ports[i], tscm->unit, - TSCM_ADDR_BASE + TSCM_OFFSET_MIDI_RX_QUAD); + &tscm->out_ports[i], tscm->unit); if (err < 0) goto error; } |