Lines Matching refs:audio

303 	struct f_audio *audio = container_of(data, struct f_audio,  in f_audio_playback_work()  local
307 spin_lock_irq(&audio->lock); in f_audio_playback_work()
308 if (list_empty(&audio->play_queue)) { in f_audio_playback_work()
309 spin_unlock_irq(&audio->lock); in f_audio_playback_work()
312 play_buf = list_first_entry(&audio->play_queue, in f_audio_playback_work()
315 spin_unlock_irq(&audio->lock); in f_audio_playback_work()
317 u_audio_playback(&audio->card, play_buf->buf, play_buf->actual); in f_audio_playback_work()
323 struct f_audio *audio = req->context; in f_audio_out_ep_complete() local
324 struct usb_composite_dev *cdev = audio->card.func.config->cdev; in f_audio_out_ep_complete()
325 struct f_audio_buf *copy_buf = audio->copy_buf; in f_audio_out_ep_complete()
330 opts = container_of(audio->card.func.fi, struct f_uac1_opts, in f_audio_out_ep_complete()
339 list_add_tail(&copy_buf->list, &audio->play_queue); in f_audio_out_ep_complete()
340 schedule_work(&audio->playback_work); in f_audio_out_ep_complete()
348 audio->copy_buf = copy_buf; in f_audio_out_ep_complete()
360 struct f_audio *audio = req->context; in f_audio_complete() local
363 struct usb_ep *out_ep = audio->out_ep; in f_audio_complete()
370 else if (audio->set_con) { in f_audio_complete()
372 audio->set_con->set(audio->set_con, audio->set_cmd, in f_audio_complete()
374 audio->set_con = NULL; in f_audio_complete()
385 struct f_audio *audio = func_to_audio(f); in audio_set_intf_req() local
399 list_for_each_entry(cs, &audio->cs, list) { in audio_set_intf_req()
403 audio->set_con = con; in audio_set_intf_req()
411 audio->set_cmd = cmd; in audio_set_intf_req()
412 req->context = audio; in audio_set_intf_req()
421 struct f_audio *audio = func_to_audio(f); in audio_get_intf_req() local
436 list_for_each_entry(cs, &audio->cs, list) { in audio_get_intf_req()
448 req->context = audio; in audio_get_intf_req()
574 struct f_audio *audio = func_to_audio(f); in f_audio_set_alt() local
576 struct usb_ep *out_ep = audio->out_ep; in f_audio_set_alt()
596 audio->copy_buf = f_audio_buffer_alloc(audio_buf_size); in f_audio_set_alt()
597 if (IS_ERR(audio->copy_buf)) in f_audio_set_alt()
611 req->context = audio; in f_audio_set_alt()
627 struct f_audio_buf *copy_buf = audio->copy_buf; in f_audio_set_alt()
630 &audio->play_queue); in f_audio_set_alt()
631 schedule_work(&audio->playback_work); in f_audio_set_alt()
646 static void f_audio_build_desc(struct f_audio *audio) in f_audio_build_desc() argument
648 struct gaudio *card = &audio->card; in f_audio_build_desc()
671 struct f_audio *audio = func_to_audio(f); in f_audio_bind() local
678 audio->card.gadget = c->cdev->gadget; in f_audio_bind()
681 status = gaudio_setup(&audio->card); in f_audio_bind()
698 f_audio_build_desc(audio); in f_audio_bind()
718 audio->out_ep = ep; in f_audio_bind()
719 audio->out_ep->desc = &as_out_ep_desc; in f_audio_bind()
730 gaudio_cleanup(&audio->card); in f_audio_bind()
749 static int control_selector_init(struct f_audio *audio) in control_selector_init() argument
751 INIT_LIST_HEAD(&audio->cs); in control_selector_init()
752 list_add(&feature_unit.list, &audio->cs); in control_selector_init()
930 struct f_audio *audio = func_to_audio(f); in f_audio_free() local
933 gaudio_cleanup(&audio->card); in f_audio_free()
935 kfree(audio); in f_audio_free()
948 struct f_audio *audio; in f_audio_alloc() local
952 audio = kzalloc(sizeof(*audio), GFP_KERNEL); in f_audio_alloc()
953 if (!audio) in f_audio_alloc()
956 audio->card.func.name = "g_audio"; in f_audio_alloc()
962 INIT_LIST_HEAD(&audio->play_queue); in f_audio_alloc()
963 spin_lock_init(&audio->lock); in f_audio_alloc()
965 audio->card.func.bind = f_audio_bind; in f_audio_alloc()
966 audio->card.func.unbind = f_audio_unbind; in f_audio_alloc()
967 audio->card.func.set_alt = f_audio_set_alt; in f_audio_alloc()
968 audio->card.func.setup = f_audio_setup; in f_audio_alloc()
969 audio->card.func.disable = f_audio_disable; in f_audio_alloc()
970 audio->card.func.free_func = f_audio_free; in f_audio_alloc()
972 control_selector_init(audio); in f_audio_alloc()
974 INIT_WORK(&audio->playback_work, f_audio_playback_work); in f_audio_alloc()
976 return &audio->card.func; in f_audio_alloc()