35 #define ca_midi_write_data(midi, data) midi->write(midi, data, 0)
36 #define ca_midi_write_cmd(midi, data) midi->write(midi, data, 1)
37 #define ca_midi_read_data(midi) midi->read(midi, 0)
38 #define ca_midi_read_stat(midi) midi->read(midi, 1)
39 #define ca_midi_input_avail(midi) (!(ca_midi_read_stat(midi) & midi->input_avail))
40 #define ca_midi_output_ready(midi) (!(ca_midi_read_stat(midi) & midi->output_ready))
42 static void ca_midi_clear_rx(
struct snd_ca_midi *midi)
47 #ifdef CONFIG_SND_DEBUG
66 ca_midi_clear_rx(midi);
103 while (!ok && timeout-- > 0) {
114 spin_unlock_irqrestore(&midi->
input_lock, flags);
116 snd_printk(
KERN_ERR "ca_midi_cmd: 0x%x failed at 0x%x (status = 0x%x, data = 0x%x)!!!\n",
134 spin_unlock_irqrestore(&midi->
open_lock, flags);
135 ca_midi_cmd(midi, midi->
reset, 1);
138 spin_unlock_irqrestore(&midi->
open_lock, flags);
154 spin_unlock_irqrestore(&midi->
open_lock, flags);
155 ca_midi_cmd(midi, midi->
reset, 1);
158 spin_unlock_irqrestore(&midi->
open_lock, flags);
175 spin_unlock_irqrestore(&midi->
open_lock, flags);
176 ca_midi_cmd(midi, midi->
reset, 0);
178 spin_unlock_irqrestore(&midi->
open_lock, flags);
198 spin_unlock_irqrestore(&midi->
open_lock, flags);
199 ca_midi_cmd(midi, midi->
reset, 0);
201 spin_unlock_irqrestore(&midi->
open_lock, flags);
260 .open = ca_midi_output_open,
261 .close = ca_midi_output_close,
262 .trigger = ca_midi_output_trigger,
267 .open = ca_midi_input_open,
268 .close = ca_midi_input_close,
269 .trigger = ca_midi_input_trigger,
284 static void ca_rmidi_free(
struct snd_rawmidi *rmidi)