• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/sound/drivers/

Lines Matching refs:rec

41 			    struct snd_pcm_indirect2 *rec)
47 int seconds = (rec->lastbytetime - rec->firstbytetime) / HZ;
51 rec->mul_elapsed, rec->mul_elapsed_real, rec->irq_occured);
53 rec->min_multiple);
56 rec->firstbytetime, rec->lastbytetime, rec->firstzerotime);
59 rec->bytes2hw, rec->bytes2hw / 2 / 2 / runtime->rate);
62 seconds, rec->bytes2hw / seconds,
63 rec->bytes2hw / 2 / 2 / seconds);
66 rec->zeros2hw, ((rec->zeros2hw / 2 / 2) * 1000) /
68 rec->zeros2hw / (rec->hw_buffer_size / 2),
69 (rec->hw_buffer_size / 2));
71 rec->pointer_calls, rec->lastdifftime);
72 snd_printk(KERN_DEBUG "STAT: sw_io: %d, sw_data: %d\n", rec->sw_io,
73 rec->sw_data);
78 if (rec->byte_sizes[i] != 0) {
80 i, rec->byte_sizes[i]);
93 if (rec->zero_sizes[i] != 0)
95 i, rec->zero_sizes[i]);
104 if (rec->min_adds[j] != 0)
105 snd_printk(KERN_DEBUG "%u: %u", j, rec->min_adds[j]);
110 if (rec->mul_adds[j] != 0)
111 snd_printk(KERN_DEBUG "%u: %u", j, rec->mul_adds[j]);
116 rec->zero_times_saved, rec->zero_times_notsaved);
120 if (rec->zero_times[j] != 0) {
121 snd_printk(KERN_DEBUG "%u: %u", j, rec->zero_times[j]);
137 struct snd_pcm_indirect2 *rec,
141 if (rec->min_periods >= 0) {
143 rec->sw_io += bytes;
144 if (rec->sw_io >= rec->sw_buffer_size)
145 rec->sw_io -= rec->sw_buffer_size;
152 if (!rec->check_alignment) {
153 if (rec->bytes2hw %
157 (rec->bytes2hw /
162 rec->sw_data =
164 rec->sw_buffer_size;
172 rec->bytes2hw);
176 rec->sw_data);
179 rec->check_alignment = 1;
187 if (rec->sw_io != rec->sw_data) {
189 if (rec->sw_data > rec->sw_io)
190 diff = rec->sw_data - rec->sw_io;
192 diff = (rec->sw_buffer_size -
193 rec->sw_io) +
194 rec->sw_data;
196 rec->sw_io = rec->sw_data;
198 rec->sw_io += bytes;
199 if (rec->sw_io >= rec->sw_buffer_size)
200 rec->sw_io -=
201 rec->sw_buffer_size;
205 rec->min_period_count += bytes;
206 if (rec->min_period_count >= (rec->hw_buffer_size / 2)) {
207 rec->min_periods += (rec->min_period_count /
208 (rec->hw_buffer_size / 2));
210 if ((rec->min_period_count /
211 (rec->hw_buffer_size / 2)) > 7)
215 (rec->min_period_count /
216 (rec->hw_buffer_size / 2)));
218 rec->min_adds[(rec->min_period_count /
219 (rec->hw_buffer_size / 2))]++;
221 rec->min_period_count = (rec->min_period_count %
222 (rec->hw_buffer_size / 2));
225 rec->min_periods = 0;
233 struct snd_pcm_indirect2 *rec)
236 rec->pointer_calls++;
238 return bytes_to_frames(substream->runtime, rec->sw_io);
246 struct snd_pcm_indirect2 *rec,
254 * rec->appl_ptr: position where ALSA was last time
258 snd_pcm_sframes_t diff = appl_ptr - rec->appl_ptr;
262 rec->lastdifftime = jiffies;
268 * Then, set rec->appl_ptr to not count bytes twice next time.
270 rec->sw_ready += (int)frames_to_bytes(runtime, diff);
271 rec->appl_ptr = appl_ptr;
273 if (rec->hw_ready && (rec->sw_ready <= 0)) {
277 if (rec->firstzerotime == 0) {
278 rec->firstzerotime = jiffies;
282 rec->mul_elapsed, rec->min_period_count);
286 rec->sw_io, rec->sw_data,
289 if ((jiffies - rec->firstzerotime) < 3750) {
290 rec->zero_times[(jiffies - rec->firstzerotime)]++;
291 rec->zero_times_saved++;
293 rec->zero_times_notsaved++;
295 bytes = zero(substream, rec);
298 rec->zeros2hw += bytes;
300 rec->zero_sizes[bytes]++;
307 snd_pcm_indirect2_increase_min_periods(substream, rec, 1, 0,
311 while (rec->hw_ready && (rec->sw_ready > 0)) {
315 unsigned int sw_to_end = rec->sw_buffer_size - rec->sw_data;
318 unsigned int bytes = rec->sw_ready;
326 if (rec->firstbytetime == 0)
327 rec->firstbytetime = jiffies;
328 rec->lastbytetime = jiffies;
335 bytes = copy(substream, rec, bytes);
336 rec->bytes2hw += bytes;
340 rec->byte_sizes[bytes]++;
350 rec->sw_data += bytes;
351 if (rec->sw_data == rec->sw_buffer_size)
352 rec->sw_data = 0;
358 snd_pcm_indirect2_increase_min_periods(substream, rec, 1, 1,
365 rec->sw_ready -= bytes;
375 struct snd_pcm_indirect2 *rec,
380 rec->irq_occured++;
383 rec->hw_ready = 1;
388 snd_pcm_indirect2_playback_transfer(substream, rec, copy, zero);
390 if (rec->min_periods >= rec->min_multiple) {
392 if ((rec->min_periods / rec->min_multiple) > 7)
396 (rec->min_periods / rec->min_multiple));
398 rec->mul_adds[(rec->min_periods /
399 rec->min_multiple)]++;
400 rec->mul_elapsed_real += (rec->min_periods /
401 rec->min_multiple);
402 rec->mul_elapsed++;
404 rec->min_periods = (rec->min_periods % rec->min_multiple);
414 struct snd_pcm_indirect2 *rec,
420 snd_pcm_sframes_t diff = appl_ptr - rec->appl_ptr;
424 rec->lastdifftime = jiffies;
428 rec->sw_ready -= frames_to_bytes(runtime, diff);
429 rec->appl_ptr = appl_ptr;
434 if (rec->hw_ready && (rec->sw_ready >= (int)rec->sw_buffer_size)) {
438 if (rec->firstzerotime == 0) {
439 rec->firstzerotime = jiffies;
443 rec->mul_elapsed, rec->min_period_count);
447 rec->sw_io, rec->sw_data,
450 if ((jiffies - rec->firstzerotime) < 3750) {
451 rec->zero_times[(jiffies - rec->firstzerotime)]++;
452 rec->zero_times_saved++;
454 rec->zero_times_notsaved++;
456 bytes = null(substream, rec);
459 rec->zeros2hw += bytes;
461 rec->zero_sizes[bytes]++;
468 snd_pcm_indirect2_increase_min_periods(substream, rec, 0, 0,
471 rec->sw_io = SNDRV_PCM_POS_XRUN;
474 while (rec->hw_ready && (rec->sw_ready < (int)rec->sw_buffer_size)) {
478 size_t sw_to_end = rec->sw_buffer_size - rec->sw_data;
483 size_t bytes = rec->sw_buffer_size - rec->sw_ready;
494 if (rec->firstbytetime == 0)
495 rec->firstbytetime = jiffies;
496 rec->lastbytetime = jiffies;
503 bytes = copy(substream, rec, bytes);
504 rec->bytes2hw += bytes;
508 rec->byte_sizes[bytes]++;
518 rec->sw_data += bytes;
519 if (rec->sw_data == rec->sw_buffer_size)
520 rec->sw_data = 0;
522 snd_pcm_indirect2_increase_min_periods(substream, rec, 0, 1,
528 rec->sw_ready += bytes;
538 struct snd_pcm_indirect2 *rec,
543 rec->irq_occured++;
548 rec->hw_ready = 1;
553 snd_pcm_indirect2_capture_transfer(substream, rec, copy, null);
555 if (rec->min_periods >= rec->min_multiple) {
558 if ((rec->min_periods / rec->min_multiple) > 7)
562 (rec->min_periods / rec->min_multiple));
564 rec->mul_adds[(rec->min_periods /
565 rec->min_multiple)]++;
566 rec->mul_elapsed_real += (rec->min_periods /
567 rec->min_multiple);
568 rec->mul_elapsed++;
570 rec->min_periods = (rec->min_periods % rec->min_multiple);