Alsa-Devel Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: "Alexander E. Patrakov" <patrakov@gmail.com>
To: Clemens Ladisch <clemens@ladisch.de>,
	Raymond Yau <superquad.vortex2@gmail.com>
Cc: Takashi Iwai <tiwai@suse.de>,
	ALSA Development Mailing List <alsa-devel@alsa-project.org>,
	Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>,
	David Henningsson <david.henningsson@canonical.com>,
	Takashi Sakamoto <o-takashi@sakamocchi.jp>
Subject: Re: Master Plan on rewinding
Date: Sun, 21 Sep 2014 16:56:47 +0600	[thread overview]
Message-ID: <541EAEEF.7070007@gmail.com> (raw)
In-Reply-To: <541EA036.5010707@ladisch.de>

[-- Attachment #1: Type: text/plain, Size: 1025 bytes --]

21.09.2014 15:53, Clemens Ladisch wrote:
> Raymond Yau wrote:
>> Does snd-oxygen provide this position with granularity which is less than
>> the minimum period size ?
>
> Yes.  Its DMA controller uses a burst size of 32 bytes.  The pointer registers
> are documented as reporting the position with 4-byte accuracy, but there were
> problems when the period/buffer sizes were not aligned to 32 bytes.  I've set
> the minimum period size to 64 bytes, just to be safe.

Well, my friend has tested the card anyway, and I am afraid that the 
situation is in fact more complex than documented. Look how fast (8 
samples per ioctl in a busy loop!) the card eats the first 256 samples. 
This is very suspicious, and I am not really sure whether we can 
actually perform a rewind over these 256 samples.

The "usual" step of the pointer updates (via snd_pcm_avail) is indeed 8 
samples = 32 bytes with some fine-grained updates sometimes showing up 
in the middle, which matches the documented burst size.

-- 
Alexander E. Patrakov

[-- Attachment #2: pcm_avail.c --]
[-- Type: text/x-csrc, Size: 3669 bytes --]

/*
 *  This extra small demo sends silence to your speakers and tests the precision of the reported position.
 */

#include <asoundlib.h>

#include <stdio.h>
#include <stdlib.h>

const char* device = "hw:0";
const int channels = 2;
const snd_pcm_sframes_t period_size = 1024;
const int periods = 4;
const int rate = 48000;


int main(int argc, char* argv[])
{
        int err;
	int failed = 0;
        unsigned int j;
	short *silence;
	snd_pcm_sframes_t avail = -1;
	snd_pcm_uframes_t min_period_size;
	snd_pcm_uframes_t boundary;
	int dir;

        snd_pcm_t *handle;
	snd_output_t *out = NULL;

	snd_pcm_hw_params_t *params;
	snd_pcm_sw_params_t *swparams;

	snd_pcm_hw_params_alloca(&params);
	snd_pcm_sw_params_alloca(&swparams);

	snd_output_stdio_attach(&out, stderr, 0);
	silence = calloc(period_size * periods, sizeof(short) * channels);

	if ((err = snd_pcm_open(&handle, device, SND_PCM_STREAM_PLAYBACK, 0)) < 0) {
		fprintf(stderr, "Playback open error: %s\n", snd_strerror(err));
		exit(EXIT_FAILURE);
	}

	failed =           (err = snd_pcm_hw_params_any(handle, params)) < 0;
	failed = failed || (err = snd_pcm_hw_params_set_rate_resample(handle, params, 1)) < 0;
	failed = failed || (err = snd_pcm_hw_params_set_access(handle, params, SND_PCM_ACCESS_RW_INTERLEAVED)) < 0;
	failed = failed || (err = snd_pcm_hw_params_set_format(handle, params, SND_PCM_FORMAT_S16)) < 0;
	failed = failed || (err = snd_pcm_hw_params_set_channels(handle, params, channels)) < 0;
	failed = failed || (err = snd_pcm_hw_params_set_rate(handle, params, rate, 0)) < 0;

	if (failed) {
		fprintf(stderr, "Playback hwparams (access & format) error: %s\n", snd_strerror(err));
		exit(EXIT_FAILURE);
	}

	err = snd_pcm_hw_params_get_period_size_min(params, &min_period_size, &dir);
	if (err < 0) {
		fprintf(stderr, "Cannot get minimum period size: %s\n", snd_strerror(err));
	}

	fprintf(stderr, "min_period_size: %d frames, dir: %d\n", (int)min_period_size, dir);

	failed =           (err = snd_pcm_hw_params_set_period_size(handle, params, period_size, 0)) < 0;
	failed = failed || (err = snd_pcm_hw_params_set_periods(handle, params, periods, 0)) < 0;
	failed = failed || (err = snd_pcm_hw_params(handle, params)) < 0;
	if (failed) {
		fprintf(stderr, "Playback hwparams (period size & periods) error: %s\n", snd_strerror(err));
		exit(EXIT_FAILURE);
	}

	err = snd_pcm_hw_params_get_fifo_size(params);
	if (err < 0) {
		fprintf(stderr, "Playback hwparams: can't get FIFO size, error: %s\n", snd_strerror(err));
	} else {
		fprintf(stderr, "Playback hwparams: FIFO size is %d\n", err);
	}

	failed =           (err = snd_pcm_sw_params_current(handle, swparams)) < 0;
	failed = failed || (err = snd_pcm_sw_params_set_start_threshold(handle, swparams, period_size)) < 0;
	failed = failed || (err = snd_pcm_sw_params_set_avail_min(handle, swparams, period_size)) < 0;
	failed = failed || (err = snd_pcm_sw_params(handle, swparams)) < 0;
	if (failed) {
		fprintf(stderr, "Playback swparams error: %s\n", snd_strerror(err));
		exit(EXIT_FAILURE);
	}

	snd_pcm_dump(handle, out);
	fprintf(stderr, "Playing silence\n");
	fflush(stderr);
	memset(silence, 0, period_size * periods * sizeof(short) * channels);
	err = snd_pcm_writei(handle, silence, period_size * periods);
	if (err < 0) {
		fprintf(stderr, "Playback error: %s\n", snd_strerror(err));
		exit(EXIT_FAILURE);
	}

	j = 0;
	while (1) {
		snd_pcm_sframes_t avail1 = snd_pcm_avail(handle);
		if (avail1 < 0)
			break;
		if (avail != avail1) {
			fprintf(stderr, "Available: %d, loop iteration: %d\n", (int)avail1, j);
		}
		avail = avail1;
		j++;
	}
	snd_pcm_drop(handle);
	snd_pcm_close(handle);

	free(silence);
	return 0;
}

[-- Attachment #3: report.txt --]
[-- Type: text/plain, Size: 22544 bytes --]

min_period_size: 16 frames, dir: 0
Playback hwparams: FIFO size is 0
Hardware PCM card 0 'Xonar DX' device 0 subdevice 0
Its setup is:
  stream       : PLAYBACK
  access       : RW_INTERLEAVED
  format       : S16_LE
  subformat    : STD
  channels     : 2
  rate         : 48000
  exact rate   : 48000 (48000/1)
  msbits       : 16
  buffer_size  : 4096
  period_size  : 1024
  period_time  : 21333
  tstamp_mode  : NONE
  period_step  : 1
  avail_min    : 1024
  period_event : 0
  start_threshold  : 1024
  stop_threshold   : 4096
  silence_threshold: 0
  silence_size : 0
  boundary     : 4611686018427387904
  appl_ptr     : 0
  hw_ptr       : 0
Playing silence
Available: 16, loop iteration: 0
Available: 32, loop iteration: 1
Available: 40, loop iteration: 2
Available: 49, loop iteration: 3
Available: 56, loop iteration: 4
Available: 64, loop iteration: 5
Available: 72, loop iteration: 6
Available: 88, loop iteration: 7
Available: 96, loop iteration: 8
Available: 112, loop iteration: 9
Available: 120, loop iteration: 10
Available: 128, loop iteration: 11
Available: 144, loop iteration: 12
Available: 152, loop iteration: 13
Available: 164, loop iteration: 14
Available: 168, loop iteration: 15
Available: 176, loop iteration: 16
Available: 192, loop iteration: 17
Available: 200, loop iteration: 18
Available: 213, loop iteration: 19
Available: 216, loop iteration: 20
Available: 224, loop iteration: 21
Available: 240, loop iteration: 22
Available: 248, loop iteration: 23
Available: 256, loop iteration: 24
Available: 264, loop iteration: 66
Available: 272, loop iteration: 142
Available: 280, loop iteration: 219
Available: 286, loop iteration: 295
Available: 288, loop iteration: 296
Available: 296, loop iteration: 371
Available: 304, loop iteration: 447
Available: 312, loop iteration: 524
Available: 315, loop iteration: 600
Available: 320, loop iteration: 601
Available: 328, loop iteration: 676
Available: 336, loop iteration: 753
Available: 337, loop iteration: 829
Available: 344, loop iteration: 830
Available: 352, loop iteration: 905
Available: 360, loop iteration: 982
Available: 368, loop iteration: 1054
Available: 376, loop iteration: 1130
Available: 384, loop iteration: 1207
Available: 392, loop iteration: 1283
Available: 400, loop iteration: 1360
Available: 403, loop iteration: 1436
Available: 408, loop iteration: 1437
Available: 414, loop iteration: 1512
Available: 416, loop iteration: 1513
Available: 424, loop iteration: 1588
Available: 432, loop iteration: 1665
Available: 440, loop iteration: 1741
Available: 448, loop iteration: 1818
Available: 456, loop iteration: 1894
Available: 464, loop iteration: 1971
Available: 472, loop iteration: 2047
Available: 480, loop iteration: 2124
Available: 488, loop iteration: 2200
Available: 496, loop iteration: 2277
Available: 498, loop iteration: 2353
Available: 504, loop iteration: 2354
Available: 510, loop iteration: 2429
Available: 512, loop iteration: 2430
Available: 520, loop iteration: 2505
Available: 528, loop iteration: 2582
Available: 536, loop iteration: 2658
Available: 544, loop iteration: 2735
Available: 552, loop iteration: 2811
Available: 560, loop iteration: 2881
Available: 561, loop iteration: 2960
Available: 568, loop iteration: 2961
Available: 570, loop iteration: 3046
Available: 576, loop iteration: 3047
Available: 584, loop iteration: 3133
Available: 592, loop iteration: 3220
Available: 600, loop iteration: 3303
Available: 608, loop iteration: 3389
Available: 616, loop iteration: 3476
Available: 624, loop iteration: 3563
Available: 625, loop iteration: 3650
Available: 630, loop iteration: 3651
Available: 632, loop iteration: 3652
Available: 640, loop iteration: 3733
Available: 648, loop iteration: 3818
Available: 656, loop iteration: 3901
Available: 664, loop iteration: 3940
Available: 672, loop iteration: 4009
Available: 680, loop iteration: 4091
Available: 688, loop iteration: 4170
Available: 696, loop iteration: 4211
Available: 700, loop iteration: 4278
Available: 704, loop iteration: 4279
Available: 712, loop iteration: 4363
Available: 720, loop iteration: 4447
Available: 725, loop iteration: 4527
Available: 728, loop iteration: 4528
Available: 736, loop iteration: 4613
Available: 744, loop iteration: 4696
Available: 752, loop iteration: 4774
Available: 760, loop iteration: 4856
Available: 768, loop iteration: 4940
Available: 776, loop iteration: 5024
Available: 779, loop iteration: 5108
Available: 784, loop iteration: 5109
Available: 792, loop iteration: 5194
Available: 800, loop iteration: 5274
Available: 808, loop iteration: 5359
Available: 816, loop iteration: 5445
Available: 820, loop iteration: 5532
Available: 824, loop iteration: 5533
Available: 832, loop iteration: 5619
Available: 835, loop iteration: 5706
Available: 840, loop iteration: 5707
Available: 848, loop iteration: 5793
Available: 856, loop iteration: 5881
Available: 864, loop iteration: 5968
Available: 872, loop iteration: 6056
Available: 880, loop iteration: 6143
Available: 888, loop iteration: 6228
Available: 891, loop iteration: 6270
Available: 893, loop iteration: 6271
Available: 896, loop iteration: 6272
Available: 904, loop iteration: 6357
Available: 912, loop iteration: 6444
Available: 920, loop iteration: 6532
Available: 928, loop iteration: 6619
Available: 936, loop iteration: 6706
Available: 944, loop iteration: 6786
Available: 952, loop iteration: 6873
Available: 960, loop iteration: 6960
Available: 961, loop iteration: 7046
Available: 968, loop iteration: 7047
Available: 976, loop iteration: 7133
Available: 984, loop iteration: 7220
Available: 992, loop iteration: 7307
Available: 1000, loop iteration: 7394
Available: 1008, loop iteration: 7481
Available: 1016, loop iteration: 7568
Available: 1024, loop iteration: 7655
Available: 1032, loop iteration: 7738
Available: 1040, loop iteration: 7825
Available: 1048, loop iteration: 7912
Available: 1056, loop iteration: 7999
Available: 1064, loop iteration: 8086
Available: 1072, loop iteration: 8173
Available: 1080, loop iteration: 8260
Available: 1088, loop iteration: 8347
Available: 1096, loop iteration: 8434
Available: 1104, loop iteration: 8521
Available: 1112, loop iteration: 8608
Available: 1120, loop iteration: 8695
Available: 1128, loop iteration: 8782
Available: 1136, loop iteration: 8863
Available: 1144, loop iteration: 8949
Available: 1152, loop iteration: 9034
Available: 1160, loop iteration: 9119
Available: 1168, loop iteration: 9206
Available: 1170, loop iteration: 9293
Available: 1174, loop iteration: 9294
Available: 1176, loop iteration: 9295
Available: 1184, loop iteration: 9380
Available: 1192, loop iteration: 9466
Available: 1200, loop iteration: 9554
Available: 1208, loop iteration: 9641
Available: 1216, loop iteration: 9729
Available: 1220, loop iteration: 9816
Available: 1224, loop iteration: 9817
Available: 1232, loop iteration: 9903
Available: 1240, loop iteration: 9991
Available: 1248, loop iteration: 10078
Available: 1256, loop iteration: 10166
Available: 1264, loop iteration: 10253
Available: 1272, loop iteration: 10340
Available: 1280, loop iteration: 10427
Available: 1288, loop iteration: 10515
Available: 1296, loop iteration: 10602
Available: 1299, loop iteration: 10689
Available: 1304, loop iteration: 10690
Available: 1312, loop iteration: 10776
Available: 1313, loop iteration: 10863
Available: 1320, loop iteration: 10864
Available: 1328, loop iteration: 10948
Available: 1336, loop iteration: 11033
Available: 1344, loop iteration: 11120
Available: 1352, loop iteration: 11207
Available: 1360, loop iteration: 11295
Available: 1368, loop iteration: 11382
Available: 1376, loop iteration: 11468
Available: 1377, loop iteration: 11553
Available: 1384, loop iteration: 11554
Available: 1392, loop iteration: 11637
Available: 1400, loop iteration: 11722
Available: 1405, loop iteration: 11806
Available: 1408, loop iteration: 11807
Available: 1409, loop iteration: 11891
Available: 1416, loop iteration: 11892
Available: 1424, loop iteration: 11976
Available: 1432, loop iteration: 12056
Available: 1440, loop iteration: 12142
Available: 1448, loop iteration: 12229
Available: 1456, loop iteration: 12317
Available: 1464, loop iteration: 12404
Available: 1472, loop iteration: 12491
Available: 1480, loop iteration: 12578
Available: 1488, loop iteration: 12665
Available: 1496, loop iteration: 12753
Available: 1504, loop iteration: 12840
Available: 1512, loop iteration: 12927
Available: 1520, loop iteration: 12947
Available: 1528, loop iteration: 13026
Available: 1536, loop iteration: 13107
Available: 1544, loop iteration: 13180
Available: 1552, loop iteration: 13257
Available: 1553, loop iteration: 13331
Available: 1560, loop iteration: 13332
Available: 1568, loop iteration: 13400
Available: 1576, loop iteration: 13478
Available: 1584, loop iteration: 13560
Available: 1592, loop iteration: 13642
Available: 1600, loop iteration: 13724
Available: 1608, loop iteration: 13806
Available: 1616, loop iteration: 13888
Available: 1624, loop iteration: 13965
Available: 1626, loop iteration: 14043
Available: 1632, loop iteration: 14044
Available: 1640, loop iteration: 14117
Available: 1648, loop iteration: 14196
Available: 1656, loop iteration: 14275
Available: 1664, loop iteration: 14355
Available: 1672, loop iteration: 14435
Available: 1680, loop iteration: 14515
Available: 1688, loop iteration: 14595
Available: 1696, loop iteration: 14640
Available: 1704, loop iteration: 14717
Available: 1712, loop iteration: 14791
Available: 1720, loop iteration: 14871
Available: 1728, loop iteration: 14951
Available: 1736, loop iteration: 15031
Available: 1744, loop iteration: 15111
Available: 1752, loop iteration: 15192
Available: 1756, loop iteration: 15271
Available: 1760, loop iteration: 15272
Available: 1768, loop iteration: 15342
Available: 1776, loop iteration: 15423
Available: 1784, loop iteration: 15509
Available: 1792, loop iteration: 15596
Available: 1800, loop iteration: 15683
Available: 1808, loop iteration: 15770
Available: 1816, loop iteration: 15854
Available: 1824, loop iteration: 15934
Available: 1832, loop iteration: 16021
Available: 1840, loop iteration: 16108
Available: 1848, loop iteration: 16195
Available: 1856, loop iteration: 16282
Available: 1864, loop iteration: 16369
Available: 1872, loop iteration: 16456
Available: 1880, loop iteration: 16543
Available: 1888, loop iteration: 16630
Available: 1896, loop iteration: 16718
Available: 1904, loop iteration: 16803
Available: 1906, loop iteration: 16889
Available: 1912, loop iteration: 16890
Available: 1920, loop iteration: 16976
Available: 1928, loop iteration: 17063
Available: 1936, loop iteration: 17150
Available: 1944, loop iteration: 17237
Available: 1952, loop iteration: 17324
Available: 1960, loop iteration: 17411
Available: 1968, loop iteration: 17498
Available: 1976, loop iteration: 17585
Available: 1981, loop iteration: 17671
Available: 1984, loop iteration: 17672
Available: 1992, loop iteration: 17758
Available: 2000, loop iteration: 17845
Available: 2008, loop iteration: 17931
Available: 2016, loop iteration: 18018
Available: 2024, loop iteration: 18105
Available: 2032, loop iteration: 18192
Available: 2040, loop iteration: 18279
Available: 2048, loop iteration: 18366
Available: 2056, loop iteration: 18449
Available: 2064, loop iteration: 18536
Available: 2072, loop iteration: 18623
Available: 2080, loop iteration: 18710
Available: 2088, loop iteration: 18797
Available: 2096, loop iteration: 18882
Available: 2104, loop iteration: 18969
Available: 2112, loop iteration: 19056
Available: 2120, loop iteration: 19143
Available: 2128, loop iteration: 19230
Available: 2136, loop iteration: 19317
Available: 2144, loop iteration: 19404
Available: 2146, loop iteration: 19490
Available: 2152, loop iteration: 19491
Available: 2160, loop iteration: 19577
Available: 2168, loop iteration: 19664
Available: 2176, loop iteration: 19751
Available: 2184, loop iteration: 19838
Available: 2192, loop iteration: 19925
Available: 2200, loop iteration: 20012
Available: 2208, loop iteration: 20099
Available: 2216, loop iteration: 20186
Available: 2224, loop iteration: 20273
Available: 2229, loop iteration: 20359
Available: 2232, loop iteration: 20360
Available: 2240, loop iteration: 20446
Available: 2248, loop iteration: 20533
Available: 2256, loop iteration: 20618
Available: 2264, loop iteration: 20705
Available: 2272, loop iteration: 20792
Available: 2280, loop iteration: 20879
Available: 2288, loop iteration: 20963
Available: 2296, loop iteration: 21049
Available: 2297, loop iteration: 21135
Available: 2304, loop iteration: 21136
Available: 2312, loop iteration: 21222
Available: 2320, loop iteration: 21309
Available: 2326, loop iteration: 21395
Available: 2328, loop iteration: 21396
Available: 2336, loop iteration: 21482
Available: 2337, loop iteration: 21568
Available: 2344, loop iteration: 21569
Available: 2352, loop iteration: 21655
Available: 2360, loop iteration: 21742
Available: 2368, loop iteration: 21829
Available: 2376, loop iteration: 21916
Available: 2384, loop iteration: 22003
Available: 2392, loop iteration: 22090
Available: 2400, loop iteration: 22177
Available: 2408, loop iteration: 22264
Available: 2416, loop iteration: 22351
Available: 2424, loop iteration: 22438
Available: 2432, loop iteration: 22525
Available: 2440, loop iteration: 22612
Available: 2448, loop iteration: 22698
Available: 2456, loop iteration: 22785
Available: 2464, loop iteration: 22872
Available: 2472, loop iteration: 22959
Available: 2480, loop iteration: 23045
Available: 2488, loop iteration: 23132
Available: 2496, loop iteration: 23181
Available: 2497, loop iteration: 23259
Available: 2504, loop iteration: 23260
Available: 2512, loop iteration: 23345
Available: 2520, loop iteration: 23432
Available: 2528, loop iteration: 23519
Available: 2536, loop iteration: 23606
Available: 2544, loop iteration: 23693
Available: 2552, loop iteration: 23780
Available: 2560, loop iteration: 23867
Available: 2568, loop iteration: 23954
Available: 2576, loop iteration: 24041
Available: 2584, loop iteration: 24128
Available: 2590, loop iteration: 24214
Available: 2592, loop iteration: 24215
Available: 2600, loop iteration: 24301
Available: 2608, loop iteration: 24388
Available: 2616, loop iteration: 24475
Available: 2624, loop iteration: 24562
Available: 2632, loop iteration: 24649
Available: 2640, loop iteration: 24736
Available: 2644, loop iteration: 24822
Available: 2648, loop iteration: 24823
Available: 2656, loop iteration: 24909
Available: 2664, loop iteration: 24996
Available: 2672, loop iteration: 25081
Available: 2680, loop iteration: 25168
Available: 2688, loop iteration: 25255
Available: 2696, loop iteration: 25342
Available: 2704, loop iteration: 25429
Available: 2712, loop iteration: 25516
Available: 2715, loop iteration: 25602
Available: 2720, loop iteration: 25603
Available: 2728, loop iteration: 25689
Available: 2736, loop iteration: 25776
Available: 2744, loop iteration: 25863
Available: 2752, loop iteration: 25950
Available: 2760, loop iteration: 26037
Available: 2768, loop iteration: 26124
Available: 2771, loop iteration: 26210
Available: 2776, loop iteration: 26211
Available: 2784, loop iteration: 26297
Available: 2792, loop iteration: 26383
Available: 2800, loop iteration: 26464
Available: 2805, loop iteration: 26550
Available: 2808, loop iteration: 26551
Available: 2816, loop iteration: 26637
Available: 2824, loop iteration: 26724
Available: 2832, loop iteration: 26811
Available: 2840, loop iteration: 26898
Available: 2846, loop iteration: 26984
Available: 2848, loop iteration: 26985
Available: 2856, loop iteration: 27071
Available: 2864, loop iteration: 27155
Available: 2868, loop iteration: 27241
Available: 2872, loop iteration: 27242
Available: 2880, loop iteration: 27328
Available: 2888, loop iteration: 27415
Available: 2896, loop iteration: 27502
Available: 2898, loop iteration: 27588
Available: 2904, loop iteration: 27589
Available: 2912, loop iteration: 27675
Available: 2920, loop iteration: 27762
Available: 2928, loop iteration: 27846
Available: 2933, loop iteration: 27932
Available: 2936, loop iteration: 27933
Available: 2944, loop iteration: 28019
Available: 2952, loop iteration: 28106
Available: 2960, loop iteration: 28193
Available: 2962, loop iteration: 28279
Available: 2968, loop iteration: 28280
Available: 2976, loop iteration: 28366
Available: 2984, loop iteration: 28453
Available: 2992, loop iteration: 28539
Available: 3000, loop iteration: 28626
Available: 3008, loop iteration: 28713
Available: 3016, loop iteration: 28800
Available: 3024, loop iteration: 28887
Available: 3032, loop iteration: 28974
Available: 3040, loop iteration: 29061
Available: 3048, loop iteration: 29148
Available: 3056, loop iteration: 29233
Available: 3064, loop iteration: 29320
Available: 3072, loop iteration: 29407
Available: 3080, loop iteration: 29488
Available: 3088, loop iteration: 29575
Available: 3096, loop iteration: 29662
Available: 3104, loop iteration: 29749
Available: 3112, loop iteration: 29836
Available: 3120, loop iteration: 29923
Available: 3128, loop iteration: 30010
Available: 3136, loop iteration: 30097
Available: 3144, loop iteration: 30184
Available: 3152, loop iteration: 30271
Available: 3160, loop iteration: 30358
Available: 3165, loop iteration: 30444
Available: 3168, loop iteration: 30445
Available: 3176, loop iteration: 30531
Available: 3184, loop iteration: 30618
Available: 3192, loop iteration: 30705
Available: 3200, loop iteration: 30792
Available: 3208, loop iteration: 30879
Available: 3212, loop iteration: 30965
Available: 3216, loop iteration: 30966
Available: 3224, loop iteration: 31052
Available: 3232, loop iteration: 31139
Available: 3233, loop iteration: 31225
Available: 3240, loop iteration: 31226
Available: 3248, loop iteration: 31310
Available: 3256, loop iteration: 31390
Available: 3258, loop iteration: 31471
Available: 3264, loop iteration: 31472
Available: 3265, loop iteration: 31547
Available: 3272, loop iteration: 31548
Available: 3280, loop iteration: 31623
Available: 3288, loop iteration: 31701
Available: 3289, loop iteration: 31762
Available: 3296, loop iteration: 31763
Available: 3304, loop iteration: 31838
Available: 3312, loop iteration: 31919
Available: 3320, loop iteration: 32001
Available: 3328, loop iteration: 32083
Available: 3336, loop iteration: 32164
Available: 3344, loop iteration: 32243
Available: 3349, loop iteration: 32322
Available: 3352, loop iteration: 32323
Available: 3360, loop iteration: 32396
Available: 3368, loop iteration: 32476
Available: 3376, loop iteration: 32555
Available: 3384, loop iteration: 32631
Available: 3392, loop iteration: 32706
Available: 3400, loop iteration: 32780
Available: 3408, loop iteration: 32853
Available: 3416, loop iteration: 32927
Available: 3424, loop iteration: 33001
Available: 3432, loop iteration: 33074
Available: 3440, loop iteration: 33143
Available: 3442, loop iteration: 33215
Available: 3448, loop iteration: 33216
Available: 3452, loop iteration: 33282
Available: 3456, loop iteration: 33283
Available: 3464, loop iteration: 33351
Available: 3472, loop iteration: 33426
Available: 3480, loop iteration: 33502
Available: 3488, loop iteration: 33579
Available: 3496, loop iteration: 33655
Available: 3504, loop iteration: 33736
Available: 3512, loop iteration: 33817
Available: 3520, loop iteration: 33899
Available: 3528, loop iteration: 33981
Available: 3536, loop iteration: 34063
Available: 3544, loop iteration: 34144
Available: 3552, loop iteration: 34222
Available: 3553, loop iteration: 34300
Available: 3560, loop iteration: 34301
Available: 3568, loop iteration: 34374
Available: 3576, loop iteration: 34453
Available: 3578, loop iteration: 34533
Available: 3584, loop iteration: 34534
Available: 3592, loop iteration: 34608
Available: 3600, loop iteration: 34688
Available: 3608, loop iteration: 34768
Available: 3616, loop iteration: 34848
Available: 3624, loop iteration: 34928
Available: 3632, loop iteration: 35004
Available: 3640, loop iteration: 35083
Available: 3648, loop iteration: 35163
Available: 3656, loop iteration: 35244
Available: 3664, loop iteration: 35324
Available: 3666, loop iteration: 35403
Available: 3672, loop iteration: 35404
Available: 3680, loop iteration: 35478
Available: 3688, loop iteration: 35557
Available: 3696, loop iteration: 35635
Available: 3697, loop iteration: 35716
Available: 3704, loop iteration: 35717
Available: 3706, loop iteration: 35801
Available: 3712, loop iteration: 35802
Available: 3720, loop iteration: 35887
Available: 3728, loop iteration: 35974
Available: 3736, loop iteration: 36061
Available: 3744, loop iteration: 36148
Available: 3752, loop iteration: 36235
Available: 3760, loop iteration: 36322
Available: 3761, loop iteration: 36407
Available: 3768, loop iteration: 36408
Available: 3776, loop iteration: 36482
Available: 3784, loop iteration: 36568
Available: 3792, loop iteration: 36655
Available: 3800, loop iteration: 36742
Available: 3808, loop iteration: 36829
Available: 3809, loop iteration: 36915
Available: 3816, loop iteration: 36916
Available: 3824, loop iteration: 37000
Available: 3832, loop iteration: 37087
Available: 3840, loop iteration: 37174
Available: 3848, loop iteration: 37261
Available: 3856, loop iteration: 37348
Available: 3864, loop iteration: 37435
Available: 3872, loop iteration: 37522
Available: 3880, loop iteration: 37609
Available: 3888, loop iteration: 37696
Available: 3896, loop iteration: 37783
Available: 3899, loop iteration: 37869
Available: 3904, loop iteration: 37870
Available: 3912, loop iteration: 37956
Available: 3920, loop iteration: 38043
Available: 3928, loop iteration: 38130
Available: 3936, loop iteration: 38217
Available: 3937, loop iteration: 38303
Available: 3944, loop iteration: 38304
Available: 3952, loop iteration: 38390
Available: 3960, loop iteration: 38477
Available: 3968, loop iteration: 38564
Available: 3976, loop iteration: 38651
Available: 3984, loop iteration: 38737
Available: 3992, loop iteration: 38824
Available: 4000, loop iteration: 38911
Available: 4008, loop iteration: 38998
Available: 4016, loop iteration: 39081
Available: 4024, loop iteration: 39168
Available: 4032, loop iteration: 39255
Available: 4040, loop iteration: 39342
Available: 4048, loop iteration: 39429
Available: 4056, loop iteration: 39516
Available: 4058, loop iteration: 39602
Available: 4064, loop iteration: 39603
Available: 4072, loop iteration: 39689
Available: 4080, loop iteration: 39776
Available: 4088, loop iteration: 39863

[-- Attachment #4: Type: text/plain, Size: 0 bytes --]



  reply	other threads:[~2014-09-21 10:56 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-07 15:16 Master Plan on rewinding Alexander E. Patrakov
2014-09-07 18:38 ` Tanu Kaskinen
2014-09-07 19:05   ` Alexander E. Patrakov
2014-09-07 20:51 ` Clemens Ladisch
2014-09-08  3:06   ` Raymond Yau
2014-09-08  7:31   ` Alexander E. Patrakov
2014-09-09  8:43     ` Clemens Ladisch
2014-09-09  8:55       ` Alexander E. Patrakov
2014-09-09  9:08         ` David Henningsson
2014-09-09  9:31           ` Alexander E. Patrakov
2014-09-21  2:02             ` Raymond Yau
2014-09-22 13:20               ` Lars-Peter Clausen
2014-09-22 13:36                 ` Alexander E. Patrakov
2014-09-22 13:44                   ` Lars-Peter Clausen
2014-09-23  8:29                   ` Raymond Yau
2014-09-23 10:22                     ` Alexander E. Patrakov
2014-09-09 13:45         ` Clemens Ladisch
2014-09-09 15:55           ` Alexander E. Patrakov
2014-09-09 16:09             ` Takashi Iwai
2014-09-07 23:12 ` David Henningsson
2014-09-09 19:56   ` Pierre-Louis Bossart
2014-09-10  5:38     ` Alexander E. Patrakov
2014-09-08  7:34 ` Lars-Peter Clausen
2014-09-08  7:59 ` David Henningsson
2014-09-08  8:46   ` Alexander E. Patrakov
2014-09-08  9:26     ` David Henningsson
2014-09-08 10:21       ` Alexander E. Patrakov
2014-09-09  8:43         ` Clemens Ladisch
2014-09-11  3:49 ` Raymond Yau
2014-09-11  4:19   ` A. C. Censi
2014-09-13  9:15     ` Raymond Yau
2014-09-11  5:28   ` Alexander E. Patrakov
2014-09-11  6:21     ` Raymond Yau
2014-09-13  8:57     ` Raymond Yau
2014-09-13 10:43       ` Alexander E. Patrakov
2014-09-13 11:33         ` Raymond Yau
2014-09-13 11:36           ` Alexander E. Patrakov
2014-09-13 18:35 ` Alexander E. Patrakov
2014-09-14 11:37   ` Raymond Yau
2014-09-14 12:07     ` Alexander E. Patrakov
2014-09-15  2:43       ` Raymond Yau
2014-09-15  9:19       ` Takashi Iwai
2014-09-15  9:58         ` Alexander E. Patrakov
2014-09-15 10:08           ` Takashi Iwai
2014-09-15 17:01             ` Pierre-Louis Bossart
2014-09-15 17:14               ` Alexander E. Patrakov
2014-09-15 18:08                 ` Takashi Iwai
2014-09-18  1:15                   ` Raymond Yau
2014-09-21  9:22                     ` Alexander E. Patrakov
2014-09-21  9:53                     ` Clemens Ladisch
2014-09-21 10:56                       ` Alexander E. Patrakov [this message]
2014-09-22  3:27                       ` Raymond Yau

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=541EAEEF.7070007@gmail.com \
    --to=patrakov@gmail.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=clemens@ladisch.de \
    --cc=david.henningsson@canonical.com \
    --cc=o-takashi@sakamocchi.jp \
    --cc=pierre-louis.bossart@linux.intel.com \
    --cc=superquad.vortex2@gmail.com \
    --cc=tiwai@suse.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox