From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH] drm/i915/dp: DP audio API changes for MST Date: Thu, 4 Aug 2016 20:35:16 +0300 Message-ID: <20160804173516.GK4329@intel.com> References: <1470190470-32326-1-git-send-email-dhinakaran.pandiyan@intel.com> <1470190470-32326-2-git-send-email-dhinakaran.pandiyan@intel.com> <20160803190812.GO4329@intel.com> <20160804171852.GA15944@shiv> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20160804171852.GA15944@shiv> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Jim Bride Cc: tiwai@suse.de, intel-gfx@lists.freedesktop.org, alsa-devel@alsa-project.org, Dhinakaran Pandiyan , libin.yang@linux.intel.com List-Id: alsa-devel@alsa-project.org T24gVGh1LCBBdWcgMDQsIDIwMTYgYXQgMTA6MTg6NTJBTSAtMDcwMCwgSmltIEJyaWRlIHdyb3Rl Ogo+IE9uIFdlZCwgQXVnIDAzLCAyMDE2IGF0IDEwOjA4OjEyUE0gKzAzMDAsIFZpbGxlIFN5cmrD pGzDpCB3cm90ZToKPiA+IE9uIFR1ZSwgQXVnIDAyLCAyMDE2IGF0IDA3OjE0OjMwUE0gLTA3MDAs IERoaW5ha2FyYW4gUGFuZGl5YW4gd3JvdGU6Cj4gPiA+IERQIE1TVCBwcm92aWRlcyB0aGUgY2Fw YWJpbGl0eSB0byBzZW5kIG11bHRpcGxlIHZpZGVvIGFuZCBhdWRpbyBzdHJlYW1zIHZpYQo+ID4g PiBvbmUgc2luZ2xlIHBvcnQuIFRoaXMgcmVxdWlyZXMgdGhlIEFQSSdzIGJldHdlZW4gaTkxNSBh bmQgYXVkaW8gZHJpdmVycyB0bwo+ID4gPiBkaXN0aW5ndWlzaCBiZXR3ZWVuIGF1ZGlvIGNhcGFi bGUgZGlzcGxheXMgY29ubmVjdGVkIHRvIGEgcG9ydC4gVGhpcyBwYXRjaAo+ID4gPiBhZGRzIHRo aXMgc3VwcG9ydCB2aWEgYW4gYWRkaXRpb25hbCBwYXJhbWV0ZXIgJ2ludCBkZXZfaWQnLiBUaGUg ZXhpc3RpbmcKPiA+ID4gcGFyYW1ldGVyICdwb3J0JyBkb2VzIG5vdCBjaGFuZ2UgaXQncyBtZWFu aW5nLgo+ID4gPiAKPiA+ID4gZGV2X2lkID0KPiA+ID4gCU1TVAk6IHBpcGUgdGhhdCB0aGUgc3Ry ZWFtIG9yaWdpbmF0ZXMgZnJvbQo+ID4gPiAJTm9uLU1TVAk6IC0xCj4gPiA+IAo+ID4gPiBBZmZl Y3RlZCBBUElzOgo+ID4gPiBzdHJ1Y3QgaTkxNV9hdWRpb19jb21wb25lbnRfb3BzCj4gPiA+IC0g ICAgICAgaW50ICgqc3luY19hdWRpb19yYXRlKShzdHJ1Y3QgZGV2aWNlICosIGludCBwb3J0LCBp bnQgcmF0ZSk7Cj4gPiA+ICsJaW50ICgqc3luY19hdWRpb19yYXRlKShzdHJ1Y3QgZGV2aWNlICos IGludCBwb3J0LCBpbnQgZGV2X2lkLAo+ID4gCj4gPiBEb2VzIHRoZSB0ZXJtICdkZXZfaWQnIGhh dmUgc29tZSBzcGVjaWFsIG1lYW5pbmcgb24gdGhlIGF1ZGlvIHNpZGU/IE9uCj4gPiB0aGUgaTkx NSBzaWRlIHRoaW5ncyB3b3VsZCBiZSBsZXNzIGNvbmZ1c2luZyBpZiB3ZSBqdXN0IGNhbGxlZCBp dAo+ID4gJ3BpcGUnLgo+IAo+IFllYWgsIGl0IGRvZXMuICBBbGwgb2YgdGhlIGRvY3VtZW50YXRp b24gb24gdGhlIGF1ZGlvIHNpZGUgaXMgd3JpdHRlbgo+IGluIHRlcm1zIG9mIGRldmljZSBJRCwg c28gdGhleSBhc2tlZCBmb3IgdGhhdCBub21lbmNsYXR1cmUuCgpBbmQgaXMgdGhlIGRldmljZSBJ RCBhbHdheXMgdGhlIHNhbWUgYXMgdGhlIHBpcGU/IFVudGlsIG5vdyB3ZSd2ZSBtYWRlCmR1ZSB3 aXRoIHBhc3NpbmcgdGhlIHBvcnQgaW5zdGVhZCBvZiB0aGUgcGlwZSwgc28gZWl0aGVyIHRoZSBh dWRpbyBzaWRlCmRpZG4ndCB1c2UgdGhlIGRldmljZSBJRCwgb3IgaXRzIG1lYW5pbmcgY2hhbmdl cyBiYXNlZCBvbiBob3cgd2UgZHJpdmUKdGhpbmdzLCBvciB0aGV5IGR1ZyBpdCBvdXQgZnJvbSBz b21ld2hlcmUgZWxzZSBiYXNlZCBvbiB0aGUgcG9ydD8KCj4gCj4gSmltCj4gCj4gCj4gPiA+ICsJ ICAgICBpbnQgcmF0ZSk7Cj4gPiA+IAo+ID4gPiAtICAgICAgIGludCAoKmdldF9lbGQpKHN0cnVj dCBkZXZpY2UgKiwgaW50IHBvcnQsIGJvb2wgKmVuYWJsZWQsCj4gPiA+IC0gICAgICAgICAgICAg ICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKmJ1ZiwgaW50IG1heF9ieXRlcyk7Cj4gPiA+ICsgICAg ICAgaW50ICgqZ2V0X2VsZCkoc3RydWN0IGRldmljZSAqLCBpbnQgcG9ydCwgaW50IGRldl9pZCwK PiA+ID4gKwkJICAgICAgIGJvb2wgKmVuYWJsZWQsIHVuc2lnbmVkIGNoYXIgKmJ1ZiwgaW50IG1h eF9ieXRlcyk7Cj4gPiA+IAo+ID4gPiBzdHJ1Y3QgaTkxNV9hdWRpb19jb21wb25lbnRfYXVkaW9f b3BzCj4gPiA+IC0gICAgICAgdm9pZCAoKnBpbl9lbGRfbm90aWZ5KSh2b2lkICphdWRpb19wdHIs IGludCBwb3J0KTsKPiA+ID4gKyAgICAgICB2b2lkICgqcGluX2VsZF9ub3RpZnkpKHZvaWQgKmF1 ZGlvX3B0ciwgaW50IHBvcnQsIGludCBkZXZfaWQpOwo+ID4gPiAKPiA+ID4gVGhpcyBwYXRjaCBt YWtlcyBkdW1teSBjaGFuZ2VzIGluIHRoZSBhdWRpbyBkcml2ZXJzIGZvciBidWlsZCB0byBzdWNj ZWVkLgo+ID4gPiAKPiA+ID4gU2lnbmVkLW9mZi1ieTogRGhpbmFrYXJhbiBQYW5kaXlhbiA8ZGhp bmFrYXJhbi5wYW5kaXlhbkBpbnRlbC5jb20+Cj4gPiA+IC0tLQo+ID4gPiAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaCAgICB8ICAyICstCj4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9hdWRpby5jIHwgODIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0t LS0KPiA+ID4gIGluY2x1ZGUvZHJtL2k5MTVfY29tcG9uZW50LmggICAgICAgfCAgNiArLS0KPiA+ ID4gIGluY2x1ZGUvc291bmQvaGRhX2k5MTUuaCAgICAgICAgICAgfCAxMSArKy0tLQo+ID4gPiAg c291bmQvaGRhL2hkYWNfaTkxNS5jICAgICAgICAgICAgICB8ICA5ICsrKy0tCj4gPiA+ICBzb3Vu ZC9wY2kvaGRhL3BhdGNoX2hkbWkuYyAgICAgICAgIHwgIDcgKystLQo+ID4gPiAgNiBmaWxlcyBj aGFuZ2VkLCA4MiBpbnNlcnRpb25zKCspLCAzNSBkZWxldGlvbnMoLSkKPiA+ID4gCj4gPiA+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaAo+ID4gPiBpbmRleCA2NWFkYTVkLi44ZTRjOGM4IDEwMDY0NAo+ ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gPiA+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiA+ID4gQEAgLTIwNTQsNyArMjA1NCw3IEBA IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlIHsKPiA+ID4gIAkvKiBwZXJmb3JtIFBIWSBzdGF0ZSBz YW5pdHkgY2hlY2tzPyAqLwo+ID4gPiAgCWJvb2wgY2h2X3BoeV9hc3NlcnRbMl07Cj4gPiA+ICAK PiA+ID4gLQlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZGlnX3BvcnRfbWFwW0k5MTVfTUFYX1BPUlRT XTsKPiA+ID4gKwlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqYXZfZW5jX21hcFtJOTE1X01BWF9QSVBF U107Cj4gPiA+ICAKPiA+ID4gIAkvKgo+ID4gPiAgCSAqIE5PVEU6IFRoaXMgaXMgdGhlIGRyaTEv dW1zIGR1bmdlb24sIGRvbid0IGFkZCBzdHVmZiBoZXJlLiBZb3VyIHBhdGNoCj4gPiA+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdWRpby5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfYXVkaW8uYwo+ID4gPiBpbmRleCA4YzQ5M2RlLi5jYmU0NGM4IDEwMDY0 NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdWRpby5jCj4gPiA+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F1ZGlvLmMKPiA+ID4gQEAgLTUwMCw2ICs1 MDAsOSBAQCB2b2lkIGludGVsX2F1ZGlvX2NvZGVjX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqaW50ZWxfZW5jb2RlcikKPiA+ID4gIAlzdHJ1Y3QgaTkxNV9hdWRpb19jb21wb25lbnQgKmFj b21wID0gZGV2X3ByaXYtPmF1ZGlvX2NvbXBvbmVudDsKPiA+ID4gIAlzdHJ1Y3QgaW50ZWxfZGln aXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9IGVuY190b19kaWdfcG9ydChlbmNvZGVyKTsKPiA+ ID4gIAllbnVtIHBvcnQgcG9ydCA9IGludGVsX2RpZ19wb3J0LT5wb3J0Owo+ID4gPiArCWVudW0g cGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKPiA+ID4gKwlpbnQgZGV2X2lkID0gLTE7Cj4gPiA+ICsK PiA+ID4gIAo+ID4gPiAgCWNvbm5lY3RvciA9IGRybV9zZWxlY3RfZWxkKGVuY29kZXIpOwo+ID4g PiAgCWlmICghY29ubmVjdG9yKQo+ID4gPiBAQCAtNTIyLDE0ICs1MjUsMTkgQEAgdm9pZCBpbnRl bF9hdWRpb19jb2RlY19lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIp Cj4gPiA+ICAJCWRldl9wcml2LT5kaXNwbGF5LmF1ZGlvX2NvZGVjX2VuYWJsZShjb25uZWN0b3Is IGludGVsX2VuY29kZXIsCj4gPiA+ICAJCQkJCQkgICAgIGFkanVzdGVkX21vZGUpOwo+ID4gPiAg Cj4gPiA+ICsJaWYgKGludGVsX2VuY29kZXItPnR5cGUgPT0gSU5URUxfT1VUUFVUX0RQX01TVCkK PiA+ID4gKwkJZGV2X2lkID0gcGlwZTsKPiA+ID4gKwo+ID4gPiAgCW11dGV4X2xvY2soJmRldl9w cml2LT5hdl9tdXRleCk7Cj4gPiA+ICAJaW50ZWxfZW5jb2Rlci0+YXVkaW9fY29ubmVjdG9yID0g Y29ubmVjdG9yOwo+ID4gPiArCj4gPiA+ICAJLyogcmVmZXJyZWQgaW4gYXVkaW8gY2FsbGJhY2tz ICovCj4gPiA+IC0JZGV2X3ByaXYtPmRpZ19wb3J0X21hcFtwb3J0XSA9IGludGVsX2VuY29kZXI7 Cj4gPiA+ICsJZGV2X3ByaXYtPmF2X2VuY19tYXBbcGlwZV0gPSBpbnRlbF9lbmNvZGVyOwo+ID4g PiAgCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmF2X211dGV4KTsKPiA+ID4gIAo+ID4gPiAgCWlm IChhY29tcCAmJiBhY29tcC0+YXVkaW9fb3BzICYmIGFjb21wLT5hdWRpb19vcHMtPnBpbl9lbGRf bm90aWZ5KQo+ID4gPiAtCQlhY29tcC0+YXVkaW9fb3BzLT5waW5fZWxkX25vdGlmeShhY29tcC0+ YXVkaW9fb3BzLT5hdWRpb19wdHIsIChpbnQpIHBvcnQpOwo+ID4gPiArCQlhY29tcC0+YXVkaW9f b3BzLT5waW5fZWxkX25vdGlmeShhY29tcC0+YXVkaW9fb3BzLT5hdWRpb19wdHIsCj4gPiA+ICsJ CQkJCQkgKGludCkgcG9ydCwgZGV2X2lkKTsKPiA+ID4gIH0KPiA+ID4gIAo+ID4gPiAgLyoqCj4g PiA+IEBAIC01NDIsMjIgKzU1MCwyOSBAQCB2b2lkIGludGVsX2F1ZGlvX2NvZGVjX2VuYWJsZShz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlcikKPiA+ID4gIHZvaWQgaW50ZWxfYXVk aW9fY29kZWNfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlcikKPiA+ ID4gIHsKPiA+ID4gIAlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIgPSAmaW50ZWxfZW5jb2Rl ci0+YmFzZTsKPiA+ID4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMo ZW5jb2Rlci0+Y3J0Yyk7Cj4gPiA+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGVuY29kZXIt PmRldjsKPiA+ID4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1 KGRldik7Cj4gPiA+ICAJc3RydWN0IGk5MTVfYXVkaW9fY29tcG9uZW50ICphY29tcCA9IGRldl9w cml2LT5hdWRpb19jb21wb25lbnQ7Cj4gPiA+ICAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAq aW50ZWxfZGlnX3BvcnQgPSBlbmNfdG9fZGlnX3BvcnQoZW5jb2Rlcik7Cj4gPiA+ICAJZW51bSBw b3J0IHBvcnQgPSBpbnRlbF9kaWdfcG9ydC0+cG9ydDsKPiA+ID4gKwllbnVtIHBpcGUgcGlwZSA9 IGNydGMtPnBpcGU7Cj4gPiA+ICsJaW50IGRldl9pZCA9IC0xOwo+ID4gPiArCj4gPiA+ICsJaWYg KGludGVsX2VuY29kZXItPnR5cGUgPT0gSU5URUxfT1VUUFVUX0RQX01TVCkKPiA+ID4gKwkJZGV2 X2lkID0gcGlwZTsKPiA+ID4gIAo+ID4gPiAgCWlmIChkZXZfcHJpdi0+ZGlzcGxheS5hdWRpb19j b2RlY19kaXNhYmxlKQo+ID4gPiAgCQlkZXZfcHJpdi0+ZGlzcGxheS5hdWRpb19jb2RlY19kaXNh YmxlKGludGVsX2VuY29kZXIpOwo+ID4gPiAgCj4gPiA+ICAJbXV0ZXhfbG9jaygmZGV2X3ByaXYt PmF2X211dGV4KTsKPiA+ID4gIAlpbnRlbF9lbmNvZGVyLT5hdWRpb19jb25uZWN0b3IgPSBOVUxM Owo+ID4gPiAtCWRldl9wcml2LT5kaWdfcG9ydF9tYXBbcG9ydF0gPSBOVUxMOwo+ID4gPiArCWRl dl9wcml2LT5hdl9lbmNfbWFwW3BpcGVdID0gTlVMTDsKPiA+ID4gIAltdXRleF91bmxvY2soJmRl dl9wcml2LT5hdl9tdXRleCk7Cj4gPiA+ICAKPiA+ID4gIAlpZiAoYWNvbXAgJiYgYWNvbXAtPmF1 ZGlvX29wcyAmJiBhY29tcC0+YXVkaW9fb3BzLT5waW5fZWxkX25vdGlmeSkKPiA+ID4gLQkJYWNv bXAtPmF1ZGlvX29wcy0+cGluX2VsZF9ub3RpZnkoYWNvbXAtPmF1ZGlvX29wcy0+YXVkaW9fcHRy LCAoaW50KSBwb3J0KTsKPiA+ID4gKwkJYWNvbXAtPmF1ZGlvX29wcy0+cGluX2VsZF9ub3RpZnko YWNvbXAtPmF1ZGlvX29wcy0+YXVkaW9fcHRyLAo+ID4gPiArCQkJCQkJIChpbnQpIHBvcnQsIGRl dl9pZCk7Cj4gPiA+ICB9Cj4gPiA+ICAKPiA+ID4gIC8qKgo+ID4gPiBAQCAtNjI4LDggKzY0Mywz MiBAQCBzdGF0aWMgaW50IGk5MTVfYXVkaW9fY29tcG9uZW50X2dldF9jZGNsa19mcmVxKHN0cnVj dCBkZXZpY2UgKmRldikKPiA+ID4gIAlyZXR1cm4gZGV2X3ByaXYtPmNkY2xrX2ZyZXE7Cj4gPiA+ ICB9Cj4gPiA+ICAKPiA+ID4gLXN0YXRpYyBpbnQgaTkxNV9hdWRpb19jb21wb25lbnRfc3luY19h dWRpb19yYXRlKHN0cnVjdCBkZXZpY2UgKmRldiwKPiA+ID4gLQkJCQkJCWludCBwb3J0LCBpbnQg cmF0ZSkKPiA+ID4gK3N0YXRpYyBzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZ2V0X3NhdmVkX2VuY29k ZXIoc3RydWN0IGludGVsX2VuY29kZXIgKmF2X2VuY19tYXBbXSwKPiA+ID4gKwkJCQkJICAgICAg IGludCBwb3J0LCBpbnQgZGV2X2lkKQo+ID4gPiArewo+ID4gPiArCj4gPiA+ICsJZW51bSBwaXBl IHBpcGU7Cj4gPiA+ICsJc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyOwo+ID4gPiArCj4gPiA+ ICsJaWYgKGRldl9pZCA+PSAwICYmIGRldl9pZCA8IEk5MTVfTUFYX1BJUEVTKQo+ID4gPiArCQly ZXR1cm4gYXZfZW5jX21hcFtkZXZfaWRdOwo+ID4gPiArCj4gPiA+ICsJZm9yIChwaXBlID0gUElQ RV9BOyBwaXBlIDwgSTkxNV9NQVhfUElQRVM7IHBpcGUrKykgewo+ID4gPiArCj4gPiA+ICsJCWlm ICghYXZfZW5jX21hcFtwaXBlXSkKPiA+ID4gKwkJCWNvbnRpbnVlOwo+ID4gPiArCj4gPiA+ICsJ CWVuY29kZXIgPSAmYXZfZW5jX21hcFtwaXBlXS0+YmFzZTsKPiA+ID4gKwkJaWYgKHBvcnQgPT0g ZW5jX3RvX2RpZ19wb3J0KGVuY29kZXIpLT5wb3J0KQo+ID4gPiArCQkJcmV0dXJuIGF2X2VuY19t YXBbcGlwZV07Cj4gPiA+ICsJfQo+ID4gPiArCj4gPiA+ICsJcmV0dXJuIE5VTEw7Cj4gPiA+ICsK PiA+ID4gK30KPiA+ID4gKwo+ID4gPiArc3RhdGljIGludCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9z eW5jX2F1ZGlvX3JhdGUoc3RydWN0IGRldmljZSAqZGV2LCBpbnQgcG9ydCwKPiA+ID4gKwkJCQkJ CWludCBkZXZfaWQsIGludCByYXRlKQo+ID4gPiAgewo+ID4gPiAgCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IGRldl90b19pOTE1KGRldik7Cj4gPiA+ICAJc3RydWN0IGludGVs X2VuY29kZXIgKmludGVsX2VuY29kZXI7Cj4gPiA+IEBAIC02NDksMTUgKzY4OCwxNiBAQCBzdGF0 aWMgaW50IGk5MTVfYXVkaW9fY29tcG9uZW50X3N5bmNfYXVkaW9fcmF0ZShzdHJ1Y3QgZGV2aWNl ICpkZXYsCj4gPiA+ICAJCXJldHVybiAwOwo+ID4gPiAgCj4gPiA+ICAJbXV0ZXhfbG9jaygmZGV2 X3ByaXYtPmF2X211dGV4KTsKPiA+ID4gKwo+ID4gPiAgCS8qIDEuIGdldCB0aGUgcGlwZSAqLwo+ ID4gPiAtCWludGVsX2VuY29kZXIgPSBkZXZfcHJpdi0+ZGlnX3BvcnRfbWFwW3BvcnRdOwo+ID4g PiAtCS8qIGludGVsX2VuY29kZXIgbWlnaHQgYmUgTlVMTCBmb3IgRFAgTVNUICovCj4gPiA+ICsJ aW50ZWxfZW5jb2RlciA9IGdldF9zYXZlZF9lbmNvZGVyKGRldl9wcml2LT5hdl9lbmNfbWFwLCBw b3J0LCBkZXZfaWQpOwo+ID4gPiAgCWlmICghaW50ZWxfZW5jb2RlciB8fCAhaW50ZWxfZW5jb2Rl ci0+YmFzZS5jcnRjIHx8Cj4gPiA+ICAJICAgIGludGVsX2VuY29kZXItPnR5cGUgIT0gSU5URUxf T1VUUFVUX0hETUkpIHsKPiA+ID4gIAkJRFJNX0RFQlVHX0tNUygibm8gdmFsaWQgcG9ydCAlY1xu IiwgcG9ydF9uYW1lKHBvcnQpKTsKPiA+ID4gIAkJZXJyID0gLUVOT0RFVjsKPiA+ID4gIAkJZ290 byB1bmxvY2s7Cj4gPiA+ICAJfQo+ID4gPiArCj4gPiA+ICAJY3J0YyA9IHRvX2ludGVsX2NydGMo aW50ZWxfZW5jb2Rlci0+YmFzZS5jcnRjKTsKPiA+ID4gIAlwaXBlID0gY3J0Yy0+cGlwZTsKPiA+ ID4gIAlpZiAocGlwZSA9PSBJTlZBTElEX1BJUEUpIHsKPiA+ID4gQEAgLTcwMiw3ICs3NDIsNyBA QCBzdGF0aWMgaW50IGk5MTVfYXVkaW9fY29tcG9uZW50X3N5bmNfYXVkaW9fcmF0ZShzdHJ1Y3Qg ZGV2aWNlICpkZXYsCj4gPiA+ICB9Cj4gPiA+ICAKPiA+ID4gIHN0YXRpYyBpbnQgaTkxNV9hdWRp b19jb21wb25lbnRfZ2V0X2VsZChzdHJ1Y3QgZGV2aWNlICpkZXYsIGludCBwb3J0LAo+ID4gPiAt CQkJCQlib29sICplbmFibGVkLAo+ID4gPiArCQkJCQlpbnQgZGV2X2lkLCBib29sICplbmFibGVk LAo+ID4gPiAgCQkJCQl1bnNpZ25lZCBjaGFyICpidWYsIGludCBtYXhfYnl0ZXMpCj4gPiA+ICB7 Cj4gPiA+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2X3RvX2k5MTUo ZGV2KTsKPiA+ID4gQEAgLTcxMCwxNyArNzUwLDIxIEBAIHN0YXRpYyBpbnQgaTkxNV9hdWRpb19j b21wb25lbnRfZ2V0X2VsZChzdHJ1Y3QgZGV2aWNlICpkZXYsIGludCBwb3J0LAo+ID4gPiAgCWNv bnN0IHU4ICplbGQ7Cj4gPiA+ICAJaW50IHJldCA9IC1FSU5WQUw7Cj4gPiA+ICAKPiA+ID4gKwo+ ID4gPiAgCW11dGV4X2xvY2soJmRldl9wcml2LT5hdl9tdXRleCk7Cj4gPiA+IC0JaW50ZWxfZW5j b2RlciA9IGRldl9wcml2LT5kaWdfcG9ydF9tYXBbcG9ydF07Cj4gPiA+IC0JLyogaW50ZWxfZW5j b2RlciBtaWdodCBiZSBOVUxMIGZvciBEUCBNU1QgKi8KPiA+ID4gLQlpZiAoaW50ZWxfZW5jb2Rl cikgewo+ID4gPiAtCQlyZXQgPSAwOwo+ID4gPiAtCQkqZW5hYmxlZCA9IGludGVsX2VuY29kZXIt PmF1ZGlvX2Nvbm5lY3RvciAhPSBOVUxMOwo+ID4gPiAtCQlpZiAoKmVuYWJsZWQpIHsKPiA+ID4g LQkJCWVsZCA9IGludGVsX2VuY29kZXItPmF1ZGlvX2Nvbm5lY3Rvci0+ZWxkOwo+ID4gPiAtCQkJ cmV0ID0gZHJtX2VsZF9zaXplKGVsZCk7Cj4gPiA+IC0JCQltZW1jcHkoYnVmLCBlbGQsIG1pbiht YXhfYnl0ZXMsIHJldCkpOwo+ID4gPiAtCQl9Cj4gPiA+ICsKPiA+ID4gKwlpbnRlbF9lbmNvZGVy ID0gZ2V0X3NhdmVkX2VuY29kZXIoZGV2X3ByaXYtPmF2X2VuY19tYXAsIHBvcnQsIGRldl9pZCk7 Cj4gPiA+ICsJaWYgKCFpbnRlbF9lbmNvZGVyKSB7Cj4gPiA+ICsJCW11dGV4X3VubG9jaygmZGV2 X3ByaXYtPmF2X211dGV4KTsKPiA+ID4gKwkJcmV0dXJuIHJldDsKPiA+ID4gKwl9Cj4gPiA+ICsK PiA+ID4gKwlyZXQgPSAwOwo+ID4gPiArCSplbmFibGVkID0gaW50ZWxfZW5jb2Rlci0+YXVkaW9f Y29ubmVjdG9yICE9IE5VTEw7Cj4gPiA+ICsJaWYgKCplbmFibGVkKSB7Cj4gPiA+ICsJCWVsZCA9 IGludGVsX2VuY29kZXItPmF1ZGlvX2Nvbm5lY3Rvci0+ZWxkOwo+ID4gPiArCQlyZXQgPSBkcm1f ZWxkX3NpemUoZWxkKTsKPiA+ID4gKwkJbWVtY3B5KGJ1ZiwgZWxkLCBtaW4obWF4X2J5dGVzLCBy ZXQpKTsKPiA+ID4gIAl9Cj4gPiA+ICAKPiA+ID4gIAltdXRleF91bmxvY2soJmRldl9wcml2LT5h dl9tdXRleCk7Cj4gPiA+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9pOTE1X2NvbXBvbmVudC5o IGIvaW5jbHVkZS9kcm0vaTkxNV9jb21wb25lbnQuaAo+ID4gPiBpbmRleCBiNDZmYTBlLi4xNDE5 Yzk4IDEwMDY0NAo+ID4gPiAtLS0gYS9pbmNsdWRlL2RybS9pOTE1X2NvbXBvbmVudC5oCj4gPiA+ ICsrKyBiL2luY2x1ZGUvZHJtL2k5MTVfY29tcG9uZW50LmgKPiA+ID4gQEAgLTY0LDcgKzY0LDcg QEAgc3RydWN0IGk5MTVfYXVkaW9fY29tcG9uZW50X29wcyB7Cj4gPiA+ICAJICogQ2FsbGVkIGZy b20gYXVkaW8gZHJpdmVyLiBBZnRlciBhdWRpbyBkcml2ZXIgc2V0cyB0aGUKPiA+ID4gIAkgKiBz YW1wbGUgcmF0ZSwgaXQgd2lsbCBjYWxsIHRoaXMgZnVuY3Rpb24gdG8gc2V0IG4vY3RzCj4gPiA+ ICAJICovCj4gPiA+IC0JaW50ICgqc3luY19hdWRpb19yYXRlKShzdHJ1Y3QgZGV2aWNlICosIGlu dCBwb3J0LCBpbnQgcmF0ZSk7Cj4gPiA+ICsJaW50ICgqc3luY19hdWRpb19yYXRlKShzdHJ1Y3Qg ZGV2aWNlICosIGludCBwb3J0LCBpbnQgZGV2X2lkLCBpbnQgcmF0ZSk7Cj4gPiA+ICAJLyoqCj4g PiA+ICAJICogQGdldF9lbGQ6IGZpbGwgdGhlIGF1ZGlvIHN0YXRlIGFuZCBFTEQgYnl0ZXMgZm9y IHRoZSBnaXZlbiBwb3J0Cj4gPiA+ICAJICoKPiA+ID4gQEAgLTc3LDcgKzc3LDcgQEAgc3RydWN0 IGk5MTVfYXVkaW9fY29tcG9uZW50X29wcyB7Cj4gPiA+ICAJICogTm90ZSB0aGF0IHRoZSByZXR1 cm5lZCBzaXplIG1heSBiZSBvdmVyIEBtYXhfYnl0ZXMuICBUaGVuIGl0Cj4gPiA+ICAJICogaW1w bGllcyB0aGF0IG9ubHkgYSBwYXJ0IG9mIEVMRCBoYXMgYmVlbiBjb3BpZWQgdG8gdGhlIGJ1ZmZl ci4KPiA+ID4gIAkgKi8KPiA+ID4gLQlpbnQgKCpnZXRfZWxkKShzdHJ1Y3QgZGV2aWNlICosIGlu dCBwb3J0LCBib29sICplbmFibGVkLAo+ID4gPiArCWludCAoKmdldF9lbGQpKHN0cnVjdCBkZXZp Y2UgKiwgaW50IHBvcnQsIGludCBkZXZfaWQsIGJvb2wgKmVuYWJsZWQsCj4gPiA+ICAJCSAgICAg ICB1bnNpZ25lZCBjaGFyICpidWYsIGludCBtYXhfYnl0ZXMpOwo+ID4gPiAgfTsKPiA+ID4gIAo+ ID4gPiBAQCAtOTcsNyArOTcsNyBAQCBzdHJ1Y3QgaTkxNV9hdWRpb19jb21wb25lbnRfYXVkaW9f b3BzIHsKPiA+ID4gIAkgKiBzdGF0dXMgYWNjb3JkaW5nbHkgKGV2ZW4gd2hlbiB0aGUgSERBIGNv bnRyb2xsZXIgaXMgaW4gcG93ZXIgc2F2ZQo+ID4gPiAgCSAqIG1vZGUpLgo+ID4gPiAgCSAqLwo+ ID4gPiAtCXZvaWQgKCpwaW5fZWxkX25vdGlmeSkodm9pZCAqYXVkaW9fcHRyLCBpbnQgcG9ydCk7 Cj4gPiA+ICsJdm9pZCAoKnBpbl9lbGRfbm90aWZ5KSh2b2lkICphdWRpb19wdHIsIGludCBwb3J0 LCBpbnQgZGV2X2lkKTsKPiA+ID4gIH07Cj4gPiA+ICAKPiA+ID4gIC8qKgo+ID4gPiBkaWZmIC0t Z2l0IGEvaW5jbHVkZS9zb3VuZC9oZGFfaTkxNS5oIGIvaW5jbHVkZS9zb3VuZC9oZGFfaTkxNS5o Cj4gPiA+IGluZGV4IDc5NmNhYmYuLjVhYjk3MmUgMTAwNjQ0Cj4gPiA+IC0tLSBhL2luY2x1ZGUv c291bmQvaGRhX2k5MTUuaAo+ID4gPiArKysgYi9pbmNsdWRlL3NvdW5kL2hkYV9pOTE1LmgKPiA+ ID4gQEAgLTEwLDggKzEwLDkgQEAKPiA+ID4gIGludCBzbmRfaGRhY19zZXRfY29kZWNfd2FrZXVw KHN0cnVjdCBoZGFjX2J1cyAqYnVzLCBib29sIGVuYWJsZSk7Cj4gPiA+ICBpbnQgc25kX2hkYWNf ZGlzcGxheV9wb3dlcihzdHJ1Y3QgaGRhY19idXMgKmJ1cywgYm9vbCBlbmFibGUpOwo+ID4gPiAg dm9pZCBzbmRfaGRhY19pOTE1X3NldF9iY2xrKHN0cnVjdCBoZGFjX2J1cyAqYnVzKTsKPiA+ID4g LWludCBzbmRfaGRhY19zeW5jX2F1ZGlvX3JhdGUoc3RydWN0IGhkYWNfZGV2aWNlICpjb2RlYywg aGRhX25pZF90IG5pZCwgaW50IHJhdGUpOwo+ID4gPiAtaW50IHNuZF9oZGFjX2Fjb21wX2dldF9l bGQoc3RydWN0IGhkYWNfZGV2aWNlICpjb2RlYywgaGRhX25pZF90IG5pZCwKPiA+ID4gK2ludCBz bmRfaGRhY19zeW5jX2F1ZGlvX3JhdGUoc3RydWN0IGhkYWNfZGV2aWNlICpjb2RlYywgaGRhX25p ZF90IG5pZCwKPiA+ID4gKwkJCSAgICAgaW50IGRldl9pZCwgaW50IHJhdGUpOwo+ID4gPiAraW50 IHNuZF9oZGFjX2Fjb21wX2dldF9lbGQoc3RydWN0IGhkYWNfZGV2aWNlICpjb2RlYywgaGRhX25p ZF90IG5pZCwgaW50IGRldl9pZCwKPiA+ID4gIAkJCSAgIGJvb2wgKmF1ZGlvX2VuYWJsZWQsIGNo YXIgKmJ1ZmZlciwgaW50IG1heF9ieXRlcyk7Cj4gPiA+ICBpbnQgc25kX2hkYWNfaTkxNV9pbml0 KHN0cnVjdCBoZGFjX2J1cyAqYnVzKTsKPiA+ID4gIGludCBzbmRfaGRhY19pOTE1X2V4aXQoc3Ry dWN0IGhkYWNfYnVzICpidXMpOwo+ID4gPiBAQCAtMjksMTMgKzMwLDEzIEBAIHN0YXRpYyBpbmxp bmUgdm9pZCBzbmRfaGRhY19pOTE1X3NldF9iY2xrKHN0cnVjdCBoZGFjX2J1cyAqYnVzKQo+ID4g PiAgewo+ID4gPiAgfQo+ID4gPiAgc3RhdGljIGlubGluZSBpbnQgc25kX2hkYWNfc3luY19hdWRp b19yYXRlKHN0cnVjdCBoZGFjX2RldmljZSAqY29kZWMsCj4gPiA+IC0JCQkJCSAgIGhkYV9uaWRf dCBuaWQsIGludCByYXRlKQo+ID4gPiArCQkJCQkgICBoZGFfbmlkX3QgbmlkLCBpbnQgZGV2X2lk LCBpbnQgcmF0ZSkKPiA+ID4gIHsKPiA+ID4gIAlyZXR1cm4gMDsKPiA+ID4gIH0KPiA+ID4gIHN0 YXRpYyBpbmxpbmUgaW50IHNuZF9oZGFjX2Fjb21wX2dldF9lbGQoc3RydWN0IGhkYWNfZGV2aWNl ICpjb2RlYywgaGRhX25pZF90IG5pZCwKPiA+ID4gLQkJCQkJIGJvb2wgKmF1ZGlvX2VuYWJsZWQs IGNoYXIgKmJ1ZmZlciwKPiA+ID4gLQkJCQkJIGludCBtYXhfYnl0ZXMpCj4gPiA+ICsJCQkJCSBp bnQgZGV2X2lkLCBib29sICphdWRpb19lbmFibGVkLAo+ID4gPiArCQkJCQkgY2hhciAqYnVmZmVy LCBpbnQgbWF4X2J5dGVzKQo+ID4gPiAgewo+ID4gPiAgCXJldHVybiAtRU5PREVWOwo+ID4gPiAg fQo+ID4gPiBkaWZmIC0tZ2l0IGEvc291bmQvaGRhL2hkYWNfaTkxNS5jIGIvc291bmQvaGRhL2hk YWNfaTkxNS5jCj4gPiA+IGluZGV4IGM5YWYwMjIuLjZlYTYzYWMgMTAwNjQ0Cj4gPiA+IC0tLSBh L3NvdW5kL2hkYS9oZGFjX2k5MTUuYwo+ID4gPiArKysgYi9zb3VuZC9oZGEvaGRhY19pOTE1LmMK PiA+ID4gQEAgLTIwMSw3ICsyMDEsOCBAQCBzdGF0aWMgaW50IHBpbjJwb3J0KHN0cnVjdCBoZGFj X2RldmljZSAqY29kZWMsIGhkYV9uaWRfdCBwaW5fbmlkKQo+ID4gPiAgICogVGhpcyBmdW5jdGlv biBzZXRzIE4vQ1RTIHZhbHVlIGJhc2VkIG9uIHRoZSBnaXZlbiBzYW1wbGUgcmF0ZS4KPiA+ID4g ICAqIFJldHVybnMgemVybyBmb3Igc3VjY2Vzcywgb3IgYSBuZWdhdGl2ZSBlcnJvciBjb2RlLgo+ ID4gPiAgICovCj4gPiA+IC1pbnQgc25kX2hkYWNfc3luY19hdWRpb19yYXRlKHN0cnVjdCBoZGFj X2RldmljZSAqY29kZWMsIGhkYV9uaWRfdCBuaWQsIGludCByYXRlKQo+ID4gPiAraW50IHNuZF9o ZGFjX3N5bmNfYXVkaW9fcmF0ZShzdHJ1Y3QgaGRhY19kZXZpY2UgKmNvZGVjLCBoZGFfbmlkX3Qg bmlkLAo+ID4gPiArCQkJICAgICBpbnQgZGV2X2lkLCBpbnQgcmF0ZSkKPiA+ID4gIHsKPiA+ID4g IAlzdHJ1Y3QgaGRhY19idXMgKmJ1cyA9IGNvZGVjLT5idXM7Cj4gPiA+ICAJc3RydWN0IGk5MTVf YXVkaW9fY29tcG9uZW50ICphY29tcCA9IGJ1cy0+YXVkaW9fY29tcG9uZW50Owo+ID4gPiBAQCAt MjEyLDcgKzIxMyw3IEBAIGludCBzbmRfaGRhY19zeW5jX2F1ZGlvX3JhdGUoc3RydWN0IGhkYWNf ZGV2aWNlICpjb2RlYywgaGRhX25pZF90IG5pZCwgaW50IHJhdGUpCj4gPiA+ICAJcG9ydCA9IHBp bjJwb3J0KGNvZGVjLCBuaWQpOwo+ID4gPiAgCWlmIChwb3J0IDwgMCkKPiA+ID4gIAkJcmV0dXJu IC1FSU5WQUw7Cj4gPiA+IC0JcmV0dXJuIGFjb21wLT5vcHMtPnN5bmNfYXVkaW9fcmF0ZShhY29t cC0+ZGV2LCBwb3J0LCByYXRlKTsKPiA+ID4gKwlyZXR1cm4gYWNvbXAtPm9wcy0+c3luY19hdWRp b19yYXRlKGFjb21wLT5kZXYsIHBvcnQsIGRldl9pZCwgcmF0ZSk7Cj4gPiA+ICB9Cj4gPiA+ICBF WFBPUlRfU1lNQk9MX0dQTChzbmRfaGRhY19zeW5jX2F1ZGlvX3JhdGUpOwo+ID4gPiAgCj4gPiA+ IEBAIC0yMzYsNyArMjM3LDcgQEAgRVhQT1JUX1NZTUJPTF9HUEwoc25kX2hkYWNfc3luY19hdWRp b19yYXRlKTsKPiA+ID4gICAqIHRodXMgaXQgbWF5IGJlIG92ZXIgQG1heF9ieXRlcy4gIElmIGl0 J3Mgb3ZlciBAbWF4X2J5dGVzLCBpdCBpbXBsaWVzCj4gPiA+ICAgKiB0aGF0IG9ubHkgYSBwYXJ0 IG9mIEVMRCBieXRlcyBoYXZlIGJlZW4gZmV0Y2hlZC4KPiA+ID4gICAqLwo+ID4gPiAtaW50IHNu ZF9oZGFjX2Fjb21wX2dldF9lbGQoc3RydWN0IGhkYWNfZGV2aWNlICpjb2RlYywgaGRhX25pZF90 IG5pZCwKPiA+ID4gK2ludCBzbmRfaGRhY19hY29tcF9nZXRfZWxkKHN0cnVjdCBoZGFjX2Rldmlj ZSAqY29kZWMsIGhkYV9uaWRfdCBuaWQsIGludCBkZXZfaWQsCj4gPiA+ICAJCQkgICBib29sICph dWRpb19lbmFibGVkLCBjaGFyICpidWZmZXIsIGludCBtYXhfYnl0ZXMpCj4gPiA+ICB7Cj4gPiA+ ICAJc3RydWN0IGhkYWNfYnVzICpidXMgPSBjb2RlYy0+YnVzOwo+ID4gPiBAQCAtMjQ5LDcgKzI1 MCw3IEBAIGludCBzbmRfaGRhY19hY29tcF9nZXRfZWxkKHN0cnVjdCBoZGFjX2RldmljZSAqY29k ZWMsIGhkYV9uaWRfdCBuaWQsCj4gPiA+ICAJcG9ydCA9IHBpbjJwb3J0KGNvZGVjLCBuaWQpOwo+ ID4gPiAgCWlmIChwb3J0IDwgMCkKPiA+ID4gIAkJcmV0dXJuIC1FSU5WQUw7Cj4gPiA+IC0JcmV0 dXJuIGFjb21wLT5vcHMtPmdldF9lbGQoYWNvbXAtPmRldiwgcG9ydCwgYXVkaW9fZW5hYmxlZCwK PiA+ID4gKwlyZXR1cm4gYWNvbXAtPm9wcy0+Z2V0X2VsZChhY29tcC0+ZGV2LCBwb3J0LCBkZXZf aWQsIGF1ZGlvX2VuYWJsZWQsCj4gPiA+ICAJCQkJICAgYnVmZmVyLCBtYXhfYnl0ZXMpOwo+ID4g PiAgfQo+ID4gPiAgRVhQT1JUX1NZTUJPTF9HUEwoc25kX2hkYWNfYWNvbXBfZ2V0X2VsZCk7Cj4g PiA+IGRpZmYgLS1naXQgYS9zb3VuZC9wY2kvaGRhL3BhdGNoX2hkbWkuYyBiL3NvdW5kL3BjaS9o ZGEvcGF0Y2hfaGRtaS5jCj4gPiA+IGluZGV4IGQwZDVhZDguLjA3N2Q0OGEgMTAwNjQ0Cj4gPiA+ IC0tLSBhL3NvdW5kL3BjaS9oZGEvcGF0Y2hfaGRtaS5jCj4gPiA+ICsrKyBiL3NvdW5kL3BjaS9o ZGEvcGF0Y2hfaGRtaS5jCj4gPiA+IEBAIC0xNDg1LDcgKzE0ODUsNyBAQCBzdGF0aWMgdm9pZCBz eW5jX2VsZF92aWFfYWNvbXAoc3RydWN0IGhkYV9jb2RlYyAqY29kZWMsCj4gPiA+ICAKPiA+ID4g IAltdXRleF9sb2NrKCZwZXJfcGluLT5sb2NrKTsKPiA+ID4gIAllbGQtPm1vbml0b3JfcHJlc2Vu dCA9IGZhbHNlOwo+ID4gPiAtCXNpemUgPSBzbmRfaGRhY19hY29tcF9nZXRfZWxkKCZjb2RlYy0+ Y29yZSwgcGVyX3Bpbi0+cGluX25pZCwKPiA+ID4gKwlzaXplID0gc25kX2hkYWNfYWNvbXBfZ2V0 X2VsZCgmY29kZWMtPmNvcmUsIHBlcl9waW4tPnBpbl9uaWQsIC0xLAo+ID4gPiAgCQkJCSAgICAg ICZlbGQtPm1vbml0b3JfcHJlc2VudCwgZWxkLT5lbGRfYnVmZmVyLAo+ID4gPiAgCQkJCSAgICAg IEVMRF9NQVhfU0laRSk7Cj4gPiA+ICAJaWYgKHNpemUgPiAwKSB7Cj4gPiA+IEBAIC0xNzM5LDcg KzE3MzksOCBAQCBzdGF0aWMgaW50IGdlbmVyaWNfaGRtaV9wbGF5YmFja19wY21fcHJlcGFyZShz dHJ1Y3QgaGRhX3BjbV9zdHJlYW0gKmhpbmZvLAo+ID4gPiAgCS8qIENhbGwgc3luY19hdWRpb19y YXRlIHRvIHNldCB0aGUgTi9DVFMvTSBtYW51YWxseSBpZiBuZWNlc3NhcnkgKi8KPiA+ID4gIAkv KiBUb2RvOiBhZGQgRFAxLjIgTVNUIGF1ZGlvIHN1cHBvcnQgbGF0ZXIgKi8KPiA+ID4gIAlpZiAo Y29kZWNfaGFzX2Fjb21wKGNvZGVjKSkKPiA+ID4gLQkJc25kX2hkYWNfc3luY19hdWRpb19yYXRl KCZjb2RlYy0+Y29yZSwgcGluX25pZCwgcnVudGltZS0+cmF0ZSk7Cj4gPiA+ICsJCXNuZF9oZGFj X3N5bmNfYXVkaW9fcmF0ZSgmY29kZWMtPmNvcmUsIHBpbl9uaWQsIC0xLAo+ID4gPiArCQkJCQkg cnVudGltZS0+cmF0ZSk7Cj4gPiA+ICAKPiA+ID4gIAlub25fcGNtID0gY2hlY2tfbm9uX3BjbV9w ZXJfY3Z0KGNvZGVjLCBjdnRfbmlkKTsKPiA+ID4gIAltdXRleF9sb2NrKCZwZXJfcGluLT5sb2Nr KTsKPiA+ID4gQEAgLTIyODUsNyArMjI4Niw3IEBAIHN0YXRpYyB2b2lkIGhhc3dlbGxfc2V0X3Bv d2VyX3N0YXRlKHN0cnVjdCBoZGFfY29kZWMgKmNvZGVjLCBoZGFfbmlkX3QgZmcsCj4gPiA+ICAJ c25kX2hkYV9jb2RlY19zZXRfcG93ZXJfdG9fYWxsKGNvZGVjLCBmZywgcG93ZXJfc3RhdGUpOwo+ ID4gPiAgfQo+ID4gPiAgCj4gPiA+IC1zdGF0aWMgdm9pZCBpbnRlbF9waW5fZWxkX25vdGlmeSh2 b2lkICphdWRpb19wdHIsIGludCBwb3J0KQo+ID4gPiArc3RhdGljIHZvaWQgaW50ZWxfcGluX2Vs ZF9ub3RpZnkodm9pZCAqYXVkaW9fcHRyLCBpbnQgcG9ydCwgaW50IGRldl9pZCkKPiA+ID4gIHsK PiA+ID4gIAlzdHJ1Y3QgaGRhX2NvZGVjICpjb2RlYyA9IGF1ZGlvX3B0cjsKPiA+ID4gIAlpbnQg cGluX25pZDsKPiA+ID4gLS0gCj4gPiA+IDIuNS4wCj4gPiAKPiA+IC0tIAo+ID4gVmlsbGUgU3ly asOkbMOkCj4gPiBJbnRlbCBPVEMKCi0tIApWaWxsZSBTeXJqw6Rsw6QKSW50ZWwgT1RDCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWls aW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=