Lines Matching refs:tscm

250 	struct snd_tscm *tscm = callback_data;
259 if (offset != tscm->async_handler.offset)
268 if (port >= tscm->spec->midi_capture_ports)
284 substream = READ_ONCE(tscm->tx_midi_substreams[port]);
292 int snd_tscm_transaction_register(struct snd_tscm *tscm)
306 tscm->async_handler.length = 8 * 8;
307 tscm->async_handler.address_callback = handle_midi_tx;
308 tscm->async_handler.callback_data = tscm;
310 err = fw_core_add_address_handler(&tscm->async_handler,
315 err = snd_tscm_transaction_reregister(tscm);
320 tscm->out_ports[i].parent = fw_parent_device(tscm->unit);
321 tscm->out_ports[i].next_ktime = 0;
322 INIT_WORK(&tscm->out_ports[i].work, midi_port_work);
327 fw_core_remove_address_handler(&tscm->async_handler);
328 tscm->async_handler.callback_data = NULL;
333 int snd_tscm_transaction_reregister(struct snd_tscm *tscm)
335 struct fw_device *device = fw_parent_device(tscm->unit);
341 (tscm->async_handler.offset >> 32));
342 err = snd_fw_transaction(tscm->unit, TCODE_WRITE_QUADLET_REQUEST,
348 reg = cpu_to_be32(tscm->async_handler.offset);
349 err = snd_fw_transaction(tscm->unit, TCODE_WRITE_QUADLET_REQUEST,
357 err = snd_fw_transaction(tscm->unit, TCODE_WRITE_QUADLET_REQUEST,
365 return snd_fw_transaction(tscm->unit, TCODE_WRITE_QUADLET_REQUEST,
370 void snd_tscm_transaction_unregister(struct snd_tscm *tscm)
374 if (tscm->async_handler.callback_data == NULL)
379 snd_fw_transaction(tscm->unit, TCODE_WRITE_QUADLET_REQUEST,
385 snd_fw_transaction(tscm->unit, TCODE_WRITE_QUADLET_REQUEST,
390 snd_fw_transaction(tscm->unit, TCODE_WRITE_QUADLET_REQUEST,
393 snd_fw_transaction(tscm->unit, TCODE_WRITE_QUADLET_REQUEST,
397 fw_core_remove_address_handler(&tscm->async_handler);
398 tscm->async_handler.callback_data = NULL;