gosnd              67 drivers/media/usb/go7007/snd-go7007.c 	struct go7007_snd *gosnd = go->snd_context;
gosnd              68 drivers/media/usb/go7007/snd-go7007.c 	struct snd_pcm_runtime *runtime = gosnd->substream->runtime;
gosnd              72 drivers/media/usb/go7007/snd-go7007.c 	spin_lock_irqsave(&gosnd->lock, flags);
gosnd              73 drivers/media/usb/go7007/snd-go7007.c 	gosnd->hw_ptr += frames;
gosnd              74 drivers/media/usb/go7007/snd-go7007.c 	if (gosnd->hw_ptr >= runtime->buffer_size)
gosnd              75 drivers/media/usb/go7007/snd-go7007.c 		gosnd->hw_ptr -= runtime->buffer_size;
gosnd              76 drivers/media/usb/go7007/snd-go7007.c 	gosnd->avail += frames;
gosnd              77 drivers/media/usb/go7007/snd-go7007.c 	spin_unlock_irqrestore(&gosnd->lock, flags);
gosnd              78 drivers/media/usb/go7007/snd-go7007.c 	if (gosnd->w_idx + length > runtime->dma_bytes) {
gosnd              79 drivers/media/usb/go7007/snd-go7007.c 		int cpy = runtime->dma_bytes - gosnd->w_idx;
gosnd              81 drivers/media/usb/go7007/snd-go7007.c 		memcpy(runtime->dma_area + gosnd->w_idx, buf, cpy);
gosnd              84 drivers/media/usb/go7007/snd-go7007.c 		gosnd->w_idx = 0;
gosnd              86 drivers/media/usb/go7007/snd-go7007.c 	memcpy(runtime->dma_area + gosnd->w_idx, buf, length);
gosnd              87 drivers/media/usb/go7007/snd-go7007.c 	gosnd->w_idx += length;
gosnd              88 drivers/media/usb/go7007/snd-go7007.c 	spin_lock_irqsave(&gosnd->lock, flags);
gosnd              89 drivers/media/usb/go7007/snd-go7007.c 	if (gosnd->avail < runtime->period_size) {
gosnd              90 drivers/media/usb/go7007/snd-go7007.c 		spin_unlock_irqrestore(&gosnd->lock, flags);
gosnd              93 drivers/media/usb/go7007/snd-go7007.c 	gosnd->avail -= runtime->period_size;
gosnd              94 drivers/media/usb/go7007/snd-go7007.c 	spin_unlock_irqrestore(&gosnd->lock, flags);
gosnd              95 drivers/media/usb/go7007/snd-go7007.c 	if (gosnd->capturing)
gosnd              96 drivers/media/usb/go7007/snd-go7007.c 		snd_pcm_period_elapsed(gosnd->substream);
gosnd             131 drivers/media/usb/go7007/snd-go7007.c 	struct go7007_snd *gosnd = go->snd_context;
gosnd             135 drivers/media/usb/go7007/snd-go7007.c 	spin_lock_irqsave(&gosnd->lock, flags);
gosnd             136 drivers/media/usb/go7007/snd-go7007.c 	if (gosnd->substream == NULL) {
gosnd             137 drivers/media/usb/go7007/snd-go7007.c 		gosnd->substream = substream;
gosnd             142 drivers/media/usb/go7007/snd-go7007.c 	spin_unlock_irqrestore(&gosnd->lock, flags);
gosnd             149 drivers/media/usb/go7007/snd-go7007.c 	struct go7007_snd *gosnd = go->snd_context;
gosnd             151 drivers/media/usb/go7007/snd-go7007.c 	gosnd->substream = NULL;
gosnd             163 drivers/media/usb/go7007/snd-go7007.c 	struct go7007_snd *gosnd = go->snd_context;
gosnd             169 drivers/media/usb/go7007/snd-go7007.c 		gosnd->capturing = 1;
gosnd             172 drivers/media/usb/go7007/snd-go7007.c 		gosnd->hw_ptr = gosnd->w_idx = gosnd->avail = 0;
gosnd             173 drivers/media/usb/go7007/snd-go7007.c 		gosnd->capturing = 0;
gosnd             183 drivers/media/usb/go7007/snd-go7007.c 	struct go7007_snd *gosnd = go->snd_context;
gosnd             185 drivers/media/usb/go7007/snd-go7007.c 	return gosnd->hw_ptr;
gosnd             222 drivers/media/usb/go7007/snd-go7007.c 	struct go7007_snd *gosnd;
gosnd             231 drivers/media/usb/go7007/snd-go7007.c 	gosnd = kmalloc(sizeof(struct go7007_snd), GFP_KERNEL);
gosnd             232 drivers/media/usb/go7007/snd-go7007.c 	if (gosnd == NULL)
gosnd             234 drivers/media/usb/go7007/snd-go7007.c 	spin_lock_init(&gosnd->lock);
gosnd             235 drivers/media/usb/go7007/snd-go7007.c 	gosnd->hw_ptr = gosnd->w_idx = gosnd->avail = 0;
gosnd             236 drivers/media/usb/go7007/snd-go7007.c 	gosnd->capturing = 0;
gosnd             238 drivers/media/usb/go7007/snd-go7007.c 			   &gosnd->card);
gosnd             240 drivers/media/usb/go7007/snd-go7007.c 		kfree(gosnd);
gosnd             243 drivers/media/usb/go7007/snd-go7007.c 	ret = snd_device_new(gosnd->card, SNDRV_DEV_LOWLEVEL, go,
gosnd             246 drivers/media/usb/go7007/snd-go7007.c 		kfree(gosnd);
gosnd             249 drivers/media/usb/go7007/snd-go7007.c 	ret = snd_pcm_new(gosnd->card, "go7007", 0, 0, 1, &gosnd->pcm);
gosnd             251 drivers/media/usb/go7007/snd-go7007.c 		snd_card_free(gosnd->card);
gosnd             252 drivers/media/usb/go7007/snd-go7007.c 		kfree(gosnd);
gosnd             255 drivers/media/usb/go7007/snd-go7007.c 	strscpy(gosnd->card->driver, "go7007", sizeof(gosnd->card->driver));
gosnd             256 drivers/media/usb/go7007/snd-go7007.c 	strscpy(gosnd->card->shortname, go->name, sizeof(gosnd->card->shortname));
gosnd             257 drivers/media/usb/go7007/snd-go7007.c 	strscpy(gosnd->card->longname, gosnd->card->shortname,
gosnd             258 drivers/media/usb/go7007/snd-go7007.c 		sizeof(gosnd->card->longname));
gosnd             260 drivers/media/usb/go7007/snd-go7007.c 	gosnd->pcm->private_data = go;
gosnd             261 drivers/media/usb/go7007/snd-go7007.c 	snd_pcm_set_ops(gosnd->pcm, SNDRV_PCM_STREAM_CAPTURE,
gosnd             264 drivers/media/usb/go7007/snd-go7007.c 	ret = snd_card_register(gosnd->card);
gosnd             266 drivers/media/usb/go7007/snd-go7007.c 		snd_card_free(gosnd->card);
gosnd             267 drivers/media/usb/go7007/snd-go7007.c 		kfree(gosnd);
gosnd             271 drivers/media/usb/go7007/snd-go7007.c 	gosnd->substream = NULL;
gosnd             272 drivers/media/usb/go7007/snd-go7007.c 	go->snd_context = gosnd;
gosnd             282 drivers/media/usb/go7007/snd-go7007.c 	struct go7007_snd *gosnd = go->snd_context;
gosnd             284 drivers/media/usb/go7007/snd-go7007.c 	snd_card_disconnect(gosnd->card);
gosnd             285 drivers/media/usb/go7007/snd-go7007.c 	snd_card_free_when_closed(gosnd->card);