All of 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.