From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH v2 2/9] drm/i915: Add get_eld audio component Date: Fri, 4 Dec 2015 16:53:02 +0100 Message-ID: <20151204155302.GA10243@phenom.ffwll.local> References: <1448986198-3488-1-git-send-email-tiwai@suse.de> <1448986198-3488-3-git-send-email-tiwai@suse.de> <20151204102102.GM10243@phenom.ffwll.local> <20151204150046.GR10243@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-f47.google.com (mail-wm0-f47.google.com [74.125.82.47]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8BFC46E240 for ; Fri, 4 Dec 2015 07:53:06 -0800 (PST) Received: by wmec201 with SMTP id c201so80306215wme.0 for ; Fri, 04 Dec 2015 07:53:05 -0800 (PST) Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Takashi Iwai Cc: alsa-devel@alsa-project.org, Mengdong Lin , Vinod Koul , intel-gfx@lists.freedesktop.org, Daniel Vetter , David Henningsson List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBEZWMgMDQsIDIwMTUgYXQgMDQ6MTU6MjRQTSArMDEwMCwgVGFrYXNoaSBJd2FpIHdy b3RlOgo+IE9uIEZyaSwgMDQgRGVjIDIwMTUgMTY6MDA6NDYgKzAxMDAsCj4gRGFuaWVsIFZldHRl ciB3cm90ZToKPiA+IAo+ID4gT24gRnJpLCBEZWMgMDQsIDIwMTUgYXQgMTE6NDk6NDZBTSArMDEw MCwgVGFrYXNoaSBJd2FpIHdyb3RlOgo+ID4gPiBPbiBGcmksIDA0IERlYyAyMDE1IDExOjIxOjAy ICswMTAwLAo+ID4gPiBEYW5pZWwgVmV0dGVyIHdyb3RlOgo+ID4gPiA+IAo+ID4gPiA+IE9uIFR1 ZSwgRGVjIDAxLCAyMDE1IGF0IDA1OjA5OjUxUE0gKzAxMDAsIFRha2FzaGkgSXdhaSB3cm90ZToK PiA+ID4gPiA+IEltcGxlbWVudCBhIG5ldyBpOTE1X2F1ZGlvX2NvbXBvbmVudF9vcHMsIGdldF9l bGQoKS4gIEl0J3MgY2FsbGVkIGJ5Cj4gPiA+ID4gPiB0aGUgYXVkaW8gZHJpdmVyIHRvIGZldGNo IHRoZSBjdXJyZW50IGF1ZGlvIHN0YXR1cyBhbmQgRUxEIG9mIHRoZQo+ID4gPiA+ID4gZ2l2ZW4g SERNSS9EUCBwb3J0LiAgSXQgcmV0dXJucyB0aGUgc2l6ZSBvZiBleHBlY3RlZCBFTEQgYnl0ZXMg aWYgaXQncwo+ID4gPiA+ID4gdmFsaWQsIHplcm8gaWYgbm8gdmFsaWQgRUxEIGlzIGZvdW5kLCBv ciBhIG5lZ2F0aXZlIGVycm9yIGNvZGUuICBUaGUKPiA+ID4gPiA+IGN1cnJlbnQgc3RhdGUgb2Yg YXVkaW8gb24vb2ZmIGlzIHN0b3JlZCBpbiB0aGUgZ2l2ZW4gcG9pbnRlciwgdG9vLgo+ID4gPiA+ ID4gCj4gPiA+ID4gPiBOb3RlIHRoYXQgdGhlIHJldHVybmVkIHNpemUgaXNuJ3QgbGltaXRlZCB0 byB0aGUgZ2l2ZW4gbWF4IGJ5dGVzLiAgSWYKPiA+ID4gPiA+IHRoZSBzaXplIGlzIGdyZWF0ZXIg dGhhbiB0aGUgbWF4IGJ5dGVzLCBpdCBtZWFucyB0aGF0IG9ubHkgYSBwYXJ0IG9mCj4gPiA+ID4g PiBFTEQgaGFzIGJlZW4gY29waWVkIGJhY2suCj4gPiA+ID4gPiAKPiA+ID4gPiA+IEEgYmlnIHdh cm5pbmcgYWJvdXQgdGhlIHVzYWdlIG9mIHRoaXMgY2FsbGJhY2sgaXM6IHlvdSBtdXN0IG5vdCBj YWxsCj4gPiA+ID4gPiBpdCBmcm9tIGVsZF9ub3RpZnkuICBUaGUgZWxkX25vdGlmeSBpdHNlbGYg aXMgY2FsbGVkIGluIHRoZSBtb2Rlc2V0Cj4gPiA+ID4gPiBsb2NrLCBhbmQgaXQgbGVhZHMgdG8g YSBkZWFkbG9jayBzaW5jZSBnZXRfZWxkIHRha2VzIHRoZSBtb2Rlc2V0IGxvY2ssCj4gPiA+ID4g PiB0b28uICBZb3UgbmVlZCB0byBjYWxsIGdldF9lbGQgaW4gYSB3b3JrLCBmb3IgZXhhbXBsZSwg aW4gc3VjaCBhIGNhc2UuCj4gPiA+ID4gPiBXZSdsbCBzZWUgdGhlIGFjdHVhbCBpbXBsZW1lbnRh dGlvbiBpbiB0aGUgbGF0ZXIgcGF0Y2ggaW4KPiA+ID4gPiA+IHNvdW5kL3BjaS9oZGEvcGF0Y2hf aGRtaS5jLgo+ID4gPiA+ID4gCj4gPiA+ID4gPiBGb3IgYWNoaWV2aW5nIHRoaXMgaW1wbGVtZW50 YXRpb24sIGEgbmV3IGZpZWxkIGF1ZGlvX2VuYWJsZWQgaXMgYWRkZWQKPiA+ID4gPiA+IHRvIHN0 cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQuICBUaGlzIGlzIHNldC9yZXNldCBhdCBlYWNoIGF1ZGlv Cj4gPiA+ID4gPiBlbmFibGUvZGlzYWJsZSBjYWxsIGluIGludGVsX2F1ZGlvLmMuICBJdCdzIHBy b3RlY3RlZCB3aXRoIHRoZSBtb2Rlc2V0Cj4gPiA+ID4gPiBsb2NrIGFzIHdlbGwuCj4gPiA+ID4g PiAKPiA+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IFRha2FzaGkgSXdhaSA8dGl3YWlAc3VzZS5kZT4K PiA+ID4gPiA+IC0tLQo+ID4gPiA+ID4gdjEtPnYyOgo+ID4gPiA+ID4gKiBVc2UgbW9kZXNldCBs b2NrIGZvciBnZXRfZWxkIGxvY2ssIGRyb3AgYXYgbXV0ZXgKPiA+ID4gPiA+ICogUmV0dXJuIHRo ZSBleHBlY3RlZCBzaXplIGZyb20gZ2V0X2VsZCwgbm90IHRoZSBjb3BpZWQgc2l6ZQo+ID4gPiA+ ID4gCj4gPiA+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXVkaW8uYyB8IDQwICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gPiA+ID4gPiAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICB8ICAxICsKPiA+ID4gPiA+ICBpbmNsdWRlL2RybS9p OTE1X2NvbXBvbmVudC5oICAgICAgIHwgIDYgKysrKysrCj4gPiA+ID4gPiAgMyBmaWxlcyBjaGFu Z2VkLCA0NyBpbnNlcnRpb25zKCspCj4gPiA+ID4gPiAKPiA+ID4gPiA+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdWRpby5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfYXVkaW8uYwo+ID4gPiA+ID4gaW5kZXggMGMzOGNjNmM4MmFlLi4xOTY1YTYxNzY5ZWEg MTAwNjQ0Cj4gPiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdWRpby5j Cj4gPiA+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdWRpby5jCj4gPiA+ ID4gPiBAQCAtNTIxLDYgKzUyMSw3IEBAIHZvaWQgaW50ZWxfYXVkaW9fY29kZWNfZW5hYmxlKHN0 cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyKQo+ID4gPiA+ID4gIAo+ID4gPiA+ID4g IAljb25uZWN0b3ItPmVsZFs2XSA9IGRybV9hdl9zeW5jX2RlbGF5KGNvbm5lY3RvciwgYWRqdXN0 ZWRfbW9kZSkgLyAyOwo+ID4gPiA+ID4gIAo+ID4gPiA+ID4gKwlpbnRlbF9kaWdfcG9ydC0+YXVk aW9fZW5hYmxlZCA9IHRydWU7Cj4gPiA+ID4gPiAgCWlmIChkZXZfcHJpdi0+ZGlzcGxheS5hdWRp b19jb2RlY19lbmFibGUpCj4gPiA+ID4gPiAgCQlkZXZfcHJpdi0+ZGlzcGxheS5hdWRpb19jb2Rl Y19lbmFibGUoY29ubmVjdG9yLCBpbnRlbF9lbmNvZGVyLAo+ID4gPiA+ID4gIAkJCQkJCSAgICAg YWRqdXN0ZWRfbW9kZSk7Cj4gPiA+ID4gPiBAQCAtNTQ1LDYgKzU0Niw3IEBAIHZvaWQgaW50ZWxf YXVkaW9fY29kZWNfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlcikK PiA+ID4gPiA+ICAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPSBl bmNfdG9fZGlnX3BvcnQoZW5jb2Rlcik7Cj4gPiA+ID4gPiAgCWVudW0gcG9ydCBwb3J0ID0gaW50 ZWxfZGlnX3BvcnQtPnBvcnQ7Cj4gPiA+ID4gPiAgCj4gPiA+ID4gPiArCWludGVsX2RpZ19wb3J0 LT5hdWRpb19lbmFibGVkID0gZmFsc2U7Cj4gPiA+ID4gPiAgCWlmIChkZXZfcHJpdi0+ZGlzcGxh eS5hdWRpb19jb2RlY19kaXNhYmxlKQo+ID4gPiA+ID4gIAkJZGV2X3ByaXYtPmRpc3BsYXkuYXVk aW9fY29kZWNfZGlzYWJsZShpbnRlbF9lbmNvZGVyKTsKPiA+ID4gPiA+ICAKPiA+ID4gPiA+IEBA IC03MDIsNiArNzA0LDQzIEBAIHN0YXRpYyBpbnQgaTkxNV9hdWRpb19jb21wb25lbnRfc3luY19h dWRpb19yYXRlKHN0cnVjdCBkZXZpY2UgKmRldiwKPiA+ID4gPiA+ICAJcmV0dXJuIDA7Cj4gPiA+ ID4gPiAgfQo+ID4gPiA+ID4gIAo+ID4gPiA+ID4gK3N0YXRpYyBpbnQgaTkxNV9hdWRpb19jb21w b25lbnRfZ2V0X2VsZChzdHJ1Y3QgZGV2aWNlICpkZXYsIGludCBwb3J0LAo+ID4gPiA+ID4gKwkJ CQkJYm9vbCAqZW5hYmxlZCwKPiA+ID4gPiA+ICsJCQkJCXVuc2lnbmVkIGNoYXIgKmJ1ZiwgaW50 IG1heF9ieXRlcykKPiA+ID4gPiA+ICt7Cj4gPiA+ID4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IGRldl90b19pOTE1KGRldik7Cj4gPiA+ID4gPiArCXN0cnVjdCBkcm1f ZGV2aWNlICpkcm1fZGV2ID0gZGV2X3ByaXYtPmRldjsKPiA+ID4gPiA+ICsJc3RydWN0IGludGVs X2VuY29kZXIgKmludGVsX2VuY29kZXI7Cj4gPiA+ID4gPiArCXN0cnVjdCBpbnRlbF9kaWdpdGFs X3BvcnQgKmludGVsX2RpZ19wb3J0Owo+ID4gPiA+ID4gKwlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAq Y29ubmVjdG9yOwo+ID4gPiA+ID4gKwl1bnNpZ25lZCBjaGFyICplbGQ7Cj4gPiA+ID4gPiArCWlu dCByZXQgPSAtRUlOVkFMOwo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gKwlkcm1fbW9kZXNldF9sb2Nr X2FsbChkcm1fZGV2KTsKPiA+ID4gPiAKPiA+ID4gPiBUaGlzIGlzIHN1cGVyIGV4cGVuc2l2ZSBh bmQgc2hvdWxkbid0IGV2ZXIgYmUgdXNlZCBpbiBuZXcgY29kZS4gU28gZWl0aGVyCj4gPiA+ID4g anVzdCB0aGUgY29ubmVjdGlvbl9tdXRleCBvciByZXN1cnJlY3QgdGhlIGF2X211dGV4IGFuZCBq dXN0IGNhY2hlIHdoYXQKPiA+ID4gPiB5b3UgbmVlZCB1bmRlciB0aGF0Lgo+ID4gPiAKPiA+ID4g T0ssIEkgbmVlZCB0byBtYWtlIGl0IGhhcmRlciwgdGhlbi4KPiA+ID4gCj4gPiA+ID4gVGJoIEkg cHJlZmVyIHRoZSBzZXBhcmF0ZSBsb2NrICsgY2FjaGUgZm9yIHN1Y2gKPiA+ID4gPiBzcGVjaWZp YyB0aGluZ3Mgc2luY2UgaXQgY29tcGxldGVseSBhdm9pZHMgc3ByZWFkaW5nIGFuZCBlbnRhbmds aW5nCj4gPiA+ID4gbG9ja2luZyBjb250ZXh0cy4gV2UgdXNlIHRoZSBzYW1lIGRlc2lnbiB0byBn ZXQgbW9kZXNldCBpbmZvcm1hdGlvbiBpbnRvCj4gPiA+ID4gdGhlIFBTUiB0cmFja2luZywgRkJD IHRyYWNraW5nIGFuZCBvdGhlciBjb2RlIHdoaWNoIHNpdHMgYmV0d2VlbiBLTVMgYW5kCj4gPiA+ ID4gb3RoZXIgc3Vic3lzdGVtcy4KPiA+ID4gCj4gPiA+IEkgZGlkbid0IHdhbnQgdG8gYmUgaW52 b2x2ZWQgd2l0aCB0aGUgbW9kZXNldCBsb2NrLCBidXQgaXQgaGFzIHRvIGJlLgo+ID4gPiBUaGlz IGZ1bmN0aW9uIGNhbGxzIGRybV9zZWxlY3RfZWxkKCkgYW5kIGl0IHJlcXVpcmVzIGJvdGgKPiA+ ID4gbW9kZV9jb25maWcubXV0ZXggYW5kIGNvbm5lY3Rpb25fbXV0ZXguCj4gPiA+IAo+ID4gPiAo c25pcCkKPiA+ID4gPiA+ICBzdHJ1Y3QgaTkxNV9hdWRpb19jb21wb25lbnRfYXVkaW9fb3BzIHsK PiA+ID4gPiA+IEBAIC01NSw2ICs1OCw5IEBAIHN0cnVjdCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9h dWRpb19vcHMgewo+ID4gPiA+ID4gIAkgKiBwaW4gc2Vuc2UgYW5kL29yIEVMRCBpbmZvcm1hdGlv biBoYXMgY2hhbmdlZC4KPiA+ID4gPiA+ICAJICogQGF1ZGlvX3B0cjoJCUhEQSBkcml2ZXIgb2Jq ZWN0Cj4gPiA+ID4gPiAgCSAqIEBwb3J0OglXaGljaCBwb3J0IGhhcyBjaGFuZ2VkIChQT1JUQSAv IFBPUlRCIC8gUE9SVEMgZXRjKQo+ID4gPiA+ID4gKwkgKgo+ID4gPiA+ID4gKwkgKiBOb3RlIHRo YXQgeW91IGNhbid0IGNhbGwgaTkxNV9hdWRpb19jb21wb25lbnRfb3BzLmdldF9lbGQgZGlyZWN0 bHkKPiA+ID4gPiA+ICsJICogZnJvbSB0aGUgbm90aWZpZXIgY2FsbGJhY2sgYXMgaXQgbWF5IGxl YWQgdG8gZGVhZGxvY2tzLgo+ID4gPiA+IAo+ID4gPiA+IFdpdGggYXZfbXV0ZXggd2UgZG9uJ3Qg ZXZlbiBuZWVkIHRoYXQgbm90ZSBoZXJlIDstKQo+ID4gPiAKPiA+ID4gU28gaGVyZSBpcyB0aGUg cHJvYmxlbS4gIGF2X211dGV4IGl0c2VsZiBkb2Vzbid0IHN1ZmZpY2UgZm9yCj4gPiA+IGRybV9z ZWxlY3RfZWxkKCksIGFuZCB0YWtpbmcgdGhlIG1vZGVzZXQgbG9jayBsZWFkcyB0byBhIGRlYWRs b2NrIHdoZW4KPiA+ID4gaW52b2tlZCBmcm9tIGVsZF9ub3RpZnkuCj4gPiAKPiA+IFllYWgsIHNl bGVjdF9lbGQgaXMgYnJva2VuIGN1cnJlbnRseSBpbiBhdG9taWMgbGFuZCwgYW5kIHdlIG5lZWQg dG8gZml4Cj4gPiB0aGF0LiBJdCdzIGJ5IGZhciBub3QgdGhlIG9ubHkgb25lIHRoYXQncyBpZmZ5 Lgo+ID4gCj4gPiA+IE1heWJlIG9uZSBhbHRlcm5hdGl2ZSBpcyB0byBwYXNzIHRoZSBhdWRpbyBz dGF0ZSBhbmQgRUxEIGJ5dGVzIGFscmVhZHkKPiA+ID4gaW4gZWxkX25vdGlmeSBpdHNlbGYuICBU aGVuIGl0IGRvZXNuJ3QgaGF2ZSB0byBjYWxsIGdldF9lbGQgZnJvbQo+ID4gPiB0aGVyZS4gIEJ1 dCB3ZSBzdGlsbCBuZWVkIHRoZSBleHBsaWNpdCBmZXRjaCBpbiBzb21lIGNhc2VzIChhdCB0aGUK PiA+ID4gZmlyc3QgcHJvYmUgYW5kIGF0IHJlc3VtZSksIHNvIGdldF9lbGQgb3AgaXMgc3RpbGwg cmVxdWlyZWQuICBUaGVuIGl0Cj4gPiA+IG5lZWRzIHRvIHRha2UgbG9ja3MgYnkgaXRzZWxmLgo+ ID4gCj4gPiBXZWxsIG15IGlkZWEgd2FzIHRoYXQgaW4gdGhlIGVuYWJsZS9kaXNhYmxlIGhvb2tz ICh3aGVyZSB3ZSBzaG91bGQgaG9sZAo+ID4gcmVsZXZhbnQgbW9kZXNldCBsb2NrcyBhbHJlYWR5 LCBleGNlcHQgZm9yIHRoYXQgaWNreSB1bnNvbHZlZCB0aGluZyBJIG5lZWQKPiA+IHRvIHRha2Ug Y2FyZSBvZiBhbnl3YXkpLCBhbmQgc3RvcmUgYSBjb3B5IChwcm90ZWN0ZWQgYnkgYXZfbG9jayku IFRoZW4KPiA+IGdldF9lbGQgd291bGQgb25seSBsb29rIGF0IHRoYXQgY29weS4gVGhhdCBraW5k IG9mICJjYWNoZSByZWxldmFudCBkYXRhLAo+ID4gcHJvdGVjdGVkIHdpdGggbmV3IGxlYWYgbG9j ayIgdHJpY2sgaXMgd2hhdCBJIG1lYW50IHdlIHNob3VsZCB1c2UgaGVyZSwKPiA+IGFuZCBpdCdz IHRoZSB1c3VhbCBhcHByb2FjaCB0byBhdm9pZCBhY3F1aXJpbmcgbW9kZXNldCBsb2NrcyBmcm9t IHJhbmRvbQo+ID4gb3RoZXIgc3Vic3lzdGVtcyAoc2luY2UgdGhhdCBlbmRzIGluIGRlYWRsb2Nr cyBzb29uZXIgb3IgbGF0ZXIpLiBTbyBubwo+ID4gY2FsbGluZyBkcm1fZ2V0X2VsZCBmcm9tIHRo ZSBuZXcgZ2V0X2VsZCBob29rIGF0IGFsbC4KPiA+IAo+ID4gVGhlcmUncyBzdGlsbCB0aGUgcHJv YmxlbSB0aGF0IGN1cnJlbnRseSBjYWxsaW5nIGRybV9nZXRfZWxkIGlzIGJyb2tlbgo+ID4gd2l0 aCBhdG9taWMgbW9kZXNldHMgZXZlbiBpbiBpOTE1IGF1ZGlvIGVuYWJsZS9kaXNhYmxlIGZ1bmN0 aW9ucy4gQnV0Cj4gPiB0aGF0J3MgYSBwcmVleGlzdGluZyBwcm9ibGVtIHdpdGggYXRvbWljLCBh bmQgb25lIEkga25vdyB3ZSBuZWVkIHRvIGZpeAo+ID4gc3RpbGwgYmVmb3JlIHdlIGNhbiBlbmFi bGUgYXRvbWljIGZvciByZWFsIChhbGwgbGVnYWN5IHBhdGhzIGdldCBhd2F5Cj4gPiBzaW5jZSB0 aGVyZSB3ZSB0YWtlIG1vcmUgbG9ja3MpLgo+IAo+IFdoaWxlIEknbSBjb2RpbmcgaXQsIEkgd29u ZGVyIHdoZXRoZXIgd2UgcmVhbGx5IG5lZWQgdG8gY2FjaGUvY29weSB0aGUKPiB3aG9sZSBFTEQg Y29udGVudCBhZ2Fpbi4gIFdvdWxkbid0IHRyYWNraW5nIHRoZSBkcm1fY29ubmVjdG9yIHBvaW50 Cj4gd29yaz8gIElmIHRoZSBjb25uZWN0b3IgbWlnaHQgYmUgcmVtb3ZlZCAvIHVwZGF0ZWQsIHRo ZW4gaXQgaW52b2x2ZXMKPiB3aXRoIHRoZSBtb2Rlc2V0IHVwZGF0ZXMsIGFuZCBjYWxsaW5nIGF1 ZGlvX2NvZGVjX2Rpc2FibGUoKSBpbgo+IGFueXdheS4KClNvIGZvciBjb250ZXh0IHdpdGggYXRv bWljIHRoZSBsb2NraW5nIGNvbXBsZXRlbHkgc3BsaXRzIHRoZSBkaXNwbGF5CmNvbmZpZ3VyYXRp b24gZnJvbSBvdXRwdXQgZGV0ZWN0aW9uLiBEaXNwbGF5IGNvbmZpZyBpcyBwcm90ZWN0ZWQgYnkg YSBwaWxlCm9mIHdhaXQvd291bmQgbXV0ZXhlcyAoYWJzdHJhY3RlZCBhIGJpdCB3aXRoIGRybV9t b2Rlc2V0X2xvY2suYyksIG91dHB1dApwcm9iaW5nIGlzIHByb3RlY3RlZCBieSBkZXYtPm1vZGVf Y29uZmlnLm11dGV4LgoKTm93IGluIHRoZSBjb21wdXRlIGNvbmZpZyBwaGFzZSB3ZSBuZWVkIHRv IGluc3BlY3QgcHJvYmUgc3RhdGUgdG8gZmlndXJlCm91dCB3aGF0IHdlIHNob3VsZCBkbyAoc3R1 ZmYgbGlrZSBlbmFibGluZyBhdWRpbyksIGJ1dCBhZnRlciB0aGF0IHRoZQpjb25maWd1cmF0aW9u IHNob3VsZCBzdGF5IHN0YXRpYyB1bnRpbCB1c2Vyc3BhY2UgYXNrcyBmb3IgYW4gdXBkYXRlLgpP dGhlcndpc2UgaXQgd2lsbCBqdXN0IGVuZCB1cCBpbiBjb25mdXNpb24uCgpNeSBpZGVhIHRvIGZp eCB0aGlzIGFsbCBpcyB0byB0cmFjayBhbGwgdGhpcyBzdHVmZiAoc28gaW5jbHVkaW5nIGhhc19h dWRpbwphbmQgdGhlIGVsZCBhbmQgd2hhdGV2ZXIgZWxzZSB3ZSBuZWVkKSBpbiB0aGUgYXRvbWlj IHN0YXRlIHN0cnVjdHVyZXMuIEFuZApzZXQgdXAgYSBidW5jaCBvZiBfZ2V0IGZ1bmN0aW9ucyAo Zm9yIHVzZSBpbiBjb21wdXRlIGNvbmZpZyBob29rcykgYW5kCl9zZXQgZnVuY3Rpb25zIChmb3Ig dXBkYXRpbmcgcHJvYmVkIHN0YXRlKSB3aXRoIGludGVybmFsIGxvY2tpbmcuIFdlCnJlYWxseSBu ZWVkIHRvIGRvIHRoaXMgY29weWluZywgb3RoZXJ3aXNlIHdlJ2xsIGFsd2F5cyBydW4gaW50IGZ1 biBzdHVmZgp3aXRoIHRoZSBjb25maWd1cmF0aW9uIGNoYW5naW5nIHVuZGVybmVhdGggdXMsIG9y IGp1c3QgbGVha2luZyBvZiBsb2Nrcwpmcm9tIG9uZSBzaWRlIHRvIHRoZSBvdGhlciwgcmVuZGVy aW5nIHRoZSBmaW5lLWdyYWluZWQgbG9ja2luZyBhIGJpdApwb2ludGxlc3MuCgpTbyBpbiB0aGUg ZW5kIHRoZXJlJ2xsIGJlIDIgY29waWVzOiBwcm9iZSAtPiBtb2Rlc2V0IGNvZGUsIGFuZCB0aGUg b25lIHlvdQphZGRlZCBoZXJlIHdoaWNoIGNvcGllcyBtb2Rlc2V0IGNvZGUgLT4gYXVkaW8gY29k ZS4gSXQgbG9va3MgYSBiaXQgc2lsbHksCmJ1dCBpbW8gaXQncyB0aGUgc2ltcGxlc3Qgc29sdXRp b24gYW5kIHNob3VsZCBiZSBlYXN5IHRvIGFkZCBsb2NraW5nCmFzc2VydHMgdG8gX2dldCBhbmQg X3NldCBmdW5jdGlvbnMgdG8gbWFrZSBzdXJlIHRoZXkncmUgYWx3YXlzIGNhbGxlZCBpbgp0aGUg cmlnaHQgY29udGV4dC4KCj4gRldJVywgdGhlIGJlbG93IGlzIHRoZSBkcmFmdCB2ZXJzaW9uIEkg ZmluaXNoZWQgcmV3cml0aW5nIG5vdwo+IChqdXN0IGNvbXBpbGUtdGVzdGVkKS4KCk9uZSBxdWVz dGlvbiBiZWxvdy4KCj4gCj4gCj4gdGhhbmtzLAo+IAo+IFRha2FzaGkKPiAKPiAtLSA4PCAtLQo+ IEZyb206IFRha2FzaGkgSXdhaSA8dGl3YWlAc3VzZS5kZT4KPiBTdWJqZWN0OiBbUEFUQ0hdIGRy bS9pOTE1OiBBZGQgZ2V0X2VsZCBhdWRpbyBjb21wb25lbnQKPiAKPiBJbXBsZW1lbnQgYSBuZXcg aTkxNV9hdWRpb19jb21wb25lbnRfb3BzLCBnZXRfZWxkKCkuICBJdCdzIGNhbGxlZCBieQo+IHRo ZSBhdWRpbyBkcml2ZXIgdG8gZmV0Y2ggdGhlIGN1cnJlbnQgYXVkaW8gc3RhdHVzIGFuZCBFTEQg b2YgdGhlCj4gZ2l2ZW4gSERNSS9EUCBwb3J0LiAgSXQgcmV0dXJucyB0aGUgc2l6ZSBvZiBleHBl Y3RlZCBFTEQgYnl0ZXMgaWYgaXQncwo+IHZhbGlkLCB6ZXJvIGlmIG5vIHZhbGlkIEVMRCBpcyBm b3VuZCwgb3IgYSBuZWdhdGl2ZSBlcnJvciBjb2RlLiAgVGhlCj4gY3VycmVudCBzdGF0ZSBvZiBh dWRpbyBvbi9vZmYgaXMgc3RvcmVkIGluIHRoZSBnaXZlbiBwb2ludGVyLCB0b28uCj4gCj4gTm90 ZSB0aGF0IHRoZSByZXR1cm5lZCBzaXplIGlzbid0IGxpbWl0ZWQgdG8gdGhlIGdpdmVuIG1heCBi eXRlcy4gIElmCj4gdGhlIHNpemUgaXMgZ3JlYXRlciB0aGFuIHRoZSBtYXggYnl0ZXMsIGl0IG1l YW5zIHRoYXQgb25seSBhIHBhcnQgb2YKPiBFTEQgaGFzIGJlZW4gY29waWVkIGJhY2suCj4gCj4g Rm9yIGFjaGlldmluZyB0aGlzIGltcGxlbWVudGF0aW9uLCBhIG5ldyBmaWVsZCBhdWRpb19jb25u ZWN0b3IgaXMKPiBhZGRlZCB0byBzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0LiAgSXQgcG9pbnRz IHRvIHRoZSBjb25uZWN0b3IKPiBhc3NpZ25lZCB0byB0aGUgZ2l2ZW4gZGlnaXRhbCBwb3J0LiAg SXQncyBzZXQvcmVzZXQgYXQgZWFjaCBhdWRpbwo+IGVuYWJsZS9kaXNhYmxlIGNhbGwgaW4gaW50 ZWxfYXVkaW8uYywgYW5kIHByb3RlY3RlZCB3aXRoIGF2X211dGV4Lgo+IAo+IFNpZ25lZC1vZmYt Ynk6IFRha2FzaGkgSXdhaSA8dGl3YWlAc3VzZS5kZT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfYXVkaW8uYyB8IDQyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAgfCAgMiArKwo+ICBp bmNsdWRlL2RybS9pOTE1X2NvbXBvbmVudC5oICAgICAgIHwgIDMgKysrCj4gIDMgZmlsZXMgY2hh bmdlZCwgNDcgaW5zZXJ0aW9ucygrKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9hdWRpby5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXVkaW8uYwo+ IGluZGV4IDRkY2NkOWIwMDNhMS4uN2Y0NWU3M2Y1OGY1IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2F1ZGlvLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9hdWRpby5jCj4gQEAgLTUyNSw2ICs1MjUsMTAgQEAgdm9pZCBpbnRlbF9hdWRpb19jb2Rl Y19lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIpCj4gIAkJZGV2X3By aXYtPmRpc3BsYXkuYXVkaW9fY29kZWNfZW5hYmxlKGNvbm5lY3RvciwgaW50ZWxfZW5jb2RlciwK PiAgCQkJCQkJICAgICBhZGp1c3RlZF9tb2RlKTsKPiAgCj4gKwltdXRleF9sb2NrKCZkZXZfcHJp di0+YXZfbXV0ZXgpOwo+ICsJaW50ZWxfZGlnX3BvcnQtPmF1ZGlvX2Nvbm5lY3RvciA9IGNvbm5l Y3RvcjsKPiArCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmF2X211dGV4KTsKPiArCj4gIAlpZiAo YWNvbXAgJiYgYWNvbXAtPmF1ZGlvX29wcyAmJiBhY29tcC0+YXVkaW9fb3BzLT5waW5fZWxkX25v dGlmeSkKPiAgCQlhY29tcC0+YXVkaW9fb3BzLT5waW5fZWxkX25vdGlmeShhY29tcC0+YXVkaW9f b3BzLT5hdWRpb19wdHIsIChpbnQpIHBvcnQpOwo+ICB9Cj4gQEAgLTU0OCw2ICs1NTIsMTAgQEAg dm9pZCBpbnRlbF9hdWRpb19jb2RlY19kaXNhYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRl bF9lbmNvZGVyKQo+ICAJaWYgKGRldl9wcml2LT5kaXNwbGF5LmF1ZGlvX2NvZGVjX2Rpc2FibGUp Cj4gIAkJZGV2X3ByaXYtPmRpc3BsYXkuYXVkaW9fY29kZWNfZGlzYWJsZShpbnRlbF9lbmNvZGVy KTsKPiAgCj4gKwltdXRleF9sb2NrKCZkZXZfcHJpdi0+YXZfbXV0ZXgpOwo+ICsJaW50ZWxfZGln X3BvcnQtPmF1ZGlvX2Nvbm5lY3RvciA9IE5VTEw7Cj4gKwltdXRleF91bmxvY2soJmRldl9wcml2 LT5hdl9tdXRleCk7Cj4gKwo+ICAJaWYgKGFjb21wICYmIGFjb21wLT5hdWRpb19vcHMgJiYgYWNv bXAtPmF1ZGlvX29wcy0+cGluX2VsZF9ub3RpZnkpCj4gIAkJYWNvbXAtPmF1ZGlvX29wcy0+cGlu X2VsZF9ub3RpZnkoYWNvbXAtPmF1ZGlvX29wcy0+YXVkaW9fcHRyLCAoaW50KSBwb3J0KTsKPiAg fQo+IEBAIC03MDYsNiArNzE0LDM5IEBAIHN0YXRpYyBpbnQgaTkxNV9hdWRpb19jb21wb25lbnRf c3luY19hdWRpb19yYXRlKHN0cnVjdCBkZXZpY2UgKmRldiwKPiAgCXJldHVybiAwOwo+ICB9Cj4g IAo+ICtzdGF0aWMgaW50IGk5MTVfYXVkaW9fY29tcG9uZW50X2dldF9lbGQoc3RydWN0IGRldmlj ZSAqZGV2LCBpbnQgcG9ydCwKPiArCQkJCQlib29sICplbmFibGVkLAo+ICsJCQkJCXVuc2lnbmVk IGNoYXIgKmJ1ZiwgaW50IG1heF9ieXRlcykKPiArewo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gZGV2X3RvX2k5MTUoZGV2KTsKPiArCXN0cnVjdCBkcm1fZGV2aWNlICpk cm1fZGV2ID0gZGV2X3ByaXYtPmRldjsKPiArCXN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9l bmNvZGVyOwo+ICsJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQ7Cj4g Kwljb25zdCB1OCAqZWxkOwo+ICsJaW50IHJldCA9IC1FSU5WQUw7Cj4gKwo+ICsJbXV0ZXhfbG9j aygmZGV2X3ByaXYtPmF2X211dGV4KTsKPiArCWZvcl9lYWNoX2ludGVsX2VuY29kZXIoZHJtX2Rl diwgaW50ZWxfZW5jb2RlcikgewoKSSBndWVzcyB0aGUgbG9vcCB3aWxsIGRpc3NpcGF0ZSB3aXRo IHlvdXIgY2xlYW51cCBwYXRjaCB0byBoYXZlIGEgYXVkaW8KcHJvdCAtPiBpbnRlbF9kaWdfcG9y dCBtYXBwaW5nPwoKbGd0bSBvdGhlcndpc2UuCi1EYW5pZWwKCj4gKwkJaWYgKGludGVsX2VuY29k ZXItPnR5cGUgIT0gSU5URUxfT1VUUFVUX0RJU1BMQVlQT1JUICYmCj4gKwkJICAgIGludGVsX2Vu Y29kZXItPnR5cGUgIT0gSU5URUxfT1VUUFVUX0hETUkpCj4gKwkJCWNvbnRpbnVlOwo+ICsJCWlu dGVsX2RpZ19wb3J0ID0gZW5jX3RvX2RpZ19wb3J0KCZpbnRlbF9lbmNvZGVyLT5iYXNlKTsKPiAr CQlpZiAocG9ydCA9PSBpbnRlbF9kaWdfcG9ydC0+cG9ydCkgewo+ICsJCQlyZXQgPSAwOwo+ICsJ CQkqZW5hYmxlZCA9IGludGVsX2RpZ19wb3J0LT5hdWRpb19jb25uZWN0b3IgIT0gTlVMTDsKPiAr CQkJaWYgKCEqZW5hYmxlZCkKPiArCQkJCWJyZWFrOwo+ICsJCQllbGQgPSBpbnRlbF9kaWdfcG9y dC0+YXVkaW9fY29ubmVjdG9yLT5lbGQ7Cj4gKwkJCXJldCA9IGRybV9lbGRfc2l6ZShlbGQpOwo+ ICsJCQltZW1jcHkoYnVmLCBlbGQsIG1pbihtYXhfYnl0ZXMsIHJldCkpOwo+ICsJCQlicmVhazsK PiArCQl9Cj4gKwl9Cj4gKwo+ICsJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+YXZfbXV0ZXgpOwo+ ICsJcmV0dXJuIHJldDsKPiArfQo+ICsKPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X2F1ZGlv X2NvbXBvbmVudF9vcHMgaTkxNV9hdWRpb19jb21wb25lbnRfb3BzID0gewo+ICAJLm93bmVyCQk9 IFRISVNfTU9EVUxFLAo+ICAJLmdldF9wb3dlcgk9IGk5MTVfYXVkaW9fY29tcG9uZW50X2dldF9w b3dlciwKPiBAQCAtNzEzLDYgKzc1NCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9hdWRp b19jb21wb25lbnRfb3BzIGk5MTVfYXVkaW9fY29tcG9uZW50X29wcyA9IHsKPiAgCS5jb2RlY193 YWtlX292ZXJyaWRlID0gaTkxNV9hdWRpb19jb21wb25lbnRfY29kZWNfd2FrZV9vdmVycmlkZSwK PiAgCS5nZXRfY2RjbGtfZnJlcQk9IGk5MTVfYXVkaW9fY29tcG9uZW50X2dldF9jZGNsa19mcmVx LAo+ICAJLnN5bmNfYXVkaW9fcmF0ZSA9IGk5MTVfYXVkaW9fY29tcG9uZW50X3N5bmNfYXVkaW9f cmF0ZSwKPiArCS5nZXRfZWxkCT0gaTkxNV9hdWRpb19jb21wb25lbnRfZ2V0X2VsZCwKPiAgfTsK PiAgCj4gIHN0YXRpYyBpbnQgaTkxNV9hdWRpb19jb21wb25lbnRfYmluZChzdHJ1Y3QgZGV2aWNl ICppOTE1X2RldiwKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2 LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IGluZGV4IDA1OTg5MzJjZTYy My4uNjA3OTIyZTQ5MzdjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBAQCAtODAw LDYgKzgwMCw4IEBAIHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgewo+ICAJc3RydWN0IGludGVs X2hkbWkgaGRtaTsKPiAgCWVudW0gaXJxcmV0dXJuICgqaHBkX3B1bHNlKShzdHJ1Y3QgaW50ZWxf ZGlnaXRhbF9wb3J0ICosIGJvb2wpOwo+ICAJYm9vbCByZWxlYXNlX2NsMl9vdmVycmlkZTsKPiAr CS8qIGZvciBjb21tdW5pY2F0aW9uIHdpdGggYXVkaW8gY29tcG9uZW50OyBwcm90ZWN0ZWQgYnkg YXZfbXV0ZXggKi8KPiArCWNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yICphdWRpb19jb25uZWN0 b3I7Cj4gIH07Cj4gIAo+ICBzdHJ1Y3QgaW50ZWxfZHBfbXN0X2VuY29kZXIgewo+IGRpZmYgLS1n aXQgYS9pbmNsdWRlL2RybS9pOTE1X2NvbXBvbmVudC5oIGIvaW5jbHVkZS9kcm0vaTkxNV9jb21w b25lbnQuaAo+IGluZGV4IDMwZDg5ZTBkYTJjNi4uMDU4ZDM5ZThkNTdmIDEwMDY0NAo+IC0tLSBh L2luY2x1ZGUvZHJtL2k5MTVfY29tcG9uZW50LmgKPiArKysgYi9pbmNsdWRlL2RybS9pOTE1X2Nv bXBvbmVudC5oCj4gQEAgLTM4LDYgKzM4LDcgQEAKPiAgICogQGNvZGVjX3dha2Vfb3ZlcnJpZGU6 IEVuYWJsZS9EaXNhYmxlIGdlbmVyYXRpbmcgdGhlIGNvZGVjIHdha2Ugc2lnbmFsCj4gICAqIEBn ZXRfY2RjbGtfZnJlcTogZ2V0IHRoZSBDb3JlIERpc3BsYXkgQ2xvY2sgaW4gS0h6Cj4gICAqIEBz eW5jX2F1ZGlvX3JhdGU6IHNldCBuL2N0cyBiYXNlZCBvbiB0aGUgc2FtcGxlIHJhdGUKPiArICog QGdldF9lbGQ6IGZpbGwgdGhlIGF1ZGlvIHN0YXRlIGFuZCBFTEQgYnl0ZXMgZm9yIHRoZSBnaXZl biBwb3J0Cj4gICAqLwo+ICBzdHJ1Y3QgaTkxNV9hdWRpb19jb21wb25lbnRfb3BzIHsKPiAgCXN0 cnVjdCBtb2R1bGUgKm93bmVyOwo+IEBAIC00Niw2ICs0Nyw4IEBAIHN0cnVjdCBpOTE1X2F1ZGlv X2NvbXBvbmVudF9vcHMgewo+ICAJdm9pZCAoKmNvZGVjX3dha2Vfb3ZlcnJpZGUpKHN0cnVjdCBk ZXZpY2UgKiwgYm9vbCBlbmFibGUpOwo+ICAJaW50ICgqZ2V0X2NkY2xrX2ZyZXEpKHN0cnVjdCBk ZXZpY2UgKik7Cj4gIAlpbnQgKCpzeW5jX2F1ZGlvX3JhdGUpKHN0cnVjdCBkZXZpY2UgKiwgaW50 IHBvcnQsIGludCByYXRlKTsKPiArCWludCAoKmdldF9lbGQpKHN0cnVjdCBkZXZpY2UgKiwgaW50 IHBvcnQsIGJvb2wgKmVuYWJsZWQsCj4gKwkJICAgICAgIHVuc2lnbmVkIGNoYXIgKmJ1ZiwgaW50 IG1heF9ieXRlcyk7Cj4gIH07Cj4gIAo+ICBzdHJ1Y3QgaTkxNV9hdWRpb19jb21wb25lbnRfYXVk aW9fb3BzIHsKPiAtLSAKPiAyLjYuMwo+IAoKLS0gCkRhbmllbCBWZXR0ZXIKU29mdHdhcmUgRW5n aW5lZXIsIEludGVsIENvcnBvcmF0aW9uCmh0dHA6Ly9ibG9nLmZmd2xsLmNoCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxp c3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==