Commit 0085c6ed authored by Takashi Sakamoto's avatar Takashi Sakamoto Committed by Takashi Iwai

ALSA: fireface: share register for async transaction of MIDI messages

As long as investigating packet dumps from Fireface 400/800, a register
to receive asynchronous transactions for MIDI messages is the same. For
Fireface 800, minor register is used.

This commit declares macros for the transactions and obsoletes
model-specific parameters.
Signed-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 5bfb841e
...@@ -16,8 +16,6 @@ ...@@ -16,8 +16,6 @@
#define FF400_ISOC_COMM_STOP 0x000080100510ull #define FF400_ISOC_COMM_STOP 0x000080100510ull
#define FF400_MIDI_HIGH_ADDR 0x0000801003f4ull #define FF400_MIDI_HIGH_ADDR 0x0000801003f4ull
#define FF400_MIDI_RX_PORT_0 0x000080180000ull
#define FF400_MIDI_RX_PORT_1 0x000080190000ull
static int ff400_begin_session(struct snd_ff *ff, unsigned int rate) static int ff400_begin_session(struct snd_ff *ff, unsigned int rate)
{ {
...@@ -115,6 +113,4 @@ const struct snd_ff_protocol snd_ff_protocol_ff400 = { ...@@ -115,6 +113,4 @@ const struct snd_ff_protocol snd_ff_protocol_ff400 = {
.switch_fetching_mode = ff400_switch_fetching_mode, .switch_fetching_mode = ff400_switch_fetching_mode,
.midi_high_addr_reg = FF400_MIDI_HIGH_ADDR, .midi_high_addr_reg = FF400_MIDI_HIGH_ADDR,
.midi_rx_port_0_reg = FF400_MIDI_RX_PORT_0,
.midi_rx_port_1_reg = FF400_MIDI_RX_PORT_1,
}; };
...@@ -8,6 +8,9 @@ ...@@ -8,6 +8,9 @@
#include "ff.h" #include "ff.h"
#define SND_FF_REG_MIDI_RX_PORT_0 0x000080180000ull
#define SND_FF_REG_MIDI_RX_PORT_1 0x000080190000ull
int snd_ff_transaction_get_clock(struct snd_ff *ff, unsigned int *rate, int snd_ff_transaction_get_clock(struct snd_ff *ff, unsigned int *rate,
enum snd_ff_clock_src *src) enum snd_ff_clock_src *src)
{ {
...@@ -153,10 +156,10 @@ static void transmit_midi_msg(struct snd_ff *ff, unsigned int port) ...@@ -153,10 +156,10 @@ static void transmit_midi_msg(struct snd_ff *ff, unsigned int port)
fill_midi_buf(ff, port, i, buf[i]); fill_midi_buf(ff, port, i, buf[i]);
if (port == 0) { if (port == 0) {
addr = ff->spec->protocol->midi_rx_port_0_reg; addr = SND_FF_REG_MIDI_RX_PORT_0;
callback = finish_transmit_midi0_msg; callback = finish_transmit_midi0_msg;
} else { } else {
addr = ff->spec->protocol->midi_rx_port_1_reg; addr = SND_FF_REG_MIDI_RX_PORT_1;
callback = finish_transmit_midi1_msg; callback = finish_transmit_midi1_msg;
} }
......
...@@ -107,8 +107,6 @@ struct snd_ff_protocol { ...@@ -107,8 +107,6 @@ struct snd_ff_protocol {
int (*switch_fetching_mode)(struct snd_ff *ff, bool enable); int (*switch_fetching_mode)(struct snd_ff *ff, bool enable);
u64 midi_high_addr_reg; u64 midi_high_addr_reg;
u64 midi_rx_port_0_reg;
u64 midi_rx_port_1_reg;
}; };
extern const struct snd_ff_protocol snd_ff_protocol_ff400; extern const struct snd_ff_protocol snd_ff_protocol_ff400;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment