Commit 9bae2150 authored by Takashi Sakamoto's avatar Takashi Sakamoto Committed by Takashi Iwai

ALSA: firewire-tascam: remove callback function from async midi port

As a result of localization of async midi port, ALSA driver for TASCAM
FireWire series can call helper function directly instead of callback
registration.

This commit removes the redundant design.
Signed-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 531f4718
...@@ -197,7 +197,7 @@ static void midi_port_work(struct work_struct *work) ...@@ -197,7 +197,7 @@ static void midi_port_work(struct work_struct *work)
* Later, snd_rawmidi_transmit_ack() is called. * Later, snd_rawmidi_transmit_ack() is called.
*/ */
memset(port->buf, 0, port->len); memset(port->buf, 0, port->len);
port->consume_bytes = port->fill(substream, port->buf); port->consume_bytes = fill_message(substream, port->buf);
if (port->consume_bytes <= 0) { if (port->consume_bytes <= 0) {
/* Do it in next chance, immediately. */ /* Do it in next chance, immediately. */
if (port->consume_bytes == 0) { if (port->consume_bytes == 0) {
...@@ -242,8 +242,7 @@ static void midi_port_work(struct work_struct *work) ...@@ -242,8 +242,7 @@ static void midi_port_work(struct work_struct *work)
} }
int snd_fw_async_midi_port_init(struct snd_fw_async_midi_port *port, int snd_fw_async_midi_port_init(struct snd_fw_async_midi_port *port,
struct fw_unit *unit, u64 addr, unsigned int len, struct fw_unit *unit, u64 addr, unsigned int len)
snd_fw_async_midi_port_fill fill)
{ {
port->len = DIV_ROUND_UP(len, 4) * 4; port->len = DIV_ROUND_UP(len, 4) * 4;
port->buf = kzalloc(port->len, GFP_KERNEL); port->buf = kzalloc(port->len, GFP_KERNEL);
...@@ -252,7 +251,6 @@ int snd_fw_async_midi_port_init(struct snd_fw_async_midi_port *port, ...@@ -252,7 +251,6 @@ int snd_fw_async_midi_port_init(struct snd_fw_async_midi_port *port,
port->parent = fw_parent_device(unit); port->parent = fw_parent_device(unit);
port->addr = addr; port->addr = addr;
port->fill = fill;
port->idling = true; port->idling = true;
port->next_ktime = 0; port->next_ktime = 0;
port->error = false; port->error = false;
...@@ -347,7 +345,7 @@ int snd_tscm_transaction_register(struct snd_tscm *tscm) ...@@ -347,7 +345,7 @@ int snd_tscm_transaction_register(struct snd_tscm *tscm)
err = snd_fw_async_midi_port_init( err = snd_fw_async_midi_port_init(
&tscm->out_ports[i], tscm->unit, &tscm->out_ports[i], tscm->unit,
TSCM_ADDR_BASE + TSCM_OFFSET_MIDI_RX_QUAD, TSCM_ADDR_BASE + TSCM_OFFSET_MIDI_RX_QUAD,
4, fill_message); 4);
if (err < 0) if (err < 0)
goto error; goto error;
} }
......
...@@ -45,11 +45,6 @@ struct snd_tscm_spec { ...@@ -45,11 +45,6 @@ struct snd_tscm_spec {
#define TSCM_MIDI_IN_PORT_MAX 4 #define TSCM_MIDI_IN_PORT_MAX 4
#define TSCM_MIDI_OUT_PORT_MAX 4 #define TSCM_MIDI_OUT_PORT_MAX 4
struct snd_fw_async_midi_port;
typedef int (*snd_fw_async_midi_port_fill)(
struct snd_rawmidi_substream *substream,
u8 *buf);
struct snd_fw_async_midi_port { struct snd_fw_async_midi_port {
struct fw_device *parent; struct fw_device *parent;
struct work_struct work; struct work_struct work;
...@@ -64,7 +59,6 @@ struct snd_fw_async_midi_port { ...@@ -64,7 +59,6 @@ struct snd_fw_async_midi_port {
unsigned int len; unsigned int len;
struct snd_rawmidi_substream *substream; struct snd_rawmidi_substream *substream;
snd_fw_async_midi_port_fill fill;
int consume_bytes; int consume_bytes;
}; };
...@@ -155,8 +149,7 @@ int snd_tscm_stream_lock_try(struct snd_tscm *tscm); ...@@ -155,8 +149,7 @@ int snd_tscm_stream_lock_try(struct snd_tscm *tscm);
void snd_tscm_stream_lock_release(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, int snd_fw_async_midi_port_init(struct snd_fw_async_midi_port *port,
struct fw_unit *unit, u64 addr, unsigned int len, struct fw_unit *unit, u64 addr, unsigned int len);
snd_fw_async_midi_port_fill fill);
void snd_fw_async_midi_port_destroy(struct snd_fw_async_midi_port *port); void snd_fw_async_midi_port_destroy(struct snd_fw_async_midi_port *port);
static inline void static inline void
......
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