Lines Matching refs:ff

3  * ff.c - a part of driver for RME Fireface series
8 #include "ff.h"
16 static void name_card(struct snd_ff *ff)
18 struct fw_device *fw_dev = fw_parent_device(ff->unit);
28 name = names[ff->unit_version];
30 strcpy(ff->card->driver, "Fireface");
31 strcpy(ff->card->shortname, name);
32 strcpy(ff->card->mixername, name);
33 snprintf(ff->card->longname, sizeof(ff->card->longname),
36 dev_name(&ff->unit->device), 100 << fw_dev->max_speed);
41 struct snd_ff *ff = card->private_data;
43 snd_ff_stream_destroy_duplex(ff);
44 snd_ff_transaction_unregister(ff);
46 kfree(ff->msg_parser);
48 mutex_destroy(&ff->mutex);
49 fw_unit_put(ff->unit);
55 struct snd_ff *ff;
58 err = snd_card_new(&unit->device, -1, NULL, THIS_MODULE, sizeof(*ff), &card);
63 ff = card->private_data;
64 ff->unit = fw_unit_get(unit);
65 dev_set_drvdata(&unit->device, ff);
66 ff->card = card;
68 mutex_init(&ff->mutex);
69 spin_lock_init(&ff->lock);
70 init_waitqueue_head(&ff->hwdep_wait);
72 ff->unit_version = entry->version;
73 ff->spec = (const struct snd_ff_spec *)entry->driver_data;
75 err = snd_ff_transaction_register(ff);
79 name_card(ff);
81 err = snd_ff_stream_init_duplex(ff);
85 snd_ff_proc_init(ff);
87 err = snd_ff_create_midi_devices(ff);
91 err = snd_ff_create_pcm_devices(ff);
95 err = snd_ff_create_hwdep_devices(ff);
99 if (ff->spec->protocol->msg_parser_size > 0) {
100 ff->msg_parser = kzalloc(ff->spec->protocol->msg_parser_size, GFP_KERNEL);
101 if (!ff->msg_parser) {
119 struct snd_ff *ff = dev_get_drvdata(&unit->device);
121 snd_ff_transaction_reregister(ff);
123 snd_ff_stream_update_duplex(ff);
128 struct snd_ff *ff = dev_get_drvdata(&unit->device);
131 snd_card_free(ff->card);