Lines Matching refs:bebob

67 name_device(struct snd_bebob *bebob, unsigned int vendor_id)  in name_device()  argument
69 struct fw_device *fw_dev = fw_parent_device(bebob->unit); in name_device()
84 err = fw_csr_string(bebob->unit->directory, CSR_MODEL, in name_device()
90 err = snd_bebob_read_quad(bebob->unit, INFO_OFFSET_HW_MODEL_ID, in name_device()
96 err = snd_bebob_read_quad(bebob->unit, INFO_OFFSET_HW_MODEL_REVISION, in name_device()
102 err = snd_bebob_read_block(bebob->unit, INFO_OFFSET_GUID, in name_device()
107 strcpy(bebob->card->driver, "BeBoB"); in name_device()
108 strcpy(bebob->card->shortname, model); in name_device()
109 strcpy(bebob->card->mixername, model); in name_device()
110 snprintf(bebob->card->longname, sizeof(bebob->card->longname), in name_device()
113 data[0], data[1], dev_name(&bebob->unit->device), in name_device()
128 struct snd_bebob *bebob = card->private_data; in bebob_card_free() local
130 snd_bebob_stream_destroy_duplex(bebob); in bebob_card_free()
131 fw_unit_put(bebob->unit); in bebob_card_free()
133 kfree(bebob->maudio_special_quirk); in bebob_card_free()
135 if (bebob->card_index >= 0) { in bebob_card_free()
137 clear_bit(bebob->card_index, devices_used); in bebob_card_free()
141 mutex_destroy(&bebob->mutex); in bebob_card_free()
174 struct snd_bebob *bebob; in bebob_probe() local
213 bebob = card->private_data; in bebob_probe()
214 bebob->card_index = card_index; in bebob_probe()
218 bebob->card = card; in bebob_probe()
219 bebob->unit = fw_unit_get(unit); in bebob_probe()
220 bebob->spec = spec; in bebob_probe()
221 mutex_init(&bebob->mutex); in bebob_probe()
222 spin_lock_init(&bebob->lock); in bebob_probe()
223 init_waitqueue_head(&bebob->hwdep_wait); in bebob_probe()
225 err = name_device(bebob, entry->vendor_id); in bebob_probe()
231 err = snd_bebob_maudio_special_discover(bebob, true); in bebob_probe()
234 err = snd_bebob_maudio_special_discover(bebob, false); in bebob_probe()
236 err = snd_bebob_stream_discover(bebob); in bebob_probe()
240 snd_bebob_proc_init(bebob); in bebob_probe()
242 if ((bebob->midi_input_ports > 0) || in bebob_probe()
243 (bebob->midi_output_ports > 0)) { in bebob_probe()
244 err = snd_bebob_create_midi_devices(bebob); in bebob_probe()
249 err = snd_bebob_create_pcm_devices(bebob); in bebob_probe()
253 err = snd_bebob_create_hwdep_device(bebob); in bebob_probe()
257 err = snd_bebob_stream_init_duplex(bebob); in bebob_probe()
261 if (!bebob->maudio_special_quirk) { in bebob_probe()
264 snd_bebob_stream_destroy_duplex(bebob); in bebob_probe()
278 bebob->deferred_registration = true; in bebob_probe()
279 fw_schedule_bus_reset(fw_parent_device(bebob->unit)->card, in bebob_probe()
283 dev_set_drvdata(&unit->device, bebob); in bebob_probe()
296 struct snd_bebob *bebob = dev_get_drvdata(&unit->device); in bebob_update() local
298 if (bebob == NULL) in bebob_update()
301 fcp_bus_reset(bebob->unit); in bebob_update()
302 snd_bebob_stream_update_duplex(bebob); in bebob_update()
304 if (bebob->deferred_registration) { in bebob_update()
305 if (snd_card_register(bebob->card) < 0) { in bebob_update()
306 snd_bebob_stream_destroy_duplex(bebob); in bebob_update()
307 snd_card_free(bebob->card); in bebob_update()
309 bebob->deferred_registration = false; in bebob_update()
315 struct snd_bebob *bebob = dev_get_drvdata(&unit->device); in bebob_remove() local
317 if (bebob == NULL) in bebob_remove()
321 if (!completion_done(&bebob->bus_reset)) in bebob_remove()
322 complete_all(&bebob->bus_reset); in bebob_remove()
325 snd_card_free_when_closed(bebob->card); in bebob_remove()