Lines Matching refs:tscm

63 	struct snd_tscm *tscm = substream->rmidi->private_data;  in fill_message()  local
78 if (tscm->on_sysex[port]) { in fill_message()
82 tscm->on_sysex[port] = false; in fill_message()
88 if (!tscm->on_sysex[port]) { in fill_message()
104 tscm->on_sysex[port] = true; in fill_message()
109 status = tscm->running_status[port]; in fill_message()
127 msg[0] = tscm->running_status[port]; in fill_message()
134 tscm->running_status[port] = msg[0]; in fill_message()
152 struct snd_tscm *tscm = callback_data; in handle_midi_tx() local
161 if (offset != tscm->async_handler.offset) in handle_midi_tx()
170 if (port >= tscm->spec->midi_capture_ports) in handle_midi_tx()
186 substream = ACCESS_ONCE(tscm->tx_midi_substreams[port]); in handle_midi_tx()
194 int snd_tscm_transaction_register(struct snd_tscm *tscm) in snd_tscm_transaction_register() argument
208 tscm->async_handler.length = 8 * 8; in snd_tscm_transaction_register()
209 tscm->async_handler.address_callback = handle_midi_tx; in snd_tscm_transaction_register()
210 tscm->async_handler.callback_data = tscm; in snd_tscm_transaction_register()
212 err = fw_core_add_address_handler(&tscm->async_handler, in snd_tscm_transaction_register()
217 err = snd_tscm_transaction_reregister(tscm); in snd_tscm_transaction_register()
223 &tscm->out_ports[i], tscm->unit, in snd_tscm_transaction_register()
232 fw_core_remove_address_handler(&tscm->async_handler); in snd_tscm_transaction_register()
237 int snd_tscm_transaction_reregister(struct snd_tscm *tscm) in snd_tscm_transaction_reregister() argument
239 struct fw_device *device = fw_parent_device(tscm->unit); in snd_tscm_transaction_reregister()
245 (tscm->async_handler.offset >> 32)); in snd_tscm_transaction_reregister()
246 err = snd_fw_transaction(tscm->unit, TCODE_WRITE_QUADLET_REQUEST, in snd_tscm_transaction_reregister()
252 reg = cpu_to_be32(tscm->async_handler.offset); in snd_tscm_transaction_reregister()
253 err = snd_fw_transaction(tscm->unit, TCODE_WRITE_QUADLET_REQUEST, in snd_tscm_transaction_reregister()
261 err = snd_fw_transaction(tscm->unit, TCODE_WRITE_QUADLET_REQUEST, in snd_tscm_transaction_reregister()
269 return snd_fw_transaction(tscm->unit, TCODE_WRITE_QUADLET_REQUEST, in snd_tscm_transaction_reregister()
274 void snd_tscm_transaction_unregister(struct snd_tscm *tscm) in snd_tscm_transaction_unregister() argument
281 snd_fw_transaction(tscm->unit, TCODE_WRITE_QUADLET_REQUEST, in snd_tscm_transaction_unregister()
287 snd_fw_transaction(tscm->unit, TCODE_WRITE_QUADLET_REQUEST, in snd_tscm_transaction_unregister()
292 snd_fw_transaction(tscm->unit, TCODE_WRITE_QUADLET_REQUEST, in snd_tscm_transaction_unregister()
295 snd_fw_transaction(tscm->unit, TCODE_WRITE_QUADLET_REQUEST, in snd_tscm_transaction_unregister()
299 fw_core_remove_address_handler(&tscm->async_handler); in snd_tscm_transaction_unregister()
301 snd_fw_async_midi_port_destroy(&tscm->out_ports[i]); in snd_tscm_transaction_unregister()