From mboxrd@z Thu Jan 1 00:00:00 1970 From: Georg Chini Subject: Re: [PATCH] ALSA: usb: improve delay reporting Date: Thu, 5 Apr 2018 13:49:27 +0200 Message-ID: References: <20180404135744.3921-1-georg@chini.tk> <26158b71-cc76-b2b7-e30f-c0040a5cb7e0@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mail.lolchat.de (mail.lolchat.de [80.147.226.48]) by alsa0.perex.cz (Postfix) with ESMTP id BA90C26764A for ; Thu, 5 Apr 2018 13:49:34 +0200 (CEST) In-Reply-To: <26158b71-cc76-b2b7-e30f-c0040a5cb7e0@linux.intel.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: alsa-devel-bounces@alsa-project.org To: Pierre-Louis Bossart , alsa-devel@alsa-project.org, Takashi Iwai List-Id: alsa-devel@alsa-project.org T24gMDQuMDQuMjAxOCAyMToyNCwgUGllcnJlLUxvdWlzIEJvc3NhcnQgd3JvdGU6Cj4gT24gMDQv MDQvMjAxOCAwODo1NyBBTSwgR2VvcmcgQ2hpbmkgd3JvdGU6Cj4KPj4gQ3VycmVudGx5LCB0aGUg a2VybmVsIHVzZXMgb25seSB0aGUgbnVtYmVyIG9mIFVTQiBmcmFtZXMgdG8gCj4+IGludGVycG9s YXRlIHRoZSBkZWxheQo+PiBiZXR3ZWVuIHNlbmRpbmcgb3IgcmVjZWl2aW5nIFVSQidzLiBUaGlz IGxpbWl0cyB0aGUgZ3JhbnVhcml0eSBvZiB0aGUgCj4+IGRlbGF5IHJlcG9ydHMKPj4gdG8gb25l IG1pbGxpc2Vjb25kIGJlY2F1c2UgdGhlIGZyYW1lIGNvdW50ZXIgaXMgdXBkYXRlZCBpbiBhIAo+ PiBtaWxsaXNlY29uZCBpbnRlcnZhbC4KPj4KPj4gVGhpcyBwYXRjaCBhZGRpdGlvbmFsbHkgdXNl cyB0aW1lIHN0YW1wcyB0byBhY2hpZXZlIGhpZ2hlciBwcmVjaXNpb24gCj4+IG9mIHRoZSByZXBv cnRlZAo+PiBkZWxheS4gSWYgdGhlIHRpbWUgZGlmZmVyZW5jZSBjb21wdXRlZCB1c2luZyB0aW1l IHN0YW1wcyBkb2VzIG5vdCAKPj4gZGV2aWF0ZSBtb3JlIHRoYW4KPj4gb25lIG1pbGxpc2Vjb25k IGZyb20gdGhlIGRpZmZlcmVuY2UgY29tcHV0ZWQgdXNpbmcgZnJhbWVzLCBpdCBpcyAKPj4gYXNz dW1lZCB0aGF0IHRoZQo+PiBzeXN0ZW0gdGltZSBkaWZmZXJlbmNlIGRlbGl2ZXJzIHRoZSBtb3Jl IHByZWNpc2UgZGVsYXkgZXN0aW1hdGUuCj4+Cj4+IFRoaXMgd2lsbCBzaWduaWZpY2FudGx5IGlu Y3JlYXNlIHRoZSBwcmVjaXNpb24gb2YgdGhlIHJlcG9ydGVkIGRlbGF5IAo+PiBpbiB0aGUgbWFq b3JpdHkKPj4gb2YgY2FzZXMgd2hlcmUgc291bmQgY2FyZCBjbG9jayBhbmQgc3lzdGVtIGNsb2Nr IGFyZSBhbG1vc3QgaW4gc3luYyAKPj4gd2hpbGUgZmFsbGluZyBiYWNrCj4+IHRvIHRoZSBvbGQg bWV0aG9kIGZvciB0aGUgcmFyZSBjYXNlcyB3aGVyZSB0aGUgdHdvIHRpbWVzIGRpZmZlciB0b28g Cj4+IG11Y2guCj4gSSBhbSBhbGwgZm9yIGJldHRlciBkZWxheSBlc3RpbWF0ZXMgYnV0IEkgaGF2 ZSBtaXhlZCBmZWVsaW5ncyBhYm91dCAKPiB0aGlzIC0gYW5kIHNvbWUgaGFyZHdhcmUtcmVsYXRl ZCBwYXJ0cyBhcmUgYnJva2VuLgoKV2VsbCwgSSBvbmx5IHN0dW1ibGVkIGludG8gdGhpcyBiZWNh dXNlIG9mIHRoZSByZWNlbnQgZGVsYXkgZXN0aW1hdGlvbiAKaXNzdWVzIGluIHB1bHNlYXVkaW8s CnNvIGZvcmdpdmUgbXkgaWdub3JhbmNlIGFib3V0IEFMU0EuIElmIHRoZSBnZW5lcmFsIGlkZWEg b2YgdGhlIHBhdGNoIGlzIApub3QgcmlnaHQsIGp1c3QgaWdub3JlCm15IG90aGVyIGNvbW1lbnRz IGFuZCBkcm9wIHRoZSBwYXRjaC4KCj4KPiBUaGUgZnJhbWUgY291bnRlciBpcyBhbHJlYWR5IGFu IGFwcHJveGltYXRpb24gb2YgdGhlIGFjdHVhbCBkZWxheSAKPiB3aGljaCBkb2Vzbid0IHJlYWxs eSBhY2NvdW50IGZvciB0aGUgdHlwZSBvZiBVU0IgaW50ZXJmYWNlIChJc29jLCAKPiBBc3luYykg dXNlZCBvbiB0aGUgZGV2aWNlIHNpZGUuIFlvdSdkIGJlIGFkZGluZyBhIGxvdCBvZiBwcmVjaXNp b24gCj4gd2l0aG91dCByZWFsbHkgc29sdmluZyB0aGUgZmFjdCB0aGF0IHlvdSBkb24ndCBrbm93 IHdoYXQgdGhlIGFjdHVhbCAKPiBwbGF5YmFjayByYXRlIGlzLiBZb3UnZCByZWFsbHkgbmVlZCBh IHRpbWUgc21vb3RoZXIgdGhhdCBtb2RlbHMgCj4gcGxheWJhY2sgcmF0ZSB2LiBzeXN0ZW0gdGlt ZSBpZiB5b3Ugd2FudCB0byBiZSBmdWxseSBhY2N1cmF0ZSBiZWxvdyAKPiB0aGUgbXMgbGV2ZWwg Zm9yIGFsbCB0eXBlcyBvZiBVU0IgYXVkaW8gZGV2aWNlcy4KClRoZSBnb2FsIGlzIG5vdCB0byBi ZSBmdWxseSBhY2N1cmF0ZSwgb25seSB0byBiZSBzb21ld2hhdCBiZXR0ZXIgdGhhbiAKdGhlIGN1 cnJlbnQgZXN0aW1hdGUuCkknbGwgY29weSBoZXJlIHdoYXQgSSBhbHJlYWR5IHNhaWQgdG8gVGFr YXNoaSBpbiBwcml2YXRlIGNvbW11bmljYXRpb246CgpUaGUgbWlzbWF0Y2ggYmV0d2VlbiBzb3Vu ZCBjYXJkIHRpbWUgYW5kIHN5c3RlbSB0aW1lIHNob3VsZCBub3QgbWF0dGVyIG9uIHRoZQp0aW1l c2NhbGUgd2UgYXJlIHRhbGtpbmcgYWJvdXQuIExldCdzIHNheSB3ZSBhcmUgdXNpbmcgMTAgVVNC IGZyYW1lcyAod2hpY2ggaXMKbW9yZSB0aGFuIEkgaGF2ZSBzZWVuIHdoaWxlIGRlYnVnZ2luZyks IHNvIGh3X3B0ciBpcyB1cGRhdGVkIGV2ZXJ5IDEwIG1zLiBBc3N1bWUKdGhhdCB0aGUgZGV2aWF0 aW9uIGJldHdlZW4gc291bmQgY2FyZCBhbmQgc3lzdGVtIHRpbWUgaXMgMSUgKHdoaWNoIGFnYWlu IHNob3VsZApiZSBtb3JlIHRoYW4geW91IHdpbGwgZXZlciBzZWUpLiBUaGVuIHVzaW5nIHN5c3Rl bSB0aW1lLCB0aGUgY29tcHV0ZWQgZGVsYXkgY2FuCmJlIG9mZiBieSAxMDAgbWljcm9zZWNvbmRz IGF0IG1heGltdW0sIHdoaWxlIHRoZSBkZWxheSBjb21wdXRlZCB1c2luZyBVU0IgZnJhbWVzCmNh biBiZSBvZmYgYnkgMm1zLiBUaGVyZWZvcmUgdXNpbmcgc3lzdGVtIHRpbWUgc2hvdWxkIGJlIGFj Y2VwdGFibGUgaW4gdGhhdApzaXR1YXRpb24gYmVjYXVzZSBpdCBkZWxpdmVycyBoaWdoZXIgcHJl Y2lzaW9uIHJlc3VsdHMgYXMgY2FuIGJlIGFjaGlldmVkIHVzaW5nClVTQiBmcmFtZXMuCgpGb3Ig dGhlIHJhcmUgY2FzZXMgd2hlcmUgc3lzdGVtIHRpbWUgYW5kIHNvdW5kIGNhcmQgdGltZSBhcmUg Y29tcGxldGVseSAKZGlmZmVyZW50LAp0aGUgcGF0Y2ggZmFsbHMgYmFjayB0byB0aGUgb3JpZ2lu YWwgbWV0aG9kLgoKPgo+IEluIGFkZGl0aW9uIEkndmUgb25seSBzZWVuIGRyaXZlcnMgcmVwb3J0 IHRoZSBkZWxheSBiYXNlZCBvbiBoYXJkd2FyZSAKPiBjb3VudGVycy4gSWYgd2Ugc3RhcnQgZG9p bmcgaW50ZXJwb2xhdGlvbnMgYmFzZWQgb24gc3lzdGVtIHRpbWUsIHRoZW4gCj4gd2h5IG5vdCBk byBpdCBmb3Igb3RoZXIgZGV2aWNlcyBhcyB3ZWxsIHdpdGggYSBmaXggYXQgdGhlIGNvcmUgbGV2 ZWwKCkkgY291bGQgbm90IGRvIHRoYXQsIEkgZG9uJ3QgaGF2ZSBlbm91Z2ggQUxTQSBrbm93bGVk Z2UuIEEgbW90aXZhdGlvbiB0byAKaW1wcm92ZQp0aGUgZGVsYXkgcmVwb3J0cyBmb3IgVVNCIGRl dmljZXMgb25seSBjb3VsZCBiZSB0aGF0IHRoZXkgYXJlIHByb2JhYmx5IAp0aGUgbW9zdApjb21t b24gZGV2aWNlcyBhcGFydCBmcm9tIEhEQS4KCj4KPiBBbmQgbGFzdCwgSSB0aGluayB5b3UgaGF2 ZSBhbiBpc3N1ZSBmb3IgdGhlIHBhdXNlIGNhc2UgYW5kIHlvdSBjYW5ub3QgCj4gcmVtb3ZlIHRo ZSBjb2RlIHRoYXQgbGltaXRzIHRoZSBmcmFtZSBjb3VudGVyIHRvIDggYml0cywgdGhpcyB3aWxs IG5vdCAKPiB3b3JrIGFjcm9zcyBtdWx0aXBsZSB2ZXJzaW9ucyBvZiBbZXx4XUhDSSBjb250cm9s bGVycywgc2VlIGJlbG93Lgo+Cj4+Cj4+IEFzIGEgZG93bnNpZGUsIHRoZSBwb3NzaWJsZSB3b3Jz dCBjYXNlIGVycm9yIGluY3JlYXNlcyBmcm9tIDJtcyB0byAzbXMuCj4+IC0tLQo+PiDCoCBzb3Vu ZC91c2IvY2FyZC5oIHzCoCAxICsKPj4gwqAgc291bmQvdXNiL3BjbS5jwqAgfCA0NyArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLQo+PiDCoCAyIGZpbGVzIGNo YW5nZWQsIDMyIGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQo+Pgo+PiBkaWZmIC0tZ2l0 IGEvc291bmQvdXNiL2NhcmQuaCBiL3NvdW5kL3VzYi9jYXJkLmgKPj4gaW5kZXggZWQ4N2NjODNl YjQ3Li44ODM1ZDk2MjhjYWMgMTAwNjQ0Cj4+IC0tLSBhL3NvdW5kL3VzYi9jYXJkLmgKPj4gKysr IGIvc291bmQvdXNiL2NhcmQuaAo+PiBAQCAtMTQ5LDYgKzE0OSw3IEBAIHN0cnVjdCBzbmRfdXNi X3N1YnN0cmVhbSB7Cj4+IMKgIMKgwqDCoMKgwqAgaW50IGxhc3RfZnJhbWVfbnVtYmVyO8KgwqDC oMKgwqDCoMKgwqDCoCAvKiBzdG9yZWQgZnJhbWUgbnVtYmVyICovCj4+IMKgwqDCoMKgwqAgaW50 IGxhc3RfZGVsYXk7wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLyogc3RvcmVkIGRl bGF5ICovCj4+ICvCoMKgwqAgc3RydWN0IHRpbWVzcGVjIGxhc3RfdXBkYXRlX3RpbWU7wqDCoMKg IC8qIHRpbWUgd2hlbiBsYXN0X2RlbGF5IHdhcyAKPj4gdXBkYXRlZCAqLwo+PiDCoCDCoMKgwqDC oMKgIHN0cnVjdCB7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBpbnQgbWFya2VyOwo+PiBkaWZmIC0t Z2l0IGEvc291bmQvdXNiL3BjbS5jIGIvc291bmQvdXNiL3BjbS5jCj4+IGluZGV4IDNjYmZhZTY2 MDRmOS4uNmQ0MGNiMGI4Nzc3IDEwMDY0NAo+PiAtLS0gYS9zb3VuZC91c2IvcGNtLmMKPj4gKysr IGIvc291bmQvdXNiL3BjbS5jCj4+IEBAIC00Niw5ICs0Niw4IEBAIHNuZF9wY21fdWZyYW1lc190 IHNuZF91c2JfcGNtX2RlbGF5KHN0cnVjdCAKPj4gc25kX3VzYl9zdWJzdHJlYW0gKnN1YnMsCj4+ IMKgwqDCoMKgwqAgaW50IGN1cnJlbnRfZnJhbWVfbnVtYmVyOwo+PiDCoMKgwqDCoMKgIGludCBm cmFtZV9kaWZmOwo+PiDCoMKgwqDCoMKgIGludCBlc3RfZGVsYXk7Cj4+IC0KPj4gLcKgwqDCoCBp ZiAoIXN1YnMtPmxhc3RfZGVsYXkpCj4+IC3CoMKgwqDCoMKgwqDCoCByZXR1cm4gMDsgLyogc2hv cnQgcGF0aCAqLwo+Cj4gTkFLLiBUaGlzIHdhcyBhZGRlZCBvbiBwdXJwb3NlIGJ5IDQ4Nzc5YTBi OGZmYyAoJ0FMU0E6IHVzYi1hdWRpbzogZml4IAo+IGRlbGF5IGFjY291bnQgZHVyaW5nIHBhdXNl JykKPiBBbmQgc2luY2UgeW91IGtlcHQgdGhlIGNvZGUgdGhhdCBzZXRzIGxhc3RfZGVsYXkgdGhl cmUgaXMgbm8gcmVhc29uIHRvIAo+IHRha2UgdGhpcyBvdXQuCgpPSywgSSBkaWQgbm90IGtub3cg dGhhdCB0aGlzIGlzIG5lZWRlZC4gSSB0b29rIGl0IG91dCBiZWNhdXNlIG90aGVyd2lzZSAKdGhl IGRlbGF5CnJlcG9ydGVkIGZvciBjYXB0dXJlIHdpbGwgYWx3YXlzIGJlIDAuIHJldGlyZV9jYXB0 dXJlX3VyYigpIHNldHMgCmxhc3RfZGVsYXkgdG8gMC4KRG9lcyB0aGUgcHJvYmxlbSB0aGF0IHdh cyBmaXhlZCBpbiB0aGUgY29tbWl0wqAgb25seSBhcHBseSB0byBwbGF5YmFjayAKc3RyZWFtcz8K VGhlbiBJIGNvdWxkIGNoYW5nZSB0aGUgaWYgY29uZGl0aW9uIGFjY29yZGluZ2x5LgoKCj4+ICvC oMKgwqAgaW50IHRpbWVfZGlmZjsKPj4gK8KgwqDCoCBzdHJ1Y3QgdGltZXNwZWMgbm93Owo+PiDC oCDCoMKgwqDCoMKgIGN1cnJlbnRfZnJhbWVfbnVtYmVyID0gdXNiX2dldF9jdXJyZW50X2ZyYW1l X251bWJlcihzdWJzLT5kZXYpOwo+PiDCoMKgwqDCoMKgIC8qCj4+IEBAIC01OCw5ICs1NywyMSBA QCBzbmRfcGNtX3VmcmFtZXNfdCBzbmRfdXNiX3BjbV9kZWxheShzdHJ1Y3QgCj4+IHNuZF91c2Jf c3Vic3RyZWFtICpzdWJzLAo+PiDCoMKgwqDCoMKgwqAgKi8KPj4gwqDCoMKgwqDCoCBmcmFtZV9k aWZmID0gKGN1cnJlbnRfZnJhbWVfbnVtYmVyIC0gc3Vicy0+bGFzdF9mcmFtZV9udW1iZXIpICYg Cj4+IDB4ZmY7Cj4+IMKgIC3CoMKgwqAgLyogQXBwcm94aW1hdGlvbiBiYXNlZCBvbiBudW1iZXIg b2Ygc2FtcGxlcyBwZXIgVVNCIGZyYW1lIChtcyksCj4+IC3CoMKgwqDCoMKgwqAgc29tZSB0cnVu Y2F0aW9uIGZvciA0NC4xIGJ1dCB0aGUgZXN0aW1hdGUgaXMgZ29vZCBlbm91Z2ggKi8KPj4gLcKg wqDCoCBlc3RfZGVsYXkgPcKgIGZyYW1lX2RpZmYgKiByYXRlIC8gMTAwMDsKPj4gK8KgwqDCoCAv KiBFc3RpbWF0ZSB0aW1lIHNpbmNlIGxhc3QgdXBkYXRlIG9mIGxhc3RfZGVsYXkgKi8KPj4gK8Kg wqDCoCBzbmRfcGNtX2dldHRpbWUoc3Vicy0+cGNtX3N1YnN0cmVhbS0+cnVudGltZSwgJm5vdyk7 Cj4+ICvCoMKgwqAgdGltZV9kaWZmID0gKG5vdy50dl9zZWMgLSBzdWJzLT5sYXN0X3VwZGF0ZV90 aW1lLnR2X3NlYykgKiAKPj4gMTAwMDAwMDAwMDsKPj4gK8KgwqDCoCB0aW1lX2RpZmYgKz0gKGlu dClub3cudHZfbnNlYyAtIHN1YnMtPmxhc3RfdXBkYXRlX3RpbWUudHZfbnNlYzsKPj4gK8KgwqDC oCB0aW1lX2RpZmYgLz0gMTAwMDsKPj4gKwo+PiArwqDCoMKgIGlmIChhYnModGltZV9kaWZmIC0g ZnJhbWVfZGlmZiAqIDEwMDApIDwgMTAwMCkgewo+IHRoYXQncyBhIDFtcyBlcnJvciwgdGhpcyBp cyBxdWl0ZSBoaWdoIElNTyB0byBhc3Nlc3MgYSBkaXZlcmdlbmNlIAo+IGJldHdlZW4gc3lzdGVt IGFuZCBmcmFtZSBkZWx0YXMKCkJlY2F1c2UgdGltZV9kaWZmIGlzIHVzZWQgdG8gaW50ZXJwb2xh dGUgYmV0d2VlbiBmcmFtZXMgYW5kIGZyYW1lcyBhcmUgCnVwZGF0ZWQgZXZlcnkgbWlsbGlzZWNv bmQsCml0IGlzIHBlcmZlY3RseSBub3JtYWwgaWYgdGltZV9kaWZmIGlzIGZvciBleGFtcGxlIDkw MCBtaWNyb3NlY29uZHMgCmxhcmdlciB0aGFuIGZyYW1lX2RpZmYgKiAxMDAwLgpPbmx5IHdoZW4g dGhlIGRpZmZlcmVuY2UgaXMgbGFyZ2VyIHRoYW4gMSBtcyB3ZSBjYW4gY29uY2x1ZGUgdGhhdCAK c29tZXRoaW5nIGlzIHdyb25nLgpUaGF0IGlzIHRoZSByZWFzb24gd2h5IHRoZSBwYXRjaCBpbmNy ZWFzZXMgdGhlIHdvcnN0IGNhc2UgZXJyb3IgZnJvbSAyIAptcyB0byAzIG1zLgoKPgo+PiArwqDC oMKgwqDCoMKgwqAgLyogU3lzdGVtIHRpbWUgYW5kIHNvdW5kIGNhcmQgdGltZSBkbyBub3QgZGlm ZmVyCj4+ICvCoMKgwqDCoMKgwqDCoMKgICogdG9vIG11Y2guIFVzZSBzeXN0ZW0gdGltZSB0byBj YWxjdWxhdGUgZGVsYXkgKi8KPj4gK8KgwqDCoMKgwqDCoMKgIGVzdF9kZWxheSA9wqAgdGltZV9k aWZmICogcmF0ZSAvIDEwMDAwMDA7Cj4+ICvCoMKgwqAgfSBlbHNlIHsKPj4gK8KgwqDCoMKgwqDC oMKgIC8qIEFwcHJveGltYXRpb24gYmFzZWQgb24gbnVtYmVyIG9mIHNhbXBsZXMgcGVyIFVTQiBm cmFtZSAobXMpLAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqAgc29tZSB0cnVuY2F0aW9uIGZvciA0 NC4xIGJ1dCB0aGUgZXN0aW1hdGUgaXMgZ29vZCBlbm91Z2ggKi8KPj4gK8KgwqDCoMKgwqDCoMKg IGVzdF9kZWxheSA9wqAgZnJhbWVfZGlmZiAqIHJhdGUgLyAxMDAwOwo+PiArwqDCoMKgIH0KPj4g wqDCoMKgwqDCoCBpZiAoc3Vicy0+ZGlyZWN0aW9uID09IFNORFJWX1BDTV9TVFJFQU1fUExBWUJB Q0spCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBlc3RfZGVsYXkgPSBzdWJzLT5sYXN0X2RlbGF5IC0g ZXN0X2RlbGF5Owo+PiDCoMKgwqDCoMKgIGVsc2UKPj4gQEAgLTg1Myw2ICs4NjQsOCBAQCBzdGF0 aWMgaW50IHNuZF91c2JfcGNtX3ByZXBhcmUoc3RydWN0IAo+PiBzbmRfcGNtX3N1YnN0cmVhbSAq c3Vic3RyZWFtKQo+PiDCoMKgwqDCoMKgIHN1YnMtPmh3cHRyX2RvbmUgPSAwOwo+PiDCoMKgwqDC oMKgIHN1YnMtPnRyYW5zZmVyX2RvbmUgPSAwOwo+PiDCoMKgwqDCoMKgIHN1YnMtPmxhc3RfZGVs YXkgPSAwOwo+PiArwqDCoMKgIHN1YnMtPmxhc3RfdXBkYXRlX3RpbWUudHZfc2VjID0gMDsKPj4g K8KgwqDCoCBzdWJzLT5sYXN0X3VwZGF0ZV90aW1lLnR2X25zZWMgPSAwOwo+PiDCoMKgwqDCoMKg IHN1YnMtPmxhc3RfZnJhbWVfbnVtYmVyID0gMDsKPj4gwqDCoMKgwqDCoCBydW50aW1lLT5kZWxh eSA9IDA7Cj4+IMKgIEBAIC0xMzM0LDcgKzEzNDcsOSBAQCBzdGF0aWMgdm9pZCByZXRpcmVfY2Fw dHVyZV91cmIoc3RydWN0IAo+PiBzbmRfdXNiX3N1YnN0cmVhbSAqc3VicywKPj4gwqAgwqDCoMKg wqDCoMKgwqDCoMKgIC8qIHJlYWxpZ24gbGFzdF9mcmFtZV9udW1iZXIgKi8KPj4gwqDCoMKgwqDC oMKgwqDCoMKgIHN1YnMtPmxhc3RfZnJhbWVfbnVtYmVyID0gY3VycmVudF9mcmFtZV9udW1iZXI7 Cj4+IC3CoMKgwqDCoMKgwqDCoCBzdWJzLT5sYXN0X2ZyYW1lX251bWJlciAmPSAweEZGOyAvKiBr ZWVwIDggTFNCcyAqLwo+Cj4gWW91IGNhbid0IHJlbW92ZSB0aGlzLCB0aGlzIG1vZGVscyB0aGUg ZmFjdCB0aGF0IG9ubHkgOCBiaXRzIGFyZSB2YWxpZCAKPiBpbiB0aGUgZnJhbWUgY291bnRlci4K CklmIHRoZSBoaWdoIG9yZGVyIGJpdHMgYXJlIG5vdCBhcmJpdHJhcnksIHRoaXMgaXMgbm90IG5l Y2Vzc2FyeSBiZWNhdXNlIAp0aGUgdmFsdWUgaXMKb25seSB1c2VkIGluIHNuZF91c2JfcGNtX2Rl bGF5KCkgYW5kIChhIC0gYikgJiAweGZmID0gKGEgLSBiICYgMHhmZikgJiAKMHhmZi4gWW91IGNh bgpwcm92ZSB0aGlzIGJ5IHdyaXRpbmcgYSBhbmQgYiBhcyBhID0gMjU2ICogYTEgKyBhMiBhbmQg YiA9IDI1NiAqIGIxICsgYjIgCndpdGggYTIKYW5kIGIyIHNtYWxsZXIgdGhhbiAyNTYuCgo+Cj4+ ICsKPj4gK8KgwqDCoMKgwqDCoMKgIC8qIFRha2UgdGltZSBzdGFtcCBmb3IgZGVsYXkgYWNjb3Vu dGluZyAqLwo+PiArwqDCoMKgwqDCoMKgwqAgc25kX3BjbV9nZXR0aW1lKHJ1bnRpbWUsICZzdWJz LT5sYXN0X3VwZGF0ZV90aW1lKTsKPj4gwqAgwqDCoMKgwqDCoMKgwqDCoMKgIHNwaW5fdW5sb2Nr X2lycXJlc3RvcmUoJnN1YnMtPmxvY2ssIGZsYWdzKTsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIC8q IGNvcHkgYSBkYXRhIGNodW5rICovCj4+IEBAIC0xNTUwLDcgKzE1NjUsOSBAQCBzdGF0aWMgdm9p ZCBwcmVwYXJlX3BsYXliYWNrX3VyYihzdHJ1Y3QgCj4+IHNuZF91c2Jfc3Vic3RyZWFtICpzdWJz LAo+PiDCoCDCoMKgwqDCoMKgIC8qIHJlYWxpZ24gbGFzdF9mcmFtZV9udW1iZXIgKi8KPj4gwqDC oMKgwqDCoCBzdWJzLT5sYXN0X2ZyYW1lX251bWJlciA9IHVzYl9nZXRfY3VycmVudF9mcmFtZV9u dW1iZXIoc3Vicy0+ZGV2KTsKPj4gLcKgwqDCoCBzdWJzLT5sYXN0X2ZyYW1lX251bWJlciAmPSAw eEZGOyAvKiBrZWVwIDggTFNCcyAqLwo+IHNhbWUgaGVyZSwgY2FuJ3QgZG8gdGhpcwo+Cj4+ICsK Pj4gK8KgwqDCoCAvKiBUYWtlIHRpbWUgc3RhbXAgZm9yIGRlbGF5IGFjY291bnRpbmcgKi8KPj4g K8KgwqDCoCBzbmRfcGNtX2dldHRpbWUocnVudGltZSwgJnN1YnMtPmxhc3RfdXBkYXRlX3RpbWUp Owo+PiDCoCDCoMKgwqDCoMKgIGlmIChzdWJzLT50cmlnZ2VyX3RzdGFtcF9wZW5kaW5nX3VwZGF0 ZSkgewo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgLyogdGhpcyBpcyB0aGUgZmlyc3QgYWN0dWFsIFVS QiBzdWJtaXR0ZWQsCj4+IEBAIC0xNTk3LDYgKzE2MTQsMTIgQEAgc3RhdGljIHZvaWQgcmV0aXJl X3BsYXliYWNrX3VyYihzdHJ1Y3QgCj4+IHNuZF91c2Jfc3Vic3RyZWFtICpzdWJzLAo+PiDCoMKg wqDCoMKgwqDCoMKgwqAgc3Vicy0+bGFzdF9kZWxheSAtPSBwcm9jZXNzZWQ7Cj4+IMKgwqDCoMKg wqAgcnVudGltZS0+ZGVsYXkgPSBzdWJzLT5sYXN0X2RlbGF5Owo+PiDCoCArwqDCoMKgIC8qIHJl YWxpZ24gbGFzdF9mcmFtZV9udW1iZXIgKi8KPj4gK8KgwqDCoCBzdWJzLT5sYXN0X2ZyYW1lX251 bWJlciA9IHVzYl9nZXRfY3VycmVudF9mcmFtZV9udW1iZXIoc3Vicy0+ZGV2KTsKPgo+IG5lZWQg dG8gZmlsdGVyIG9uIDggYml0cy4uCj4+ICsKPj4gK8KgwqDCoCAvKiBUYWtlIHRpbWUgc3RhbXAg Zm9yIGRlbGF5IGFjY291bnRpbmcgKi8KPj4gK8KgwqDCoCBzbmRfcGNtX2dldHRpbWUocnVudGlt ZSwgJnN1YnMtPmxhc3RfdXBkYXRlX3RpbWUpOwo+PiArCj4+IMKgwqDCoMKgwqAgLyoKPj4gwqDC oMKgwqDCoMKgICogUmVwb3J0IHdoZW4gZGVsYXkgZXN0aW1hdGUgaXMgb2ZmIGJ5IG1vcmUgdGhh biAybXMuCj4+IMKgwqDCoMKgwqDCoCAqIFRoZSBlcnJvciBzaG91bGQgYmUgbG93ZXIgdGhhbiAy bXMgc2luY2UgdGhlIGVzdGltYXRlIHJlbGllcwo+PiBAQCAtMTYwNywxNCArMTYzMCw2IEBAIHN0 YXRpYyB2b2lkIHJldGlyZV9wbGF5YmFja191cmIoc3RydWN0IAo+PiBzbmRfdXNiX3N1YnN0cmVh bSAqc3VicywKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgImRlbGF5OiBlc3RpbWF0ZWQg JWQsIGFjdHVhbCAlZFxuIiwKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZXN0X2RlbGF5 LCBzdWJzLT5sYXN0X2RlbGF5KTsKPj4gwqAgLcKgwqDCoCBpZiAoIXN1YnMtPnJ1bm5pbmcpIHsK Pj4gLcKgwqDCoMKgwqDCoMKgIC8qIHVwZGF0ZSBsYXN0X2ZyYW1lX251bWJlciBmb3IgZGVsYXkg Y291bnRpbmcgaGVyZSBzaW5jZQo+PiAtwqDCoMKgwqDCoMKgwqDCoCAqIHByZXBhcmVfcGxheWJh Y2tfdXJiIHdvbid0IGJlIGNhbGxlZCBkdXJpbmcgcGF1c2UKPj4gLcKgwqDCoMKgwqDCoMKgwqAg Ki8KPj4gLcKgwqDCoMKgwqDCoMKgIHN1YnMtPmxhc3RfZnJhbWVfbnVtYmVyID0KPj4gLcKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgdXNiX2dldF9jdXJyZW50X2ZyYW1lX251bWJlcihzdWJzLT5kZXYp ICYgMHhmZjsKPj4gLcKgwqDCoCB9Cj4+IC0KPiBhbmQgd2h5IGlzIHRoaXMgcmVtb3ZlZC4KClRo aXMgaXMgcmVtb3ZlZCBiZWNhdXNlIHRoZSBsYXN0X2ZyYW1lX251bWJlciBpcyBub3cgYWx3YXlz IHVwZGF0ZWQsCnNvIGl0IGlzIG5vIGxvbmdlciBuZWNlc3NhcnkuCgo+PiDCoMKgIG91dDoKPj4g wqDCoMKgwqDCoCBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZzdWJzLT5sb2NrLCBmbGFncyk7Cj4+ IMKgIH0KCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpB bHNhLWRldmVsIG1haWxpbmcgbGlzdApBbHNhLWRldmVsQGFsc2EtcHJvamVjdC5vcmcKaHR0cDov L21haWxtYW4uYWxzYS1wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2Fsc2EtZGV2ZWwK