ALSA: firewire-tascam: remove callback function from async midi port
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>
Fri, 14 Apr 2017 07:46:26 +0000 (16:46 +0900)
committerTakashi Iwai <tiwai@suse.de>
Fri, 14 Apr 2017 12:50:29 +0000 (14:50 +0200)
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: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/firewire/tascam/tascam-transaction.c
sound/firewire/tascam/tascam.h

index 8ba006e456e88e398fb5d03b929bdb0ebe7f8c1a..dcbc0033a3adde9bd5ce96a2ced783e5516c5eaa 100644 (file)
@@ -197,7 +197,7 @@ static void midi_port_work(struct work_struct *work)
         * Later, snd_rawmidi_transmit_ack() is called.
         */
        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) {
                /* Do it in next chance, immediately. */
                if (port->consume_bytes == 0) {
@@ -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,
-               struct fw_unit *unit, u64 addr, unsigned int len,
-               snd_fw_async_midi_port_fill fill)
+               struct fw_unit *unit, u64 addr, unsigned int len)
 {
        port->len = DIV_ROUND_UP(len, 4) * 4;
        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,
 
        port->parent = fw_parent_device(unit);
        port->addr = addr;
-       port->fill = fill;
        port->idling = true;
        port->next_ktime = 0;
        port->error = false;
@@ -347,7 +345,7 @@ int snd_tscm_transaction_register(struct snd_tscm *tscm)
                err = snd_fw_async_midi_port_init(
                                &tscm->out_ports[i], tscm->unit,
                                TSCM_ADDR_BASE + TSCM_OFFSET_MIDI_RX_QUAD,
-                               4, fill_message);
+                               4);
                if (err < 0)
                        goto error;
        }
index de76313e5d50d43f1a2af2e2898f97646f25cdbe..116a2003f19e98f9c5c9bb7ce212bce0512fe03c 100644 (file)
@@ -45,11 +45,6 @@ struct snd_tscm_spec {
 #define TSCM_MIDI_IN_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 fw_device *parent;
        struct work_struct work;
@@ -64,7 +59,6 @@ struct snd_fw_async_midi_port {
        unsigned int len;
 
        struct snd_rawmidi_substream *substream;
-       snd_fw_async_midi_port_fill fill;
        int consume_bytes;
 };
 
@@ -155,8 +149,7 @@ 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, u64 addr, unsigned int len,
-               snd_fw_async_midi_port_fill fill);
+               struct fw_unit *unit, u64 addr, unsigned int len);
 void snd_fw_async_midi_port_destroy(struct snd_fw_async_midi_port *port);
 
 static inline void