motu               84 sound/firewire/motu/amdtp-motu-trace.h #define TRACE_INCLUDE_FILE	amdtp-motu-trace
motu               22 sound/firewire/motu/motu-hwdep.c 	struct snd_motu *motu = hwdep->private_data;
motu               26 sound/firewire/motu/motu-hwdep.c 	spin_lock_irq(&motu->lock);
motu               28 sound/firewire/motu/motu-hwdep.c 	while (!motu->dev_lock_changed && motu->msg == 0) {
motu               29 sound/firewire/motu/motu-hwdep.c 		prepare_to_wait(&motu->hwdep_wait, &wait, TASK_INTERRUPTIBLE);
motu               30 sound/firewire/motu/motu-hwdep.c 		spin_unlock_irq(&motu->lock);
motu               32 sound/firewire/motu/motu-hwdep.c 		finish_wait(&motu->hwdep_wait, &wait);
motu               35 sound/firewire/motu/motu-hwdep.c 		spin_lock_irq(&motu->lock);
motu               39 sound/firewire/motu/motu-hwdep.c 	if (motu->dev_lock_changed) {
motu               41 sound/firewire/motu/motu-hwdep.c 		event.lock_status.status = (motu->dev_lock_count > 0);
motu               42 sound/firewire/motu/motu-hwdep.c 		motu->dev_lock_changed = false;
motu               47 sound/firewire/motu/motu-hwdep.c 		event.motu_notification.message = motu->msg;
motu               48 sound/firewire/motu/motu-hwdep.c 		motu->msg = 0;
motu               53 sound/firewire/motu/motu-hwdep.c 	spin_unlock_irq(&motu->lock);
motu               64 sound/firewire/motu/motu-hwdep.c 	struct snd_motu *motu = hwdep->private_data;
motu               67 sound/firewire/motu/motu-hwdep.c 	poll_wait(file, &motu->hwdep_wait, wait);
motu               69 sound/firewire/motu/motu-hwdep.c 	spin_lock_irq(&motu->lock);
motu               70 sound/firewire/motu/motu-hwdep.c 	if (motu->dev_lock_changed || motu->msg)
motu               74 sound/firewire/motu/motu-hwdep.c 	spin_unlock_irq(&motu->lock);
motu               79 sound/firewire/motu/motu-hwdep.c static int hwdep_get_info(struct snd_motu *motu, void __user *arg)
motu               81 sound/firewire/motu/motu-hwdep.c 	struct fw_device *dev = fw_parent_device(motu->unit);
motu               98 sound/firewire/motu/motu-hwdep.c static int hwdep_lock(struct snd_motu *motu)
motu              102 sound/firewire/motu/motu-hwdep.c 	spin_lock_irq(&motu->lock);
motu              104 sound/firewire/motu/motu-hwdep.c 	if (motu->dev_lock_count == 0) {
motu              105 sound/firewire/motu/motu-hwdep.c 		motu->dev_lock_count = -1;
motu              111 sound/firewire/motu/motu-hwdep.c 	spin_unlock_irq(&motu->lock);
motu              116 sound/firewire/motu/motu-hwdep.c static int hwdep_unlock(struct snd_motu *motu)
motu              120 sound/firewire/motu/motu-hwdep.c 	spin_lock_irq(&motu->lock);
motu              122 sound/firewire/motu/motu-hwdep.c 	if (motu->dev_lock_count == -1) {
motu              123 sound/firewire/motu/motu-hwdep.c 		motu->dev_lock_count = 0;
motu              129 sound/firewire/motu/motu-hwdep.c 	spin_unlock_irq(&motu->lock);
motu              136 sound/firewire/motu/motu-hwdep.c 	struct snd_motu *motu = hwdep->private_data;
motu              138 sound/firewire/motu/motu-hwdep.c 	spin_lock_irq(&motu->lock);
motu              139 sound/firewire/motu/motu-hwdep.c 	if (motu->dev_lock_count == -1)
motu              140 sound/firewire/motu/motu-hwdep.c 		motu->dev_lock_count = 0;
motu              141 sound/firewire/motu/motu-hwdep.c 	spin_unlock_irq(&motu->lock);
motu              149 sound/firewire/motu/motu-hwdep.c 	struct snd_motu *motu = hwdep->private_data;
motu              153 sound/firewire/motu/motu-hwdep.c 		return hwdep_get_info(motu, (void __user *)arg);
motu              155 sound/firewire/motu/motu-hwdep.c 		return hwdep_lock(motu);
motu              157 sound/firewire/motu/motu-hwdep.c 		return hwdep_unlock(motu);
motu              174 sound/firewire/motu/motu-hwdep.c int snd_motu_create_hwdep_device(struct snd_motu *motu)
motu              186 sound/firewire/motu/motu-hwdep.c 	err = snd_hwdep_new(motu->card, motu->card->driver, 0, &hwdep);
motu              193 sound/firewire/motu/motu-hwdep.c 	hwdep->private_data = motu;
motu               11 sound/firewire/motu/motu-midi.c 	struct snd_motu *motu = substream->rmidi->private_data;
motu               14 sound/firewire/motu/motu-midi.c 	err = snd_motu_stream_lock_try(motu);
motu               18 sound/firewire/motu/motu-midi.c 	mutex_lock(&motu->mutex);
motu               20 sound/firewire/motu/motu-midi.c 	err = snd_motu_stream_reserve_duplex(motu, 0);
motu               22 sound/firewire/motu/motu-midi.c 		++motu->substreams_counter;
motu               23 sound/firewire/motu/motu-midi.c 		err = snd_motu_stream_start_duplex(motu);
motu               25 sound/firewire/motu/motu-midi.c 			--motu->substreams_counter;
motu               28 sound/firewire/motu/motu-midi.c 	mutex_unlock(&motu->mutex);
motu               31 sound/firewire/motu/motu-midi.c 		snd_motu_stream_lock_release(motu);
motu               38 sound/firewire/motu/motu-midi.c 	struct snd_motu *motu = substream->rmidi->private_data;
motu               40 sound/firewire/motu/motu-midi.c 	mutex_lock(&motu->mutex);
motu               42 sound/firewire/motu/motu-midi.c 	--motu->substreams_counter;
motu               43 sound/firewire/motu/motu-midi.c 	snd_motu_stream_stop_duplex(motu);
motu               45 sound/firewire/motu/motu-midi.c 	mutex_unlock(&motu->mutex);
motu               47 sound/firewire/motu/motu-midi.c 	snd_motu_stream_lock_release(motu);
motu               53 sound/firewire/motu/motu-midi.c 	struct snd_motu *motu = substrm->rmidi->private_data;
motu               56 sound/firewire/motu/motu-midi.c 	spin_lock_irqsave(&motu->lock, flags);
motu               59 sound/firewire/motu/motu-midi.c 		amdtp_motu_midi_trigger(&motu->tx_stream, substrm->number,
motu               62 sound/firewire/motu/motu-midi.c 		amdtp_motu_midi_trigger(&motu->tx_stream, substrm->number,
motu               65 sound/firewire/motu/motu-midi.c 	spin_unlock_irqrestore(&motu->lock, flags);
motu               70 sound/firewire/motu/motu-midi.c 	struct snd_motu *motu = substrm->rmidi->private_data;
motu               73 sound/firewire/motu/motu-midi.c 	spin_lock_irqsave(&motu->lock, flags);
motu               76 sound/firewire/motu/motu-midi.c 		amdtp_motu_midi_trigger(&motu->rx_stream, substrm->number,
motu               79 sound/firewire/motu/motu-midi.c 		amdtp_motu_midi_trigger(&motu->rx_stream, substrm->number,
motu               82 sound/firewire/motu/motu-midi.c 	spin_unlock_irqrestore(&motu->lock, flags);
motu               85 sound/firewire/motu/motu-midi.c static void set_midi_substream_names(struct snd_motu *motu,
motu               92 sound/firewire/motu/motu-midi.c 			 "%s MIDI %d", motu->card->shortname, subs->number + 1);
motu               96 sound/firewire/motu/motu-midi.c int snd_motu_create_midi_devices(struct snd_motu *motu)
motu              113 sound/firewire/motu/motu-midi.c 	err = snd_rawmidi_new(motu->card, motu->card->driver, 0, 1, 1, &rmidi);
motu              118 sound/firewire/motu/motu-midi.c 		 "%s MIDI", motu->card->shortname);
motu              119 sound/firewire/motu/motu-midi.c 	rmidi->private_data = motu;
motu              128 sound/firewire/motu/motu-midi.c 	set_midi_substream_names(motu, str);
motu              133 sound/firewire/motu/motu-midi.c 	set_midi_substream_names(motu, str);
motu               71 sound/firewire/motu/motu-pcm.c static void limit_channels_and_rates(struct snd_motu *motu,
motu               98 sound/firewire/motu/motu-pcm.c static int init_hw_info(struct snd_motu *motu,
motu              109 sound/firewire/motu/motu-pcm.c 		stream = &motu->tx_stream;
motu              110 sound/firewire/motu/motu-pcm.c 		formats = &motu->tx_packet_formats;
motu              113 sound/firewire/motu/motu-pcm.c 		stream = &motu->rx_stream;
motu              114 sound/firewire/motu/motu-pcm.c 		formats = &motu->rx_packet_formats;
motu              117 sound/firewire/motu/motu-pcm.c 	limit_channels_and_rates(motu, runtime, formats);
motu              135 sound/firewire/motu/motu-pcm.c 	struct snd_motu *motu = substream->private_data;
motu              136 sound/firewire/motu/motu-pcm.c 	const struct snd_motu_protocol *const protocol = motu->spec->protocol;
motu              141 sound/firewire/motu/motu-pcm.c 	err = snd_motu_stream_lock_try(motu);
motu              145 sound/firewire/motu/motu-pcm.c 	mutex_lock(&motu->mutex);
motu              147 sound/firewire/motu/motu-pcm.c 	err = snd_motu_stream_cache_packet_formats(motu);
motu              151 sound/firewire/motu/motu-pcm.c 	err = init_hw_info(motu, substream);
motu              159 sound/firewire/motu/motu-pcm.c 	err = protocol->get_clock_source(motu, &src);
motu              163 sound/firewire/motu/motu-pcm.c 	    amdtp_stream_pcm_running(&motu->tx_stream) ||
motu              164 sound/firewire/motu/motu-pcm.c 	    amdtp_stream_pcm_running(&motu->rx_stream)) {
motu              165 sound/firewire/motu/motu-pcm.c 		err = protocol->get_clock_rate(motu, &rate);
motu              174 sound/firewire/motu/motu-pcm.c 	mutex_unlock(&motu->mutex);
motu              178 sound/firewire/motu/motu-pcm.c 	mutex_unlock(&motu->mutex);
motu              179 sound/firewire/motu/motu-pcm.c 	snd_motu_stream_lock_release(motu);
motu              185 sound/firewire/motu/motu-pcm.c 	struct snd_motu *motu = substream->private_data;
motu              187 sound/firewire/motu/motu-pcm.c 	snd_motu_stream_lock_release(motu);
motu              195 sound/firewire/motu/motu-pcm.c 	struct snd_motu *motu = substream->private_data;
motu              206 sound/firewire/motu/motu-pcm.c 		mutex_lock(&motu->mutex);
motu              207 sound/firewire/motu/motu-pcm.c 		err = snd_motu_stream_reserve_duplex(motu, rate);
motu              209 sound/firewire/motu/motu-pcm.c 			++motu->substreams_counter;
motu              210 sound/firewire/motu/motu-pcm.c 		mutex_unlock(&motu->mutex);
motu              218 sound/firewire/motu/motu-pcm.c 	struct snd_motu *motu = substream->private_data;
motu              220 sound/firewire/motu/motu-pcm.c 	mutex_lock(&motu->mutex);
motu              223 sound/firewire/motu/motu-pcm.c 		--motu->substreams_counter;
motu              225 sound/firewire/motu/motu-pcm.c 	snd_motu_stream_stop_duplex(motu);
motu              227 sound/firewire/motu/motu-pcm.c 	mutex_unlock(&motu->mutex);
motu              234 sound/firewire/motu/motu-pcm.c 	struct snd_motu *motu = substream->private_data;
motu              237 sound/firewire/motu/motu-pcm.c 	mutex_lock(&motu->mutex);
motu              238 sound/firewire/motu/motu-pcm.c 	err = snd_motu_stream_start_duplex(motu);
motu              239 sound/firewire/motu/motu-pcm.c 	mutex_unlock(&motu->mutex);
motu              241 sound/firewire/motu/motu-pcm.c 		amdtp_stream_pcm_prepare(&motu->tx_stream);
motu              247 sound/firewire/motu/motu-pcm.c 	struct snd_motu *motu = substream->private_data;
motu              250 sound/firewire/motu/motu-pcm.c 	mutex_lock(&motu->mutex);
motu              251 sound/firewire/motu/motu-pcm.c 	err = snd_motu_stream_start_duplex(motu);
motu              252 sound/firewire/motu/motu-pcm.c 	mutex_unlock(&motu->mutex);
motu              254 sound/firewire/motu/motu-pcm.c 		amdtp_stream_pcm_prepare(&motu->rx_stream);
motu              261 sound/firewire/motu/motu-pcm.c 	struct snd_motu *motu = substream->private_data;
motu              265 sound/firewire/motu/motu-pcm.c 		amdtp_stream_pcm_trigger(&motu->tx_stream, substream);
motu              268 sound/firewire/motu/motu-pcm.c 		amdtp_stream_pcm_trigger(&motu->tx_stream, NULL);
motu              278 sound/firewire/motu/motu-pcm.c 	struct snd_motu *motu = substream->private_data;
motu              282 sound/firewire/motu/motu-pcm.c 		amdtp_stream_pcm_trigger(&motu->rx_stream, substream);
motu              285 sound/firewire/motu/motu-pcm.c 		amdtp_stream_pcm_trigger(&motu->rx_stream, NULL);
motu              296 sound/firewire/motu/motu-pcm.c 	struct snd_motu *motu = substream->private_data;
motu              298 sound/firewire/motu/motu-pcm.c 	return amdtp_stream_pcm_pointer(&motu->tx_stream);
motu              302 sound/firewire/motu/motu-pcm.c 	struct snd_motu *motu = substream->private_data;
motu              304 sound/firewire/motu/motu-pcm.c 	return amdtp_stream_pcm_pointer(&motu->rx_stream);
motu              309 sound/firewire/motu/motu-pcm.c 	struct snd_motu *motu = substream->private_data;
motu              311 sound/firewire/motu/motu-pcm.c 	return amdtp_stream_pcm_ack(&motu->tx_stream);
motu              316 sound/firewire/motu/motu-pcm.c 	struct snd_motu *motu = substream->private_data;
motu              318 sound/firewire/motu/motu-pcm.c 	return amdtp_stream_pcm_ack(&motu->rx_stream);
motu              321 sound/firewire/motu/motu-pcm.c int snd_motu_create_pcm_devices(struct snd_motu *motu)
motu              350 sound/firewire/motu/motu-pcm.c 	err = snd_pcm_new(motu->card, motu->card->driver, 0, 1, 1, &pcm);
motu              353 sound/firewire/motu/motu-pcm.c 	pcm->private_data = motu;
motu              354 sound/firewire/motu/motu-pcm.c 	strcpy(pcm->name, motu->card->shortname);
motu               28 sound/firewire/motu/motu-proc.c 	struct snd_motu *motu = entry->private_data;
motu               29 sound/firewire/motu/motu-proc.c 	const struct snd_motu_protocol *const protocol = motu->spec->protocol;
motu               33 sound/firewire/motu/motu-proc.c 	if (protocol->get_clock_rate(motu, &rate) < 0)
motu               35 sound/firewire/motu/motu-proc.c 	if (protocol->get_clock_source(motu, &source) < 0)
motu               45 sound/firewire/motu/motu-proc.c 	struct snd_motu *motu = entry->private_data;
motu               46 sound/firewire/motu/motu-proc.c 	const struct snd_motu_protocol *const protocol = motu->spec->protocol;
motu               51 sound/firewire/motu/motu-proc.c 	if (protocol->cache_packet_formats(motu) < 0)
motu               58 sound/firewire/motu/motu-proc.c 		formats = &motu->tx_packet_formats;
motu               71 sound/firewire/motu/motu-proc.c 		formats = &motu->rx_packet_formats;
motu               81 sound/firewire/motu/motu-proc.c static void add_node(struct snd_motu *motu, struct snd_info_entry *root,
motu               88 sound/firewire/motu/motu-proc.c 	entry = snd_info_create_card_entry(motu->card, name, root);
motu               90 sound/firewire/motu/motu-proc.c 		snd_info_set_text_ops(entry, motu, op);
motu               93 sound/firewire/motu/motu-proc.c void snd_motu_proc_init(struct snd_motu *motu)
motu              101 sound/firewire/motu/motu-proc.c 	root = snd_info_create_card_entry(motu->card, "firewire",
motu              102 sound/firewire/motu/motu-proc.c 					  motu->card->proc_root);
motu              107 sound/firewire/motu/motu-proc.c 	add_node(motu, root, "clock", proc_read_clock);
motu              108 sound/firewire/motu/motu-proc.c 	add_node(motu, root, "format", proc_read_format);
motu               29 sound/firewire/motu/motu-protocol-v2.c static int v2_get_clock_rate(struct snd_motu *motu, unsigned int *rate)
motu               35 sound/firewire/motu/motu-protocol-v2.c 	err = snd_motu_transaction_read(motu, V2_CLOCK_STATUS_OFFSET, &reg,
motu               49 sound/firewire/motu/motu-protocol-v2.c static int v2_set_clock_rate(struct snd_motu *motu, unsigned int rate)
motu               63 sound/firewire/motu/motu-protocol-v2.c 	err = snd_motu_transaction_read(motu, V2_CLOCK_STATUS_OFFSET, &reg,
motu               72 sound/firewire/motu/motu-protocol-v2.c 	if (motu->spec == &snd_motu_spec_traveler) {
motu               78 sound/firewire/motu/motu-protocol-v2.c 	return snd_motu_transaction_write(motu, V2_CLOCK_STATUS_OFFSET, &reg,
motu               82 sound/firewire/motu/motu-protocol-v2.c static int v2_get_clock_source(struct snd_motu *motu,
motu               89 sound/firewire/motu/motu-protocol-v2.c 	err = snd_motu_transaction_read(motu, V2_CLOCK_STATUS_OFFSET, &reg,
motu               99 sound/firewire/motu/motu-protocol-v2.c 	err = snd_motu_transaction_read(motu, V2_IN_OUT_CONF_OFFSET, &reg,
motu              130 sound/firewire/motu/motu-protocol-v2.c static int v2_switch_fetching_mode(struct snd_motu *motu, bool enable)
motu              136 sound/firewire/motu/motu-protocol-v2.c 	if (motu->spec == &snd_motu_spec_traveler ||
motu              137 sound/firewire/motu/motu-protocol-v2.c 	    motu->spec == &snd_motu_spec_8pre) {
motu              138 sound/firewire/motu/motu-protocol-v2.c 		err = snd_motu_transaction_read(motu, V2_CLOCK_STATUS_OFFSET,
motu              144 sound/firewire/motu/motu-protocol-v2.c 		if (motu->spec == &snd_motu_spec_traveler) {
motu              152 sound/firewire/motu/motu-protocol-v2.c 		} else if (motu->spec == &snd_motu_spec_8pre) {
motu              163 sound/firewire/motu/motu-protocol-v2.c 		err = snd_motu_transaction_write(motu, V2_CLOCK_STATUS_OFFSET,
motu              252 sound/firewire/motu/motu-protocol-v2.c static int v2_cache_packet_formats(struct snd_motu *motu)
motu              258 sound/firewire/motu/motu-protocol-v2.c 	err = snd_motu_transaction_read(motu, V2_IN_OUT_CONF_OFFSET, &reg,
motu              264 sound/firewire/motu/motu-protocol-v2.c 	calculate_fixed_part(&motu->tx_packet_formats, AMDTP_IN_STREAM,
motu              265 sound/firewire/motu/motu-protocol-v2.c 			     motu->spec->flags, motu->spec->analog_in_ports);
motu              266 sound/firewire/motu/motu-protocol-v2.c 	calculate_differed_part(&motu->tx_packet_formats, motu->spec->flags,
motu              269 sound/firewire/motu/motu-protocol-v2.c 	calculate_fixed_part(&motu->rx_packet_formats, AMDTP_OUT_STREAM,
motu              270 sound/firewire/motu/motu-protocol-v2.c 			     motu->spec->flags, motu->spec->analog_out_ports);
motu              271 sound/firewire/motu/motu-protocol-v2.c 	calculate_differed_part(&motu->rx_packet_formats, motu->spec->flags,
motu              274 sound/firewire/motu/motu-protocol-v2.c 	motu->tx_packet_formats.pcm_byte_offset = 10;
motu              275 sound/firewire/motu/motu-protocol-v2.c 	motu->rx_packet_formats.pcm_byte_offset = 10;
motu               27 sound/firewire/motu/motu-protocol-v3.c static int v3_get_clock_rate(struct snd_motu *motu, unsigned int *rate)
motu               33 sound/firewire/motu/motu-protocol-v3.c 	err = snd_motu_transaction_read(motu, V3_CLOCK_STATUS_OFFSET, &reg,
motu               48 sound/firewire/motu/motu-protocol-v3.c static int v3_set_clock_rate(struct snd_motu *motu, unsigned int rate)
motu               62 sound/firewire/motu/motu-protocol-v3.c 	err = snd_motu_transaction_read(motu, V3_CLOCK_STATUS_OFFSET, &reg,
motu               74 sound/firewire/motu/motu-protocol-v3.c 	err = snd_motu_transaction_write(motu, V3_CLOCK_STATUS_OFFSET, &reg,
motu               88 sound/firewire/motu/motu-protocol-v3.c static int v3_get_clock_source(struct snd_motu *motu,
motu               96 sound/firewire/motu/motu-protocol-v3.c 	err = snd_motu_transaction_read(motu, V3_CLOCK_STATUS_OFFSET, &reg,
motu              110 sound/firewire/motu/motu-protocol-v3.c 		err = snd_motu_transaction_read(motu, V3_OPT_IFACE_MODE_OFFSET,
motu              134 sound/firewire/motu/motu-protocol-v3.c static int v3_switch_fetching_mode(struct snd_motu *motu, bool enable)
motu              140 sound/firewire/motu/motu-protocol-v3.c 	err = snd_motu_transaction_read(motu, V3_CLOCK_STATUS_OFFSET, &reg,
motu              152 sound/firewire/motu/motu-protocol-v3.c 	return snd_motu_transaction_write(motu, V3_CLOCK_STATUS_OFFSET, &reg,
motu              276 sound/firewire/motu/motu-protocol-v3.c static int v3_cache_packet_formats(struct snd_motu *motu)
motu              282 sound/firewire/motu/motu-protocol-v3.c 	err = snd_motu_transaction_read(motu, V3_OPT_IFACE_MODE_OFFSET, &reg,
motu              288 sound/firewire/motu/motu-protocol-v3.c 	calculate_fixed_part(&motu->tx_packet_formats, AMDTP_IN_STREAM,
motu              289 sound/firewire/motu/motu-protocol-v3.c 			     motu->spec->flags, motu->spec->analog_in_ports);
motu              290 sound/firewire/motu/motu-protocol-v3.c 	calculate_differed_part(&motu->tx_packet_formats,
motu              291 sound/firewire/motu/motu-protocol-v3.c 			motu->spec->flags, data,
motu              295 sound/firewire/motu/motu-protocol-v3.c 	calculate_fixed_part(&motu->rx_packet_formats, AMDTP_OUT_STREAM,
motu              296 sound/firewire/motu/motu-protocol-v3.c 			     motu->spec->flags, motu->spec->analog_out_ports);
motu              297 sound/firewire/motu/motu-protocol-v3.c 	calculate_differed_part(&motu->rx_packet_formats,
motu              298 sound/firewire/motu/motu-protocol-v3.c 			motu->spec->flags, data,
motu              302 sound/firewire/motu/motu-protocol-v3.c 	motu->tx_packet_formats.pcm_byte_offset = 10;
motu              303 sound/firewire/motu/motu-protocol-v3.c 	motu->rx_packet_formats.pcm_byte_offset = 10;
motu               28 sound/firewire/motu/motu-stream.c static int keep_resources(struct snd_motu *motu, unsigned int rate,
motu               36 sound/firewire/motu/motu-stream.c 	if (stream == &motu->rx_stream) {
motu               37 sound/firewire/motu/motu-stream.c 		resources = &motu->rx_resources;
motu               38 sound/firewire/motu/motu-stream.c 		packet_format = &motu->rx_packet_formats;
motu               40 sound/firewire/motu/motu-stream.c 		if ((motu->spec->flags & SND_MOTU_SPEC_RX_MIDI_2ND_Q) ||
motu               41 sound/firewire/motu/motu-stream.c 		    (motu->spec->flags & SND_MOTU_SPEC_RX_MIDI_3RD_Q))
motu               44 sound/firewire/motu/motu-stream.c 		resources = &motu->tx_resources;
motu               45 sound/firewire/motu/motu-stream.c 		packet_format = &motu->tx_packet_formats;
motu               47 sound/firewire/motu/motu-stream.c 		if ((motu->spec->flags & SND_MOTU_SPEC_TX_MIDI_2ND_Q) ||
motu               48 sound/firewire/motu/motu-stream.c 		    (motu->spec->flags & SND_MOTU_SPEC_TX_MIDI_3RD_Q))
motu               59 sound/firewire/motu/motu-stream.c 				fw_parent_device(motu->unit)->max_speed);
motu               62 sound/firewire/motu/motu-stream.c static int begin_session(struct snd_motu *motu)
motu               69 sound/firewire/motu/motu-stream.c 	err = snd_motu_transaction_read(motu, ISOC_COMM_CONTROL_OFFSET, &reg,
motu               76 sound/firewire/motu/motu-stream.c 		(motu->rx_resources.channel << RX_ISOC_COMM_CHANNEL_SHIFT) |
motu               78 sound/firewire/motu/motu-stream.c 		(motu->tx_resources.channel << TX_ISOC_COMM_CHANNEL_SHIFT);
motu               81 sound/firewire/motu/motu-stream.c 	return snd_motu_transaction_write(motu, ISOC_COMM_CONTROL_OFFSET, &reg,
motu               85 sound/firewire/motu/motu-stream.c static void finish_session(struct snd_motu *motu)
motu               91 sound/firewire/motu/motu-stream.c 	err = motu->spec->protocol->switch_fetching_mode(motu, false);
motu               95 sound/firewire/motu/motu-stream.c 	err = snd_motu_transaction_read(motu, ISOC_COMM_CONTROL_OFFSET, &reg,
motu              105 sound/firewire/motu/motu-stream.c 	snd_motu_transaction_write(motu, ISOC_COMM_CONTROL_OFFSET, &reg,
motu              109 sound/firewire/motu/motu-stream.c int snd_motu_stream_cache_packet_formats(struct snd_motu *motu)
motu              113 sound/firewire/motu/motu-stream.c 	err = motu->spec->protocol->cache_packet_formats(motu);
motu              117 sound/firewire/motu/motu-stream.c 	if (motu->spec->flags & SND_MOTU_SPEC_TX_MIDI_2ND_Q) {
motu              118 sound/firewire/motu/motu-stream.c 		motu->tx_packet_formats.midi_flag_offset = 4;
motu              119 sound/firewire/motu/motu-stream.c 		motu->tx_packet_formats.midi_byte_offset = 6;
motu              120 sound/firewire/motu/motu-stream.c 	} else if (motu->spec->flags & SND_MOTU_SPEC_TX_MIDI_3RD_Q) {
motu              121 sound/firewire/motu/motu-stream.c 		motu->tx_packet_formats.midi_flag_offset = 8;
motu              122 sound/firewire/motu/motu-stream.c 		motu->tx_packet_formats.midi_byte_offset = 7;
motu              125 sound/firewire/motu/motu-stream.c 	if (motu->spec->flags & SND_MOTU_SPEC_RX_MIDI_2ND_Q) {
motu              126 sound/firewire/motu/motu-stream.c 		motu->rx_packet_formats.midi_flag_offset = 4;
motu              127 sound/firewire/motu/motu-stream.c 		motu->rx_packet_formats.midi_byte_offset = 6;
motu              128 sound/firewire/motu/motu-stream.c 	} else if (motu->spec->flags & SND_MOTU_SPEC_RX_MIDI_3RD_Q) {
motu              129 sound/firewire/motu/motu-stream.c 		motu->rx_packet_formats.midi_flag_offset = 8;
motu              130 sound/firewire/motu/motu-stream.c 		motu->rx_packet_formats.midi_byte_offset = 7;
motu              136 sound/firewire/motu/motu-stream.c int snd_motu_stream_reserve_duplex(struct snd_motu *motu, unsigned int rate)
motu              141 sound/firewire/motu/motu-stream.c 	err = motu->spec->protocol->get_clock_rate(motu, &curr_rate);
motu              147 sound/firewire/motu/motu-stream.c 	if (motu->substreams_counter == 0 || curr_rate != rate) {
motu              148 sound/firewire/motu/motu-stream.c 		amdtp_domain_stop(&motu->domain);
motu              149 sound/firewire/motu/motu-stream.c 		finish_session(motu);
motu              151 sound/firewire/motu/motu-stream.c 		fw_iso_resources_free(&motu->tx_resources);
motu              152 sound/firewire/motu/motu-stream.c 		fw_iso_resources_free(&motu->rx_resources);
motu              154 sound/firewire/motu/motu-stream.c 		err = motu->spec->protocol->set_clock_rate(motu, rate);
motu              156 sound/firewire/motu/motu-stream.c 			dev_err(&motu->unit->device,
motu              161 sound/firewire/motu/motu-stream.c 		err = snd_motu_stream_cache_packet_formats(motu);
motu              165 sound/firewire/motu/motu-stream.c 		err = keep_resources(motu, rate, &motu->tx_stream);
motu              169 sound/firewire/motu/motu-stream.c 		err = keep_resources(motu, rate, &motu->rx_stream);
motu              171 sound/firewire/motu/motu-stream.c 			fw_iso_resources_free(&motu->tx_resources);
motu              179 sound/firewire/motu/motu-stream.c static int ensure_packet_formats(struct snd_motu *motu)
motu              185 sound/firewire/motu/motu-stream.c 	err = snd_motu_transaction_read(motu, PACKET_FORMAT_OFFSET, &reg,
motu              194 sound/firewire/motu/motu-stream.c 	if (motu->tx_packet_formats.differed_part_pcm_chunks[0] == 0)
motu              196 sound/firewire/motu/motu-stream.c 	if (motu->rx_packet_formats.differed_part_pcm_chunks[0] == 0)
motu              198 sound/firewire/motu/motu-stream.c 	data |= fw_parent_device(motu->unit)->max_speed;
motu              201 sound/firewire/motu/motu-stream.c 	return snd_motu_transaction_write(motu, PACKET_FORMAT_OFFSET, &reg,
motu              205 sound/firewire/motu/motu-stream.c int snd_motu_stream_start_duplex(struct snd_motu *motu)
motu              207 sound/firewire/motu/motu-stream.c 	unsigned int generation = motu->rx_resources.generation;
motu              210 sound/firewire/motu/motu-stream.c 	if (motu->substreams_counter == 0)
motu              213 sound/firewire/motu/motu-stream.c 	if (amdtp_streaming_error(&motu->rx_stream) ||
motu              214 sound/firewire/motu/motu-stream.c 	    amdtp_streaming_error(&motu->tx_stream)) {
motu              215 sound/firewire/motu/motu-stream.c 		amdtp_domain_stop(&motu->domain);
motu              216 sound/firewire/motu/motu-stream.c 		finish_session(motu);
motu              219 sound/firewire/motu/motu-stream.c 	if (generation != fw_parent_device(motu->unit)->card->generation) {
motu              220 sound/firewire/motu/motu-stream.c 		err = fw_iso_resources_update(&motu->rx_resources);
motu              224 sound/firewire/motu/motu-stream.c 		err = fw_iso_resources_update(&motu->tx_resources);
motu              229 sound/firewire/motu/motu-stream.c 	if (!amdtp_stream_running(&motu->rx_stream)) {
motu              230 sound/firewire/motu/motu-stream.c 		int spd = fw_parent_device(motu->unit)->max_speed;
motu              232 sound/firewire/motu/motu-stream.c 		err = ensure_packet_formats(motu);
motu              236 sound/firewire/motu/motu-stream.c 		err = begin_session(motu);
motu              238 sound/firewire/motu/motu-stream.c 			dev_err(&motu->unit->device,
motu              243 sound/firewire/motu/motu-stream.c 		err = amdtp_domain_add_stream(&motu->domain, &motu->tx_stream,
motu              244 sound/firewire/motu/motu-stream.c 					      motu->tx_resources.channel, spd);
motu              248 sound/firewire/motu/motu-stream.c 		err = amdtp_domain_add_stream(&motu->domain, &motu->rx_stream,
motu              249 sound/firewire/motu/motu-stream.c 					      motu->rx_resources.channel, spd);
motu              253 sound/firewire/motu/motu-stream.c 		err = amdtp_domain_start(&motu->domain);
motu              257 sound/firewire/motu/motu-stream.c 		if (!amdtp_stream_wait_callback(&motu->tx_stream,
motu              259 sound/firewire/motu/motu-stream.c 		    !amdtp_stream_wait_callback(&motu->rx_stream,
motu              265 sound/firewire/motu/motu-stream.c 		err = motu->spec->protocol->switch_fetching_mode(motu, true);
motu              267 sound/firewire/motu/motu-stream.c 			dev_err(&motu->unit->device,
motu              276 sound/firewire/motu/motu-stream.c 	amdtp_domain_stop(&motu->domain);
motu              277 sound/firewire/motu/motu-stream.c 	finish_session(motu);
motu              281 sound/firewire/motu/motu-stream.c void snd_motu_stream_stop_duplex(struct snd_motu *motu)
motu              283 sound/firewire/motu/motu-stream.c 	if (motu->substreams_counter == 0) {
motu              284 sound/firewire/motu/motu-stream.c 		amdtp_domain_stop(&motu->domain);
motu              285 sound/firewire/motu/motu-stream.c 		finish_session(motu);
motu              287 sound/firewire/motu/motu-stream.c 		fw_iso_resources_free(&motu->tx_resources);
motu              288 sound/firewire/motu/motu-stream.c 		fw_iso_resources_free(&motu->rx_resources);
motu              292 sound/firewire/motu/motu-stream.c static int init_stream(struct snd_motu *motu, struct amdtp_stream *s)
motu              298 sound/firewire/motu/motu-stream.c 	if (s == &motu->tx_stream) {
motu              299 sound/firewire/motu/motu-stream.c 		resources = &motu->tx_resources;
motu              302 sound/firewire/motu/motu-stream.c 		resources = &motu->rx_resources;
motu              306 sound/firewire/motu/motu-stream.c 	err = fw_iso_resources_init(resources, motu->unit);
motu              310 sound/firewire/motu/motu-stream.c 	err = amdtp_motu_init(s, motu->unit, dir, motu->spec->protocol);
motu              317 sound/firewire/motu/motu-stream.c static void destroy_stream(struct snd_motu *motu, struct amdtp_stream *s)
motu              321 sound/firewire/motu/motu-stream.c 	if (s == &motu->tx_stream)
motu              322 sound/firewire/motu/motu-stream.c 		fw_iso_resources_destroy(&motu->tx_resources);
motu              324 sound/firewire/motu/motu-stream.c 		fw_iso_resources_destroy(&motu->rx_resources);
motu              327 sound/firewire/motu/motu-stream.c int snd_motu_stream_init_duplex(struct snd_motu *motu)
motu              331 sound/firewire/motu/motu-stream.c 	err = init_stream(motu, &motu->tx_stream);
motu              335 sound/firewire/motu/motu-stream.c 	err = init_stream(motu, &motu->rx_stream);
motu              337 sound/firewire/motu/motu-stream.c 		destroy_stream(motu, &motu->tx_stream);
motu              341 sound/firewire/motu/motu-stream.c 	err = amdtp_domain_init(&motu->domain);
motu              343 sound/firewire/motu/motu-stream.c 		destroy_stream(motu, &motu->tx_stream);
motu              344 sound/firewire/motu/motu-stream.c 		destroy_stream(motu, &motu->rx_stream);
motu              352 sound/firewire/motu/motu-stream.c void snd_motu_stream_destroy_duplex(struct snd_motu *motu)
motu              354 sound/firewire/motu/motu-stream.c 	amdtp_domain_destroy(&motu->domain);
motu              356 sound/firewire/motu/motu-stream.c 	destroy_stream(motu, &motu->rx_stream);
motu              357 sound/firewire/motu/motu-stream.c 	destroy_stream(motu, &motu->tx_stream);
motu              359 sound/firewire/motu/motu-stream.c 	motu->substreams_counter = 0;
motu              362 sound/firewire/motu/motu-stream.c static void motu_lock_changed(struct snd_motu *motu)
motu              364 sound/firewire/motu/motu-stream.c 	motu->dev_lock_changed = true;
motu              365 sound/firewire/motu/motu-stream.c 	wake_up(&motu->hwdep_wait);
motu              368 sound/firewire/motu/motu-stream.c int snd_motu_stream_lock_try(struct snd_motu *motu)
motu              372 sound/firewire/motu/motu-stream.c 	spin_lock_irq(&motu->lock);
motu              374 sound/firewire/motu/motu-stream.c 	if (motu->dev_lock_count < 0) {
motu              379 sound/firewire/motu/motu-stream.c 	if (motu->dev_lock_count++ == 0)
motu              380 sound/firewire/motu/motu-stream.c 		motu_lock_changed(motu);
motu              383 sound/firewire/motu/motu-stream.c 	spin_unlock_irq(&motu->lock);
motu              387 sound/firewire/motu/motu-stream.c void snd_motu_stream_lock_release(struct snd_motu *motu)
motu              389 sound/firewire/motu/motu-stream.c 	spin_lock_irq(&motu->lock);
motu              391 sound/firewire/motu/motu-stream.c 	if (WARN_ON(motu->dev_lock_count <= 0))
motu              394 sound/firewire/motu/motu-stream.c 	if (--motu->dev_lock_count == 0)
motu              395 sound/firewire/motu/motu-stream.c 		motu_lock_changed(motu);
motu              397 sound/firewire/motu/motu-stream.c 	spin_unlock_irq(&motu->lock);
motu               15 sound/firewire/motu/motu-transaction.c int snd_motu_transaction_read(struct snd_motu *motu, u32 offset, __be32 *reg,
motu               27 sound/firewire/motu/motu-transaction.c 	return snd_fw_transaction(motu->unit, tcode,
motu               31 sound/firewire/motu/motu-transaction.c int snd_motu_transaction_write(struct snd_motu *motu, u32 offset, __be32 *reg,
motu               43 sound/firewire/motu/motu-transaction.c 	return snd_fw_transaction(motu->unit, tcode,
motu               52 sound/firewire/motu/motu-transaction.c 	struct snd_motu *motu = callback_data;
motu               61 sound/firewire/motu/motu-transaction.c 	if (offset != motu->async_handler.offset || length != 4) {
motu               66 sound/firewire/motu/motu-transaction.c 	spin_lock_irqsave(&motu->lock, flags);
motu               67 sound/firewire/motu/motu-transaction.c 	motu->msg = be32_to_cpu(*buf);
motu               68 sound/firewire/motu/motu-transaction.c 	spin_unlock_irqrestore(&motu->lock, flags);
motu               72 sound/firewire/motu/motu-transaction.c 	wake_up(&motu->hwdep_wait);
motu               75 sound/firewire/motu/motu-transaction.c int snd_motu_transaction_reregister(struct snd_motu *motu)
motu               77 sound/firewire/motu/motu-transaction.c 	struct fw_device *device = fw_parent_device(motu->unit);
motu               81 sound/firewire/motu/motu-transaction.c 	if (motu->async_handler.callback_data == NULL)
motu               86 sound/firewire/motu/motu-transaction.c 			   (motu->async_handler.offset >> 32));
motu               87 sound/firewire/motu/motu-transaction.c 	err = snd_motu_transaction_write(motu, ASYNC_ADDR_HI, &data,
motu               92 sound/firewire/motu/motu-transaction.c 	data = cpu_to_be32(motu->async_handler.offset);
motu               93 sound/firewire/motu/motu-transaction.c 	return snd_motu_transaction_write(motu, ASYNC_ADDR_LO, &data,
motu               97 sound/firewire/motu/motu-transaction.c int snd_motu_transaction_register(struct snd_motu *motu)
motu              106 sound/firewire/motu/motu-transaction.c 	motu->async_handler.length = 4;
motu              107 sound/firewire/motu/motu-transaction.c 	motu->async_handler.address_callback = handle_message;
motu              108 sound/firewire/motu/motu-transaction.c 	motu->async_handler.callback_data = motu;
motu              110 sound/firewire/motu/motu-transaction.c 	err = fw_core_add_address_handler(&motu->async_handler,
motu              115 sound/firewire/motu/motu-transaction.c 	err = snd_motu_transaction_reregister(motu);
motu              117 sound/firewire/motu/motu-transaction.c 		fw_core_remove_address_handler(&motu->async_handler);
motu              118 sound/firewire/motu/motu-transaction.c 		motu->async_handler.address_callback = NULL;
motu              124 sound/firewire/motu/motu-transaction.c void snd_motu_transaction_unregister(struct snd_motu *motu)
motu              128 sound/firewire/motu/motu-transaction.c 	if (motu->async_handler.address_callback != NULL)
motu              129 sound/firewire/motu/motu-transaction.c 		fw_core_remove_address_handler(&motu->async_handler);
motu              130 sound/firewire/motu/motu-transaction.c 	motu->async_handler.address_callback = NULL;
motu              134 sound/firewire/motu/motu-transaction.c 	snd_motu_transaction_write(motu, ASYNC_ADDR_HI, &data, sizeof(data));
motu              135 sound/firewire/motu/motu-transaction.c 	snd_motu_transaction_write(motu, ASYNC_ADDR_LO, &data, sizeof(data));
motu               28 sound/firewire/motu/motu.c static void name_card(struct snd_motu *motu)
motu               30 sound/firewire/motu/motu.c 	struct fw_device *fw_dev = fw_parent_device(motu->unit);
motu               35 sound/firewire/motu/motu.c 	fw_csr_iterator_init(&it, motu->unit->directory);
motu               44 sound/firewire/motu/motu.c 	strcpy(motu->card->driver, "FW-MOTU");
motu               45 sound/firewire/motu/motu.c 	strcpy(motu->card->shortname, motu->spec->name);
motu               46 sound/firewire/motu/motu.c 	strcpy(motu->card->mixername, motu->spec->name);
motu               47 sound/firewire/motu/motu.c 	snprintf(motu->card->longname, sizeof(motu->card->longname),
motu               49 sound/firewire/motu/motu.c 		 motu->spec->name, version,
motu               51 sound/firewire/motu/motu.c 		 dev_name(&motu->unit->device), 100 << fw_dev->max_speed);
motu               56 sound/firewire/motu/motu.c 	struct snd_motu *motu = card->private_data;
motu               58 sound/firewire/motu/motu.c 	snd_motu_transaction_unregister(motu);
motu               59 sound/firewire/motu/motu.c 	snd_motu_stream_destroy_duplex(motu);
motu               64 sound/firewire/motu/motu.c 	struct snd_motu *motu = container_of(work, struct snd_motu, dwork.work);
motu               67 sound/firewire/motu/motu.c 	if (motu->registered)
motu               70 sound/firewire/motu/motu.c 	err = snd_card_new(&motu->unit->device, -1, NULL, THIS_MODULE, 0,
motu               71 sound/firewire/motu/motu.c 			   &motu->card);
motu               74 sound/firewire/motu/motu.c 	motu->card->private_free = motu_card_free;
motu               75 sound/firewire/motu/motu.c 	motu->card->private_data = motu;
motu               77 sound/firewire/motu/motu.c 	name_card(motu);
motu               79 sound/firewire/motu/motu.c 	err = snd_motu_transaction_register(motu);
motu               83 sound/firewire/motu/motu.c 	err = snd_motu_stream_init_duplex(motu);
motu               87 sound/firewire/motu/motu.c 	snd_motu_proc_init(motu);
motu               89 sound/firewire/motu/motu.c 	err = snd_motu_create_pcm_devices(motu);
motu               93 sound/firewire/motu/motu.c 	if ((motu->spec->flags & SND_MOTU_SPEC_RX_MIDI_2ND_Q) ||
motu               94 sound/firewire/motu/motu.c 	    (motu->spec->flags & SND_MOTU_SPEC_RX_MIDI_3RD_Q) ||
motu               95 sound/firewire/motu/motu.c 	    (motu->spec->flags & SND_MOTU_SPEC_TX_MIDI_2ND_Q) ||
motu               96 sound/firewire/motu/motu.c 	    (motu->spec->flags & SND_MOTU_SPEC_TX_MIDI_3RD_Q)) {
motu               97 sound/firewire/motu/motu.c 		err = snd_motu_create_midi_devices(motu);
motu              102 sound/firewire/motu/motu.c 	err = snd_motu_create_hwdep_device(motu);
motu              106 sound/firewire/motu/motu.c 	err = snd_card_register(motu->card);
motu              110 sound/firewire/motu/motu.c 	motu->registered = true;
motu              114 sound/firewire/motu/motu.c 	snd_card_free(motu->card);
motu              115 sound/firewire/motu/motu.c 	dev_info(&motu->unit->device,
motu              122 sound/firewire/motu/motu.c 	struct snd_motu *motu;
motu              125 sound/firewire/motu/motu.c 	motu = devm_kzalloc(&unit->device, sizeof(struct snd_motu), GFP_KERNEL);
motu              126 sound/firewire/motu/motu.c 	if (!motu)
motu              128 sound/firewire/motu/motu.c 	motu->unit = fw_unit_get(unit);
motu              129 sound/firewire/motu/motu.c 	dev_set_drvdata(&unit->device, motu);
motu              131 sound/firewire/motu/motu.c 	motu->spec = (const struct snd_motu_spec *)entry->driver_data;
motu              132 sound/firewire/motu/motu.c 	mutex_init(&motu->mutex);
motu              133 sound/firewire/motu/motu.c 	spin_lock_init(&motu->lock);
motu              134 sound/firewire/motu/motu.c 	init_waitqueue_head(&motu->hwdep_wait);
motu              137 sound/firewire/motu/motu.c 	INIT_DEFERRABLE_WORK(&motu->dwork, do_registration);
motu              138 sound/firewire/motu/motu.c 	snd_fw_schedule_registration(unit, &motu->dwork);
motu              145 sound/firewire/motu/motu.c 	struct snd_motu *motu = dev_get_drvdata(&unit->device);
motu              152 sound/firewire/motu/motu.c 	cancel_delayed_work_sync(&motu->dwork);
motu              154 sound/firewire/motu/motu.c 	if (motu->registered) {
motu              156 sound/firewire/motu/motu.c 		snd_card_free(motu->card);
motu              159 sound/firewire/motu/motu.c 	mutex_destroy(&motu->mutex);
motu              160 sound/firewire/motu/motu.c 	fw_unit_put(motu->unit);
motu              165 sound/firewire/motu/motu.c 	struct snd_motu *motu = dev_get_drvdata(&unit->device);
motu              168 sound/firewire/motu/motu.c 	if (!motu->registered)
motu              169 sound/firewire/motu/motu.c 		snd_fw_schedule_registration(unit, &motu->dwork);
motu              172 sound/firewire/motu/motu.c 	snd_motu_transaction_reregister(motu);
motu              111 sound/firewire/motu/motu.h 	int (*get_clock_rate)(struct snd_motu *motu, unsigned int *rate);
motu              112 sound/firewire/motu/motu.h 	int (*set_clock_rate)(struct snd_motu *motu, unsigned int rate);
motu              113 sound/firewire/motu/motu.h 	int (*get_clock_source)(struct snd_motu *motu,
motu              115 sound/firewire/motu/motu.h 	int (*switch_fetching_mode)(struct snd_motu *motu, bool enable);
motu              116 sound/firewire/motu/motu.h 	int (*cache_packet_formats)(struct snd_motu *motu);
motu              146 sound/firewire/motu/motu.h int snd_motu_transaction_read(struct snd_motu *motu, u32 offset, __be32 *reg,
motu              148 sound/firewire/motu/motu.h int snd_motu_transaction_write(struct snd_motu *motu, u32 offset, __be32 *reg,
motu              150 sound/firewire/motu/motu.h int snd_motu_transaction_register(struct snd_motu *motu);
motu              151 sound/firewire/motu/motu.h int snd_motu_transaction_reregister(struct snd_motu *motu);
motu              152 sound/firewire/motu/motu.h void snd_motu_transaction_unregister(struct snd_motu *motu);
motu              154 sound/firewire/motu/motu.h int snd_motu_stream_init_duplex(struct snd_motu *motu);
motu              155 sound/firewire/motu/motu.h void snd_motu_stream_destroy_duplex(struct snd_motu *motu);
motu              156 sound/firewire/motu/motu.h int snd_motu_stream_cache_packet_formats(struct snd_motu *motu);
motu              157 sound/firewire/motu/motu.h int snd_motu_stream_reserve_duplex(struct snd_motu *motu, unsigned int rate);
motu              158 sound/firewire/motu/motu.h int snd_motu_stream_start_duplex(struct snd_motu *motu);
motu              159 sound/firewire/motu/motu.h void snd_motu_stream_stop_duplex(struct snd_motu *motu);
motu              160 sound/firewire/motu/motu.h int snd_motu_stream_lock_try(struct snd_motu *motu);
motu              161 sound/firewire/motu/motu.h void snd_motu_stream_lock_release(struct snd_motu *motu);
motu              163 sound/firewire/motu/motu.h void snd_motu_proc_init(struct snd_motu *motu);
motu              165 sound/firewire/motu/motu.h int snd_motu_create_pcm_devices(struct snd_motu *motu);
motu              167 sound/firewire/motu/motu.h int snd_motu_create_midi_devices(struct snd_motu *motu);
motu              169 sound/firewire/motu/motu.h int snd_motu_create_hwdep_device(struct snd_motu *motu);