Skip to content

Commit

Permalink
ALSA: fireface: add model-dependent parameter for address to receive …
Browse files Browse the repository at this point in the history
…async transaction for MIDI messages

Between former and latter models, destination address to receive
asynchronous transactions for MIDI messages is different.

This commit adds model-dependent parameter for the addresses.

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
  • Loading branch information
takaswie authored and tiwai committed Jan 22, 2019
1 parent 73f5537 commit 481e09a
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 5 deletions.
7 changes: 2 additions & 5 deletions sound/firewire/fireface/ff-transaction.c
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,6 @@

#include "ff.h"

#define SND_FF_REG_MIDI_RX_PORT_0 0x000080180000ull
#define SND_FF_REG_MIDI_RX_PORT_1 0x000080190000ull

static void finish_transmit_midi_msg(struct snd_ff *ff, unsigned int port,
int rcode)
{
Expand Down Expand Up @@ -93,10 +90,10 @@ static void transmit_midi_msg(struct snd_ff *ff, unsigned int port)
fill_midi_buf(ff, port, i, buf[i]);

if (port == 0) {
addr = SND_FF_REG_MIDI_RX_PORT_0;
addr = ff->spec->midi_rx_addrs[0];
callback = finish_transmit_midi0_msg;
} else {
addr = SND_FF_REG_MIDI_RX_PORT_1;
addr = ff->spec->midi_rx_addrs[1];
callback = finish_transmit_midi1_msg;
}

Expand Down
3 changes: 3 additions & 0 deletions sound/firewire/fireface/ff.c
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,7 @@ static const struct snd_ff_spec spec_ff800 = {
.protocol = &snd_ff_protocol_ff800,
.midi_high_addr = 0x000200000320ull,
.midi_addr_range = 12,
.midi_rx_addrs = {0x000080180000ull, 0},
};

static const struct snd_ff_spec spec_ff400 = {
Expand All @@ -165,6 +166,7 @@ static const struct snd_ff_spec spec_ff400 = {
.protocol = &snd_ff_protocol_ff400,
.midi_high_addr = 0x0000801003f4ull,
.midi_addr_range = SND_FF_MAXIMIM_MIDI_QUADS * 4,
.midi_rx_addrs = {0x000080180000ull, 0x000080190000ull},
};

static const struct snd_ff_spec spec_ucx = {
Expand All @@ -175,6 +177,7 @@ static const struct snd_ff_spec spec_ucx = {
.protocol = &snd_ff_protocol_latter,
.midi_high_addr = 0xffff00000034ull,
.midi_addr_range = 0x80,
.midi_rx_addrs = {0xffff00000030ull, 0xffff00000030ull},
};

static const struct ieee1394_device_id snd_ff_id_table[] = {
Expand Down
1 change: 1 addition & 0 deletions sound/firewire/fireface/ff.h
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ struct snd_ff_spec {
const struct snd_ff_protocol *protocol;
u64 midi_high_addr;
u8 midi_addr_range;
u64 midi_rx_addrs[SND_FF_OUT_MIDI_PORTS];
};

struct snd_ff {
Expand Down

0 comments on commit 481e09a

Please sign in to comment.