Lines Matching defs:runtime
68 struct snd_usb_substream *subs = substream->runtime->private_data;
75 substream->runtime->delay = snd_usb_pcm_delay(subs,
76 substream->runtime->rate);
78 return hwptr_done / (substream->runtime->frame_bits >> 3);
281 struct snd_usb_substream *subs = substream->runtime->private_data;
823 struct snd_usb_substream *subs = substream->runtime->private_data;
881 struct snd_usb_substream *subs = substream->runtime->private_data;
905 struct snd_pcm_runtime *runtime = substream->runtime;
906 struct snd_usb_substream *subs = runtime->private_data;
950 /* some unit conversions in runtime */
952 bytes_to_frames(runtime, subs->data_endpoint->maxpacksize);
954 bytes_to_frames(runtime, subs->data_endpoint->curpacksize);
961 runtime->delay = 0;
1208 static int snd_usb_pcm_check_knot(struct snd_pcm_runtime *runtime,
1241 err = snd_pcm_hw_constraint_list(runtime, 0, SNDRV_PCM_HW_PARAM_RATE,
1251 * set up the runtime hardware information.
1254 static int setup_hw_info(struct snd_pcm_runtime *runtime, struct snd_usb_substream *subs)
1261 runtime->hw.formats = subs->formats;
1263 runtime->hw.rate_min = 0x7fffffff;
1264 runtime->hw.rate_max = 0;
1265 runtime->hw.channels_min = 256;
1266 runtime->hw.channels_max = 0;
1267 runtime->hw.rates = 0;
1271 runtime->hw.rates |= fp->rates;
1272 if (runtime->hw.rate_min > fp->rate_min)
1273 runtime->hw.rate_min = fp->rate_min;
1274 if (runtime->hw.rate_max < fp->rate_max)
1275 runtime->hw.rate_max = fp->rate_max;
1276 if (runtime->hw.channels_min > fp->channels)
1277 runtime->hw.channels_min = fp->channels;
1278 if (runtime->hw.channels_max < fp->channels)
1279 runtime->hw.channels_max = fp->channels;
1282 runtime->hw.period_bytes_min = runtime->hw.period_bytes_max =
1297 err = snd_pcm_hw_constraint_minmax(runtime,
1303 err = snd_pcm_hw_rule_add(runtime, 0, SNDRV_PCM_HW_PARAM_RATE,
1311 err = snd_pcm_hw_rule_add(runtime, 0, SNDRV_PCM_HW_PARAM_CHANNELS,
1319 err = snd_pcm_hw_rule_add(runtime, 0, SNDRV_PCM_HW_PARAM_FORMAT,
1328 err = snd_pcm_hw_rule_add(runtime, 0,
1338 err = snd_usb_pcm_check_knot(runtime, subs);
1349 struct snd_pcm_runtime *runtime = substream->runtime;
1355 runtime->hw = snd_usb_hardware;
1356 runtime->private_data = subs;
1358 /* runtime PM is also done there */
1365 ret = setup_hw_info(runtime, subs);
1408 struct snd_pcm_runtime *runtime = subs->pcm_substream->runtime;
1418 stride = runtime->frame_bits >> 3;
1437 if (bytes % (runtime->sample_bits >> 3) != 0) {
1448 if (subs->hwptr_done >= runtime->buffer_size * stride)
1449 subs->hwptr_done -= runtime->buffer_size * stride;
1452 if (subs->transfer_done >= runtime->period_size) {
1453 subs->transfer_done -= runtime->period_size;
1459 runtime->delay = subs->last_delay = 0;
1467 if (oldptr + bytes > runtime->buffer_size * stride) {
1469 runtime->buffer_size * stride - oldptr;
1470 memcpy(runtime->dma_area + oldptr, cp, bytes1);
1471 memcpy(runtime->dma_area, cp + bytes1, bytes - bytes1);
1473 memcpy(runtime->dma_area + oldptr, cp, bytes);
1484 struct snd_pcm_runtime *runtime = subs->pcm_substream->runtime;
1485 unsigned int stride = runtime->frame_bits >> 3;
1488 unsigned int wrap = runtime->buffer_size * stride;
1490 u8 *src = runtime->dma_area;
1516 if (++subs->dsd_dop.channel % runtime->channels == 0) {
1534 if (subs->hwptr_done >= runtime->buffer_size * stride)
1535 subs->hwptr_done -= runtime->buffer_size * stride;
1541 struct snd_pcm_runtime *runtime = subs->pcm_substream->runtime;
1543 if (subs->hwptr_done + bytes > runtime->buffer_size * stride) {
1546 runtime->buffer_size * stride - subs->hwptr_done;
1548 runtime->dma_area + subs->hwptr_done, bytes1);
1550 runtime->dma_area, bytes - bytes1);
1553 runtime->dma_area + subs->hwptr_done, bytes);
1556 if (subs->hwptr_done >= runtime->buffer_size * stride)
1557 subs->hwptr_done -= runtime->buffer_size * stride;
1589 struct snd_pcm_runtime *runtime = subs->pcm_substream->runtime;
1596 stride = runtime->frame_bits >> 3;
1616 if (subs->transfer_done >= runtime->period_size) {
1617 subs->transfer_done -= runtime->period_size;
1658 % (runtime->buffer_size * stride);
1659 buf[i] = bitrev8(runtime->dma_area[idx]);
1663 if (subs->hwptr_done >= runtime->buffer_size * stride)
1664 subs->hwptr_done -= runtime->buffer_size * stride;
1675 runtime->delay = subs->last_delay;
1676 runtime->delay += frames;
1677 subs->last_delay = runtime->delay;
1687 snd_pcm_gettime(runtime, &runtime->trigger_tstamp);
1705 struct snd_pcm_runtime *runtime = subs->pcm_substream->runtime;
1720 est_delay = snd_usb_pcm_delay(subs, runtime->rate);
1726 runtime->delay = subs->last_delay;
1733 if (abs(est_delay - subs->last_delay) * 1000 > runtime->rate * 2)
1753 struct snd_usb_substream *subs = substream->runtime->private_data;
1790 struct snd_usb_substream *subs = substream->runtime->private_data;