Lines Matching refs:efw

73 get_hardware_info(struct snd_efw *efw)  in get_hardware_info()  argument
75 struct fw_device *fw_dev = fw_parent_device(efw->unit); in get_hardware_info()
84 err = snd_efw_command_get_hwinfo(efw, hwinfo); in get_hardware_info()
92 efw->firmware_version = hwinfo->arm_version; in get_hardware_info()
94 strcpy(efw->card->driver, "Fireworks"); in get_hardware_info()
95 strcpy(efw->card->shortname, hwinfo->model_name); in get_hardware_info()
96 strcpy(efw->card->mixername, hwinfo->model_name); in get_hardware_info()
97 snprintf(efw->card->longname, sizeof(efw->card->longname), in get_hardware_info()
101 dev_name(&efw->unit->device), 100 << fw_dev->max_speed); in get_hardware_info()
104 efw->resp_addr_changable = true; in get_hardware_info()
106 efw->supported_sampling_rate = 0; in get_hardware_info()
109 efw->supported_sampling_rate |= SNDRV_PCM_RATE_22050; in get_hardware_info()
112 efw->supported_sampling_rate |= SNDRV_PCM_RATE_32000; in get_hardware_info()
115 efw->supported_sampling_rate |= SNDRV_PCM_RATE_44100; in get_hardware_info()
118 efw->supported_sampling_rate |= SNDRV_PCM_RATE_48000; in get_hardware_info()
121 efw->supported_sampling_rate |= SNDRV_PCM_RATE_88200; in get_hardware_info()
124 efw->supported_sampling_rate |= SNDRV_PCM_RATE_96000; in get_hardware_info()
127 efw->supported_sampling_rate |= SNDRV_PCM_RATE_176400; in get_hardware_info()
130 efw->supported_sampling_rate |= SNDRV_PCM_RATE_192000; in get_hardware_info()
138 efw->midi_out_ports = hwinfo->midi_out_ports; in get_hardware_info()
139 efw->midi_in_ports = hwinfo->midi_in_ports; in get_hardware_info()
150 efw->pcm_capture_channels[0] = hwinfo->amdtp_tx_pcm_channels; in get_hardware_info()
151 efw->pcm_capture_channels[1] = hwinfo->amdtp_tx_pcm_channels_2x; in get_hardware_info()
152 efw->pcm_capture_channels[2] = hwinfo->amdtp_tx_pcm_channels_4x; in get_hardware_info()
153 efw->pcm_playback_channels[0] = hwinfo->amdtp_rx_pcm_channels; in get_hardware_info()
154 efw->pcm_playback_channels[1] = hwinfo->amdtp_rx_pcm_channels_2x; in get_hardware_info()
155 efw->pcm_playback_channels[2] = hwinfo->amdtp_rx_pcm_channels_4x; in get_hardware_info()
163 efw->phys_in = hwinfo->phys_in; in get_hardware_info()
164 efw->phys_out = hwinfo->phys_out; in get_hardware_info()
165 efw->phys_in_grp_count = hwinfo->phys_in_grp_count; in get_hardware_info()
166 efw->phys_out_grp_count = hwinfo->phys_out_grp_count; in get_hardware_info()
167 memcpy(&efw->phys_in_grps, hwinfo->phys_in_grps, in get_hardware_info()
169 memcpy(&efw->phys_out_grps, hwinfo->phys_out_grps, in get_hardware_info()
185 struct snd_efw *efw = card->private_data; in efw_card_free() local
187 snd_efw_stream_destroy_duplex(efw); in efw_card_free()
188 snd_efw_transaction_remove_instance(efw); in efw_card_free()
189 fw_unit_put(efw->unit); in efw_card_free()
191 kfree(efw->resp_buf); in efw_card_free()
193 if (efw->card_index >= 0) { in efw_card_free()
195 clear_bit(efw->card_index, devices_used); in efw_card_free()
199 mutex_destroy(&efw->mutex); in efw_card_free()
207 struct snd_efw *efw; in efw_probe() local
226 efw = card->private_data; in efw_probe()
227 efw->card_index = card_index; in efw_probe()
231 efw->card = card; in efw_probe()
232 efw->unit = fw_unit_get(unit); in efw_probe()
233 mutex_init(&efw->mutex); in efw_probe()
234 spin_lock_init(&efw->lock); in efw_probe()
235 init_waitqueue_head(&efw->hwdep_wait); in efw_probe()
240 efw->resp_buf = kzalloc(snd_efw_resp_buf_size, GFP_KERNEL); in efw_probe()
241 if (efw->resp_buf == NULL) { in efw_probe()
245 efw->pull_ptr = efw->push_ptr = efw->resp_buf; in efw_probe()
246 snd_efw_transaction_add_instance(efw); in efw_probe()
248 err = get_hardware_info(efw); in efw_probe()
253 efw->is_af9 = true; in efw_probe()
260 efw->is_fireworks3 = true; in efw_probe()
262 snd_efw_proc_init(efw); in efw_probe()
264 if (efw->midi_out_ports || efw->midi_in_ports) { in efw_probe()
265 err = snd_efw_create_midi_devices(efw); in efw_probe()
270 err = snd_efw_create_pcm_devices(efw); in efw_probe()
274 err = snd_efw_create_hwdep_device(efw); in efw_probe()
278 err = snd_efw_stream_init_duplex(efw); in efw_probe()
284 snd_efw_stream_destroy_duplex(efw); in efw_probe()
288 dev_set_drvdata(&unit->device, efw); in efw_probe()
293 snd_efw_transaction_remove_instance(efw); in efw_probe()
301 struct snd_efw *efw = dev_get_drvdata(&unit->device); in efw_update() local
303 snd_efw_transaction_bus_reset(efw->unit); in efw_update()
304 snd_efw_stream_update_duplex(efw); in efw_update()
309 struct snd_efw *efw = dev_get_drvdata(&unit->device); in efw_remove() local
312 snd_card_free_when_closed(efw->card); in efw_remove()