Lines Matching refs:pSCOSnd
166 RTK_sco_card_t *pSCOSnd; member
705 RTK_sco_card_t *pSCOSnd = data->pSCOSnd; in rtk_copy_capture_data_to_alsa() local
707 runtime = pSCOSnd->capture.substream->runtime; in rtk_copy_capture_data_to_alsa()
710 dest = runtime->dma_area + pSCOSnd->capture.buffer_pos * frame_bytes; in rtk_copy_capture_data_to_alsa()
711 if (pSCOSnd->capture.buffer_pos + frames <= runtime->buffer_size) { in rtk_copy_capture_data_to_alsa()
715 frames1 = runtime->buffer_size - pSCOSnd->capture.buffer_pos; in rtk_copy_capture_data_to_alsa()
722 pSCOSnd->capture.buffer_pos += frames; in rtk_copy_capture_data_to_alsa()
723 if (pSCOSnd->capture.buffer_pos >= runtime->buffer_size) { in rtk_copy_capture_data_to_alsa()
724 pSCOSnd->capture.buffer_pos -= runtime->buffer_size; in rtk_copy_capture_data_to_alsa()
727 if((pSCOSnd->capture.buffer_pos%runtime->period_size) == 0) { in rtk_copy_capture_data_to_alsa()
728 snd_pcm_period_elapsed(pSCOSnd->capture.substream); in rtk_copy_capture_data_to_alsa()
738 RTK_sco_card_t *pSCOSnd = data->pSCOSnd; in hci_send_to_alsa_ringbuffer() local
749 if (!test_bit(ALSA_CAPTURE_RUNNING, &pSCOSnd->states)) { in hci_send_to_alsa_ringbuffer()
3230 static bool snd_copy_send_sco_data( RTK_sco_card_t *pSCOSnd) in snd_copy_send_sco_data() argument
3232 struct snd_pcm_runtime *runtime = pSCOSnd->playback.substream->runtime; in snd_copy_send_sco_data()
3239 int sco_packet_bytes = pSCOSnd->playback.sco_packet_bytes; in snd_copy_send_sco_data()
3250 RTKBT_DBG("%s, buffer_pos: %d", __FUNCTION__, pSCOSnd->playback.buffer_pos); in snd_copy_send_sco_data()
3252 source = runtime->dma_area + pSCOSnd->playback.buffer_pos * frame_bytes; in snd_copy_send_sco_data()
3254 if (pSCOSnd->playback.buffer_pos + period_size <= runtime->buffer_size) { in snd_copy_send_sco_data()
3258 frames1 = runtime->buffer_size - pSCOSnd->playback.buffer_pos; in snd_copy_send_sco_data()
3264 pSCOSnd->playback.buffer_pos += period_size; in snd_copy_send_sco_data()
3265 if ( pSCOSnd->playback.buffer_pos >= runtime->buffer_size) in snd_copy_send_sco_data()
3266 pSCOSnd->playback.buffer_pos -= runtime->buffer_size; in snd_copy_send_sco_data()
3269 …*((__u16 *)(skb->data + i * (sco_packet_bytes + HCI_SCO_HDR_SIZE))) = pSCOSnd->usb_data->sco_handl… in snd_copy_send_sco_data()
3275 if(test_bit(ALSA_PLAYBACK_RUNNING, &pSCOSnd->states)) { in snd_copy_send_sco_data()
3276 snd_pcm_period_elapsed(pSCOSnd->playback.substream); in snd_copy_send_sco_data()
3287 RTK_sco_card_t *pSCOSnd = data->pSCOSnd; in btusb_isoc_snd_tx_complete() local
3306 if(test_bit(ALSA_PLAYBACK_RUNNING, &pSCOSnd->states)){ in btusb_isoc_snd_tx_complete()
3307 snd_copy_send_sco_data(pSCOSnd); in btusb_isoc_snd_tx_complete()
3314 RTK_sco_card_t *pSCOSnd = container_of(work, RTK_sco_card_t, send_sco_work); in playback_work() local
3316 snd_copy_send_sco_data(pSCOSnd); in playback_work()
3589 set_bit(USB_CAPTURE_RUNNING, &data->pSCOSnd->states); in btusb_work()
3590 set_bit(USB_PLAYBACK_RUNNING, &data->pSCOSnd->states); in btusb_work()
3596 clear_bit(USB_CAPTURE_RUNNING, &data->pSCOSnd->states); in btusb_work()
3597 clear_bit(USB_PLAYBACK_RUNNING, &data->pSCOSnd->states); in btusb_work()
3798 RTK_sco_card_t *pSCOSnd = substream->private_data; in snd_sco_capture_pcm_open() local
3801 pSCOSnd->capture.substream = substream; in snd_sco_capture_pcm_open()
3805 if(check_controller_support_msbc(pSCOSnd->dev)) { in snd_sco_capture_pcm_open()
3812 set_bit(ALSA_CAPTURE_OPEN, &pSCOSnd->states); in snd_sco_capture_pcm_open()
3818 RTK_sco_card_t *pSCOSnd = substream->private_data; in snd_sco_capture_pcm_close() local
3820 clear_bit(ALSA_CAPTURE_OPEN, &pSCOSnd->states); in snd_sco_capture_pcm_close()
3853 RTK_sco_card_t *pSCOSnd = substream->private_data; in snd_sco_capture_pcm_prepare() local
3857 if (test_bit(DISCONNECTED, &pSCOSnd->states)) in snd_sco_capture_pcm_prepare()
3859 if (!test_bit(USB_CAPTURE_RUNNING, &pSCOSnd->states)) in snd_sco_capture_pcm_prepare()
3863 if(pSCOSnd->usb_data->isoc_altsetting != 2) in snd_sco_capture_pcm_prepare()
3865 pSCOSnd->capture.sco_packet_bytes = 48; in snd_sco_capture_pcm_prepare()
3867 else if(runtime->rate == 16000 && check_controller_support_msbc(pSCOSnd->dev)) { in snd_sco_capture_pcm_prepare()
3868 if(pSCOSnd->usb_data->isoc_altsetting != 4) in snd_sco_capture_pcm_prepare()
3870 pSCOSnd->capture.sco_packet_bytes = 96; in snd_sco_capture_pcm_prepare()
3872 else if(pSCOSnd->usb_data->isoc_altsetting == 2) { in snd_sco_capture_pcm_prepare()
3873 pSCOSnd->capture.sco_packet_bytes = 48; in snd_sco_capture_pcm_prepare()
3875 else if(pSCOSnd->usb_data->isoc_altsetting == 1) { in snd_sco_capture_pcm_prepare()
3876 pSCOSnd->capture.sco_packet_bytes = 24; in snd_sco_capture_pcm_prepare()
3883 RTK_sco_card_t *pSCOSnd = substream->private_data; in snd_sco_capture_pcm_trigger() local
3888 if (!test_bit(USB_CAPTURE_RUNNING, &pSCOSnd->states)) in snd_sco_capture_pcm_trigger()
3890 set_bit(ALSA_CAPTURE_RUNNING, &pSCOSnd->states); in snd_sco_capture_pcm_trigger()
3893 clear_bit(ALSA_CAPTURE_RUNNING, &pSCOSnd->states); in snd_sco_capture_pcm_trigger()
3902 RTK_sco_card_t *pSCOSnd = substream->private_data; in snd_sco_capture_pcm_pointer() local
3904 return pSCOSnd->capture.buffer_pos; in snd_sco_capture_pcm_pointer()
3940 RTK_sco_card_t *pSCOSnd = substream->private_data; in snd_sco_playback_pcm_open() local
3945 if(check_controller_support_msbc(pSCOSnd->dev)) { in snd_sco_playback_pcm_open()
3952 pSCOSnd->playback.substream = substream; in snd_sco_playback_pcm_open()
3953 set_bit(ALSA_PLAYBACK_OPEN, &pSCOSnd->states); in snd_sco_playback_pcm_open()
3960 RTK_sco_card_t *pSCOSnd = substream->private_data; in snd_sco_playback_pcm_close() local
3962 clear_bit(ALSA_PLAYBACK_OPEN, &pSCOSnd->states); in snd_sco_playback_pcm_close()
3963 cancel_work_sync(&pSCOSnd->send_sco_work); in snd_sco_playback_pcm_close()
3994 RTK_sco_card_t *pSCOSnd = substream->private_data; in snd_sco_playback_pcm_prepare() local
3999 if (test_bit(DISCONNECTED, &pSCOSnd->states)) in snd_sco_playback_pcm_prepare()
4001 if (!test_bit(USB_PLAYBACK_RUNNING, &pSCOSnd->states)) in snd_sco_playback_pcm_prepare()
4005 if(pSCOSnd->usb_data->isoc_altsetting != 2) in snd_sco_playback_pcm_prepare()
4007 pSCOSnd->playback.sco_packet_bytes = 48; in snd_sco_playback_pcm_prepare()
4010 if(pSCOSnd->usb_data->isoc_altsetting != 4) in snd_sco_playback_pcm_prepare()
4012 pSCOSnd->playback.sco_packet_bytes = 96; in snd_sco_playback_pcm_prepare()
4020 RTK_sco_card_t *pSCOSnd = substream->private_data; in snd_sco_playback_pcm_trigger() local
4025 if (!test_bit(USB_PLAYBACK_RUNNING, &pSCOSnd->states)) in snd_sco_playback_pcm_trigger()
4027 set_bit(ALSA_PLAYBACK_RUNNING, &pSCOSnd->states); in snd_sco_playback_pcm_trigger()
4028 schedule_work(&pSCOSnd->send_sco_work); in snd_sco_playback_pcm_trigger()
4031 clear_bit(ALSA_PLAYBACK_RUNNING, &pSCOSnd->states); in snd_sco_playback_pcm_trigger()
4040 RTK_sco_card_t *pSCOSnd = substream->private_data; in snd_sco_playback_pcm_pointer() local
4042 return pSCOSnd->playback.buffer_pos; in snd_sco_playback_pcm_pointer()
4061 RTK_sco_card_t *pSCOSnd; in btusb_snd_init() local
4072 pSCOSnd = (RTK_sco_card_t *)card->private_data; in btusb_snd_init()
4073 pSCOSnd->card = card; in btusb_snd_init()
4074 pSCOSnd->dev = interface_to_usbdev(intf); in btusb_snd_init()
4075 pSCOSnd->usb_data = data; in btusb_snd_init()
4080 id->idVendor, pSCOSnd->dev->descriptor.idProduct); in btusb_snd_init()
4082 err = snd_pcm_new(card, RTK_SCO_ID, 0, 1, 1, &pSCOSnd->pcm); in btusb_snd_init()
4087 pSCOSnd->pcm->private_data = pSCOSnd; in btusb_snd_init()
4088 sprintf(pSCOSnd->pcm->name, "sco_pcm:VID:0x%04x, PID:0x%04x", in btusb_snd_init()
4089 id->idVendor, pSCOSnd->dev->descriptor.idProduct); in btusb_snd_init()
4091 snd_pcm_set_ops(pSCOSnd->pcm, SNDRV_PCM_STREAM_PLAYBACK, &snd_sco_playback_pcm_ops); in btusb_snd_init()
4092 snd_pcm_set_ops(pSCOSnd->pcm, SNDRV_PCM_STREAM_CAPTURE, &snd_sco_capture_pcm_ops); in btusb_snd_init()
4100 spin_lock_init(&pSCOSnd->capture_lock); in btusb_snd_init()
4101 spin_lock_init(&pSCOSnd->playback_lock); in btusb_snd_init()
4102 INIT_WORK(&pSCOSnd->send_sco_work, playback_work); in btusb_snd_init()
4103 return pSCOSnd; in btusb_snd_init()
4232 data->pSCOSnd = btusb_snd_init(intf, id, data); in btusb_probe()
4301 RTK_sco_card_t *pSCOSnd = data->pSCOSnd; in btusb_disconnect() local
4302 if(!pSCOSnd) { in btusb_disconnect()
4306 set_bit(DISCONNECTED, &pSCOSnd->states); in btusb_disconnect()
4307 snd_card_disconnect(pSCOSnd->card); in btusb_disconnect()
4308 snd_card_free_when_closed(pSCOSnd->card); in btusb_disconnect()