From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rodrigo Vivi Subject: Re: [Intel-gfx] [PATCH 1/3] drm/i915: Split audio component to a generic type Date: Mon, 16 Jul 2018 10:22:17 -0700 Message-ID: <20180716172216.GE4262@intel.com> References: <20180716134815.21365-1-tiwai@suse.de> <20180716134815.21365-2-tiwai@suse.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20180716134815.21365-2-tiwai@suse.de> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Takashi Iwai Cc: Jim Qu , alsa-devel@alsa-project.org, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: alsa-devel@alsa-project.org T24gTW9uLCBKdWwgMTYsIDIwMTggYXQgMDM6NDg6MTNQTSArMDIwMCwgVGFrYXNoaSBJd2FpIHdy b3RlOgo+IEZvciBhbGxvd2luZyBvdGhlciBkcml2ZXJzIHRvIHVzZSB0aGUgRFJNIGF1ZGlvIGNv bXBvbmVudCwgcmVuYW1lIHRoZQo+IGk5MTVfYXVkaW9fY29tcG9uZW50Xyogd2l0aCBkcm1fYXVk aW9fY29tcG9uZW50XyosIGFuZCBzcGxpdCB0aGUKPiBnZW5lcmljIHBhcnQgaW50byBkcm1fYXVk aW9fY29tcG9uZW50LmguICBUaGUgaTkxNSBzcGVjaWZpYyBzdHVmZgo+IHJlbWFpbnMgaW4gc3Ry dWN0IGk5MTVfYXVkaW9fY29tcG9uZW50LCB3aGljaCBjb250YWlucwo+IGRybV9hdWRpb19jb21w b25lbnQgYXMgdGhlIGJhc2UuCj4gCj4gVGhpcyBpcyBhIHByZWxpbWluYXJ5IGNoYW5nZSBmb3Ig ZnVydGhlciBkZXZlbG9wbWVudCwgYW5kIG5vCj4gZnVuY3Rpb25hbCBjaGFuZ2VzIGJ5IHRoaXMg cGF0Y2ggaXRzZWxmLCBtZXJlbHkgY29kZS1zcGxpdCBhbmQKPiByZW5hbWVzLgoKKzEgb24gdGhl IGlkZWEuLi4uCgo+IAo+IFNpZ25lZC1vZmYtYnk6IFRha2FzaGkgSXdhaSA8dGl3YWlAc3VzZS5k ZT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXVkaW8uYyB8ICAyMiArKyst LS0KPiAgaW5jbHVkZS9kcm0vZHJtX2F1ZGlvX2NvbXBvbmVudC5oICB8IDExNSArKysrKysrKysr KysrKysrKysrKysrKysrKysrKwo+ICBpbmNsdWRlL2RybS9pOTE1X2NvbXBvbmVudC5oICAgICAg IHwgIDg1ICsrLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICBpbmNsdWRlL3NvdW5kL2hkYV9pOTE1Lmgg ICAgICAgICAgIHwgICA2ICstCj4gIGluY2x1ZGUvc291bmQvaGRhdWRpby5oICAgICAgICAgICAg fCAgIDYgKy0KPiAgc291bmQvaGRhL2hkYWNfaTkxNS5jICAgICAgICAgICAgICB8ICA0MCArKysr Ky0tLS0tCj4gIHNvdW5kL3BjaS9oZGEvcGF0Y2hfaGRtaS5jICAgICAgICAgfCAgIDggKy0KPiAg c291bmQvc29jL2NvZGVjcy9oZGFjX2hkbWkuYyAgICAgICB8ICAgMiArLQo+ICA4IGZpbGVzIGNo YW5nZWQsIDE2NCBpbnNlcnRpb25zKCspLCAxMjAgZGVsZXRpb25zKC0pCj4gIGNyZWF0ZSBtb2Rl IDEwMDY0NCBpbmNsdWRlL2RybS9kcm1fYXVkaW9fY29tcG9uZW50LmgKPiAKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXVkaW8uYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2F1ZGlvLmMKPiBpbmRleCAzZWE1NjZmOTk0NTAuLjdkZDU2MDVkOTRhZSAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdWRpby5jCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXVkaW8uYwo+IEBAIC02MzksMTEgKzYzOSwxMiBAQCB2 b2lkIGludGVsX2F1ZGlvX2NvZGVjX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl ciwKPiAgCWRldl9wcml2LT5hdl9lbmNfbWFwW3BpcGVdID0gZW5jb2RlcjsKPiAgCW11dGV4X3Vu bG9jaygmZGV2X3ByaXYtPmF2X211dGV4KTsKPiAgCj4gLQlpZiAoYWNvbXAgJiYgYWNvbXAtPmF1 ZGlvX29wcyAmJiBhY29tcC0+YXVkaW9fb3BzLT5waW5fZWxkX25vdGlmeSkgewo+ICsJaWYgKGFj b21wICYmIGFjb21wLT5iYXNlLmF1ZGlvX29wcyAmJgo+ICsJICAgIGFjb21wLT5iYXNlLmF1ZGlv X29wcy0+cGluX2VsZF9ub3RpZnkpIHsKPiAgCQkvKiBhdWRpbyBkcml2ZXJzIGV4cGVjdCBwaXBl ID0gLTEgdG8gaW5kaWNhdGUgTm9uLU1TVCBjYXNlcyAqLwo+ICAJCWlmICghaW50ZWxfY3J0Y19o YXNfdHlwZShjcnRjX3N0YXRlLCBJTlRFTF9PVVRQVVRfRFBfTVNUKSkKPiAgCQkJcGlwZSA9IC0x Owo+IC0JCWFjb21wLT5hdWRpb19vcHMtPnBpbl9lbGRfbm90aWZ5KGFjb21wLT5hdWRpb19vcHMt PmF1ZGlvX3B0ciwKPiArCQlhY29tcC0+YmFzZS5hdWRpb19vcHMtPnBpbl9lbGRfbm90aWZ5KGFj b21wLT5iYXNlLmF1ZGlvX29wcy0+YXVkaW9fcHRyLAo+ICAJCQkJCQkgKGludCkgcG9ydCwgKGlu dCkgcGlwZSk7Cj4gIAl9Cj4gIAo+IEBAIC02ODEsMTEgKzY4MiwxMiBAQCB2b2lkIGludGVsX2F1 ZGlvX2NvZGVjX2Rpc2FibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAlkZXZf cHJpdi0+YXZfZW5jX21hcFtwaXBlXSA9IE5VTEw7Cj4gIAltdXRleF91bmxvY2soJmRldl9wcml2 LT5hdl9tdXRleCk7Cj4gIAo+IC0JaWYgKGFjb21wICYmIGFjb21wLT5hdWRpb19vcHMgJiYgYWNv bXAtPmF1ZGlvX29wcy0+cGluX2VsZF9ub3RpZnkpIHsKPiArCWlmIChhY29tcCAmJiBhY29tcC0+ YmFzZS5hdWRpb19vcHMgJiYKPiArCSAgICBhY29tcC0+YmFzZS5hdWRpb19vcHMtPnBpbl9lbGRf bm90aWZ5KSB7Cj4gIAkJLyogYXVkaW8gZHJpdmVycyBleHBlY3QgcGlwZSA9IC0xIHRvIGluZGlj YXRlIE5vbi1NU1QgY2FzZXMgKi8KPiAgCQlpZiAoIWludGVsX2NydGNfaGFzX3R5cGUob2xkX2Ny dGNfc3RhdGUsIElOVEVMX09VVFBVVF9EUF9NU1QpKQo+ICAJCQlwaXBlID0gLTE7Cj4gLQkJYWNv bXAtPmF1ZGlvX29wcy0+cGluX2VsZF9ub3RpZnkoYWNvbXAtPmF1ZGlvX29wcy0+YXVkaW9fcHRy LAo+ICsJCWFjb21wLT5iYXNlLmF1ZGlvX29wcy0+cGluX2VsZF9ub3RpZnkoYWNvbXAtPmJhc2Uu YXVkaW9fb3BzLT5hdWRpb19wdHIsCj4gIAkJCQkJCSAoaW50KSBwb3J0LCAoaW50KSBwaXBlKTsK PiAgCX0KPiAgCj4gQEAgLTg4MCw3ICs4ODIsNyBAQCBzdGF0aWMgaW50IGk5MTVfYXVkaW9fY29t cG9uZW50X2dldF9lbGQoc3RydWN0IGRldmljZSAqa2RldiwgaW50IHBvcnQsCj4gIAlyZXR1cm4g cmV0Owo+ICB9Cj4gIAo+IC1zdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfYXVkaW9fY29tcG9uZW50 X29wcyBpOTE1X2F1ZGlvX2NvbXBvbmVudF9vcHMgPSB7Cj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3Qg ZHJtX2F1ZGlvX2NvbXBvbmVudF9vcHMgaTkxNV9hdWRpb19jb21wb25lbnRfb3BzID0gewo+ICAJ Lm93bmVyCQk9IFRISVNfTU9EVUxFLAo+ICAJLmdldF9wb3dlcgk9IGk5MTVfYXVkaW9fY29tcG9u ZW50X2dldF9wb3dlciwKPiAgCS5wdXRfcG93ZXIJPSBpOTE1X2F1ZGlvX2NvbXBvbmVudF9wdXRf cG93ZXIsCj4gQEAgLTg5NywxMiArODk5LDEyIEBAIHN0YXRpYyBpbnQgaTkxNV9hdWRpb19jb21w b25lbnRfYmluZChzdHJ1Y3QgZGV2aWNlICppOTE1X2tkZXYsCj4gIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSBrZGV2X3RvX2k5MTUoaTkxNV9rZGV2KTsKPiAgCWludCBpOwo+ ICAKPiAtCWlmIChXQVJOX09OKGFjb21wLT5vcHMgfHwgYWNvbXAtPmRldikpCj4gKwlpZiAoV0FS Tl9PTihhY29tcC0+YmFzZS5vcHMgfHwgYWNvbXAtPmJhc2UuZGV2KSkKPiAgCQlyZXR1cm4gLUVF WElTVDsKPiAgCj4gIAlkcm1fbW9kZXNldF9sb2NrX2FsbCgmZGV2X3ByaXYtPmRybSk7Cj4gLQlh Y29tcC0+b3BzID0gJmk5MTVfYXVkaW9fY29tcG9uZW50X29wczsKPiAtCWFjb21wLT5kZXYgPSBp OTE1X2tkZXY7Cj4gKwlhY29tcC0+YmFzZS5vcHMgPSAmaTkxNV9hdWRpb19jb21wb25lbnRfb3Bz Owo+ICsJYWNvbXAtPmJhc2UuZGV2ID0gaTkxNV9rZGV2Owo+ICAJQlVJTERfQlVHX09OKE1BWF9Q T1JUUyAhPSBJOTE1X01BWF9QT1JUUyk7Cj4gIAlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShh Y29tcC0+YXVkX3NhbXBsZV9yYXRlKTsgaSsrKQo+ICAJCWFjb21wLT5hdWRfc2FtcGxlX3JhdGVb aV0gPSAwOwo+IEBAIC05MTksOCArOTIxLDggQEAgc3RhdGljIHZvaWQgaTkxNV9hdWRpb19jb21w b25lbnRfdW5iaW5kKHN0cnVjdCBkZXZpY2UgKmk5MTVfa2RldiwKPiAgCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IGtkZXZfdG9faTkxNShpOTE1X2tkZXYpOwo+ICAKPiAgCWRy bV9tb2Rlc2V0X2xvY2tfYWxsKCZkZXZfcHJpdi0+ZHJtKTsKPiAtCWFjb21wLT5vcHMgPSBOVUxM Owo+IC0JYWNvbXAtPmRldiA9IE5VTEw7Cj4gKwlhY29tcC0+YmFzZS5vcHMgPSBOVUxMOwo+ICsJ YWNvbXAtPmJhc2UuZGV2ID0gTlVMTDsKPiAgCWRldl9wcml2LT5hdWRpb19jb21wb25lbnQgPSBO VUxMOwo+ICAJZHJtX21vZGVzZXRfdW5sb2NrX2FsbCgmZGV2X3ByaXYtPmRybSk7Cj4gIH0KPiBk aWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2F1ZGlvX2NvbXBvbmVudC5oIGIvaW5jbHVkZS9k cm0vZHJtX2F1ZGlvX2NvbXBvbmVudC5oCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAw MDAwMDAwMDAwMDAuLmYzMTBiMjg0MDRlOAo+IC0tLSAvZGV2L251bGwKPiArKysgYi9pbmNsdWRl L2RybS9kcm1fYXVkaW9fY29tcG9uZW50LmgKPiBAQCAtMCwwICsxLDExNSBAQAo+ICsvKgo+ICsg KiBDb3B5cmlnaHQgwqkgMjAxNCBJbnRlbCBDb3Jwb3JhdGlvbgo+ICsgKgo+ICsgKiBQZXJtaXNz aW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRh aW5pbmcgYQo+ICsgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1l bnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAo+ICsgKiB0byBkZWFsIGluIHRoZSBTb2Z0 d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCj4g KyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0 cmlidXRlLCBzdWJsaWNlbnNlLAo+ICsgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3 YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKPiArICogU29mdHdhcmUgaXMg ZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoK PiArICoKPiArICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lv biBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAo+ICsgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGlu Y2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCj4gKyAq IFNvZnR3YXJlLgo+ICsgKgo+ICsgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwg V0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgo+ICsgKiBJTVBMSUVELCBJ TkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ TElUWSwKPiArICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJ TkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCj4gKyAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdI VCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCj4gKyAq IExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RI RVJXSVNFLCBBUklTSU5HCj4gKyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEgg VEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MKPiArICogSU4gVEhFIFNP RlRXQVJFLgo+ICsgKi8KCkkgdGhpbmsgaXQgaXMgYmV0dGVyIHRvIHN0YXJ0IG5ldyBmaWxlcyB3 aXRoIFNQRFggaWRlbnRpZmllcnMuLi4uCgo+ICsKPiArI2lmbmRlZiBfRFJNX0FVRElPX0NPTVBP TkVOVF9IXwo+ICsjZGVmaW5lIF9EUk1fQVVESU9fQ09NUE9ORU5UX0hfCj4gKwo+ICsvKioKPiAr ICogc3RydWN0IGRybV9hdWRpb19jb21wb25lbnRfb3BzIC0gT3BzIGltcGxlbWVudGVkIGJ5IERS TSBkcml2ZXIsIGNhbGxlZCBieSBoZGEgZHJpdmVyCj4gKyAqLwo+ICtzdHJ1Y3QgZHJtX2F1ZGlv X2NvbXBvbmVudF9vcHMgewo+ICsJLyoqCj4gKwkgKiBAb3duZXI6IGk5MTUgbW9kdWxlCgpkcm0g bm93PwoKPiArCSAqLwo+ICsJc3RydWN0IG1vZHVsZSAqb3duZXI7Cj4gKwkvKioKPiArCSAqIEBn ZXRfcG93ZXI6IGdldCB0aGUgUE9XRVJfRE9NQUlOX0FVRElPIHBvd2VyIHdlbGwKPiArCSAqCj4g KwkgKiBSZXF1ZXN0IHRoZSBwb3dlciB3ZWxsIHRvIGJlIHR1cm5lZCBvbi4KPiArCSAqLwo+ICsJ dm9pZCAoKmdldF9wb3dlcikoc3RydWN0IGRldmljZSAqKTsKPiArCS8qKgo+ICsJICogQHB1dF9w b3dlcjogcHV0IHRoZSBQT1dFUl9ET01BSU5fQVVESU8gcG93ZXIgd2VsbAo+ICsJICoKPiArCSAq IEFsbG93IHRoZSBwb3dlciB3ZWxsIHRvIGJlIHR1cm5lZCBvZmYuCj4gKwkgKi8KPiArCXZvaWQg KCpwdXRfcG93ZXIpKHN0cnVjdCBkZXZpY2UgKik7Cj4gKwkvKioKPiArCSAqIEBjb2RlY193YWtl X292ZXJyaWRlOiBFbmFibGUvZGlzYWJsZSBjb2RlYyB3YWtlIHNpZ25hbAo+ICsJICovCj4gKwl2 b2lkICgqY29kZWNfd2FrZV9vdmVycmlkZSkoc3RydWN0IGRldmljZSAqLCBib29sIGVuYWJsZSk7 Cj4gKwkvKioKPiArCSAqIEBnZXRfY2RjbGtfZnJlcTogR2V0IHRoZSBDb3JlIERpc3BsYXkgQ2xv Y2sgaW4ga0h6Cj4gKwkgKi8KPiArCWludCAoKmdldF9jZGNsa19mcmVxKShzdHJ1Y3QgZGV2aWNl ICopOwo+ICsJLyoqCj4gKwkgKiBAc3luY19hdWRpb19yYXRlOiBzZXQgbi9jdHMgYmFzZWQgb24g dGhlIHNhbXBsZSByYXRlCj4gKwkgKgo+ICsJICogQ2FsbGVkIGZyb20gYXVkaW8gZHJpdmVyLiBB ZnRlciBhdWRpbyBkcml2ZXIgc2V0cyB0aGUKPiArCSAqIHNhbXBsZSByYXRlLCBpdCB3aWxsIGNh bGwgdGhpcyBmdW5jdGlvbiB0byBzZXQgbi9jdHMKPiArCSAqLwo+ICsJaW50ICgqc3luY19hdWRp b19yYXRlKShzdHJ1Y3QgZGV2aWNlICosIGludCBwb3J0LCBpbnQgcGlwZSwgaW50IHJhdGUpOwo+ ICsJLyoqCj4gKwkgKiBAZ2V0X2VsZDogZmlsbCB0aGUgYXVkaW8gc3RhdGUgYW5kIEVMRCBieXRl cyBmb3IgdGhlIGdpdmVuIHBvcnQKPiArCSAqCj4gKwkgKiBDYWxsZWQgZnJvbSBhdWRpbyBkcml2 ZXIgdG8gZ2V0IHRoZSBIRE1JL0RQIGF1ZGlvIHN0YXRlIG9mIHRoZSBnaXZlbgo+ICsJICogZGln aXRhbCBwb3J0LCBhbmQgYWxzbyBmZXRjaCBFTEQgYnl0ZXMgdG8gdGhlIGdpdmVuIHBvaW50ZXIu Cj4gKwkgKgo+ICsJICogSXQgcmV0dXJucyB0aGUgYnl0ZSBzaXplIG9mIHRoZSBvcmlnaW5hbCBF TEQgKG5vdCB0aGUgYWN0dWFsbHkKPiArCSAqIGNvcGllZCBzaXplKSwgemVybyBmb3IgYW4gaW52 YWxpZCBFTEQsIG9yIGEgbmVnYXRpdmUgZXJyb3IgY29kZS4KPiArCSAqCj4gKwkgKiBOb3RlIHRo YXQgdGhlIHJldHVybmVkIHNpemUgbWF5IGJlIG92ZXIgQG1heF9ieXRlcy4gIFRoZW4gaXQKPiAr CSAqIGltcGxpZXMgdGhhdCBvbmx5IGEgcGFydCBvZiBFTEQgaGFzIGJlZW4gY29waWVkIHRvIHRo ZSBidWZmZXIuCj4gKwkgKi8KPiArCWludCAoKmdldF9lbGQpKHN0cnVjdCBkZXZpY2UgKiwgaW50 IHBvcnQsIGludCBwaXBlLCBib29sICplbmFibGVkLAo+ICsJCSAgICAgICB1bnNpZ25lZCBjaGFy ICpidWYsIGludCBtYXhfYnl0ZXMpOwo+ICt9Owo+ICsKPiArLyoqCj4gKyAqIHN0cnVjdCBkcm1f YXVkaW9fY29tcG9uZW50X2F1ZGlvX29wcyAtIE9wcyBpbXBsZW1lbnRlZCBieSBoZGEgZHJpdmVy LCBjYWxsZWQgYnkgRFJNIGRyaXZlcgo+ICsgKi8KPiArc3RydWN0IGRybV9hdWRpb19jb21wb25l bnRfYXVkaW9fb3BzIHsKPiArCS8qKgo+ICsJICogQGF1ZGlvX3B0cjogUG9pbnRlciB0byBiZSB1 c2VkIGluIGNhbGwgdG8gcGluX2VsZF9ub3RpZnkKPiArCSAqLwo+ICsJdm9pZCAqYXVkaW9fcHRy Owo+ICsJLyoqCj4gKwkgKiBAcGluX2VsZF9ub3RpZnk6IE5vdGlmeSB0aGUgSERBIGRyaXZlciB0 aGF0IHBpbiBzZW5zZSBhbmQvb3IgRUxEIGluZm9ybWF0aW9uIGhhcyBjaGFuZ2VkCj4gKwkgKgo+ ICsJICogQ2FsbGVkIHdoZW4gdGhlIERSTSBkcml2ZXIgaGFzIHNldCB1cCBhdWRpbyBwaXBlbGlu ZSBvciBoYXMganVzdAo+ICsJICogYmVndW4gdG8gdGVhciBpdCBkb3duLiBUaGlzIGFsbG93cyB0 aGUgSERBIGRyaXZlciB0byB1cGRhdGUgaXRzCj4gKwkgKiBzdGF0dXMgYWNjb3JkaW5nbHkgKGV2 ZW4gd2hlbiB0aGUgSERBIGNvbnRyb2xsZXIgaXMgaW4gcG93ZXIgc2F2ZQo+ICsJICogbW9kZSku Cj4gKwkgKi8KPiArCXZvaWQgKCpwaW5fZWxkX25vdGlmeSkodm9pZCAqYXVkaW9fcHRyLCBpbnQg cG9ydCwgaW50IHBpcGUpOwo+ICt9Owo+ICsKPiArLyoqCj4gKyAqIHN0cnVjdCBkcm1fYXVkaW9f Y29tcG9uZW50IC0gVXNlZCBmb3IgZGlyZWN0IGNvbW11bmljYXRpb24gYmV0d2VlbiBEUk0gYW5k IGhkYSBkcml2ZXJzCj4gKyAqLwo+ICtzdHJ1Y3QgZHJtX2F1ZGlvX2NvbXBvbmVudCB7Cj4gKwkv KioKPiArCSAqIEBkZXY6IERSTSBkZXZpY2UsIHVzZWQgYXMgcGFyYW1ldGVyIGZvciBvcHMKPiAr CSAqLwo+ICsJc3RydWN0IGRldmljZSAqZGV2Owo+ICsJLyoqCj4gKwkgKiBAb3BzOiBPcHMgaW1w bGVtZW50ZWQgYnkgRFJNIGRyaXZlciwgY2FsbGVkIGJ5IGhkYSBkcml2ZXIKPiArCSAqLwo+ICsJ Y29uc3Qgc3RydWN0IGRybV9hdWRpb19jb21wb25lbnRfb3BzICpvcHM7Cj4gKwkvKioKPiArCSAq IEBhdWRpb19vcHM6IE9wcyBpbXBsZW1lbnRlZCBieSBoZGEgZHJpdmVyLCBjYWxsZWQgYnkgRFJN IGRyaXZlcgo+ICsJICovCj4gKwljb25zdCBzdHJ1Y3QgZHJtX2F1ZGlvX2NvbXBvbmVudF9hdWRp b19vcHMgKmF1ZGlvX29wczsKPiArfTsKPiArCj4gKyNlbmRpZiAvKiBfRFJNX0FVRElPX0NPTVBP TkVOVF9IXyAqLwo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9pOTE1X2NvbXBvbmVudC5oIGIv aW5jbHVkZS9kcm0vaTkxNV9jb21wb25lbnQuaAo+IGluZGV4IDM0NmIxZjVjYjE4MC4uZmNhMjJk NDYzZTFiIDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvZHJtL2k5MTVfY29tcG9uZW50LmgKPiArKysg Yi9pbmNsdWRlL2RybS9pOTE1X2NvbXBvbmVudC5oCj4gQEAgLTI0LDEwMSArMjQsMjYgQEAKPiAg I2lmbmRlZiBfSTkxNV9DT01QT05FTlRfSF8KPiAgI2RlZmluZSBfSTkxNV9DT01QT05FTlRfSF8K PiAgCj4gKyNpbmNsdWRlICJkcm1fYXVkaW9fY29tcG9uZW50LmgiCj4gKwo+ICAvKiBNQVhfUE9S VCBpcyB0aGUgbnVtYmVyIG9mIHBvcnQKPiAgICogSXQgbXVzdCBiZSBzeW5jIHdpdGggSTkxNV9N QVhfUE9SVFMgZGVmaW5lZCBpOTE1X2Rydi5oCj4gICAqLwo+ICAjZGVmaW5lIE1BWF9QT1JUUyA2 Cj4gIAo+IC0vKioKPiAtICogc3RydWN0IGk5MTVfYXVkaW9fY29tcG9uZW50X29wcyAtIE9wcyBp bXBsZW1lbnRlZCBieSBpOTE1IGRyaXZlciwgY2FsbGVkIGJ5IGhkYSBkcml2ZXIKPiAtICovCj4g LXN0cnVjdCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9vcHMgewo+IC0JLyoqCj4gLQkgKiBAb3duZXI6 IGk5MTUgbW9kdWxlCj4gLQkgKi8KPiAtCXN0cnVjdCBtb2R1bGUgKm93bmVyOwo+IC0JLyoqCj4g LQkgKiBAZ2V0X3Bvd2VyOiBnZXQgdGhlIFBPV0VSX0RPTUFJTl9BVURJTyBwb3dlciB3ZWxsCj4g LQkgKgo+IC0JICogUmVxdWVzdCB0aGUgcG93ZXIgd2VsbCB0byBiZSB0dXJuZWQgb24uCj4gLQkg Ki8KPiAtCXZvaWQgKCpnZXRfcG93ZXIpKHN0cnVjdCBkZXZpY2UgKik7Cj4gLQkvKioKPiAtCSAq IEBwdXRfcG93ZXI6IHB1dCB0aGUgUE9XRVJfRE9NQUlOX0FVRElPIHBvd2VyIHdlbGwKPiAtCSAq Cj4gLQkgKiBBbGxvdyB0aGUgcG93ZXIgd2VsbCB0byBiZSB0dXJuZWQgb2ZmLgo+IC0JICovCj4g LQl2b2lkICgqcHV0X3Bvd2VyKShzdHJ1Y3QgZGV2aWNlICopOwo+IC0JLyoqCj4gLQkgKiBAY29k ZWNfd2FrZV9vdmVycmlkZTogRW5hYmxlL2Rpc2FibGUgY29kZWMgd2FrZSBzaWduYWwKPiAtCSAq Lwo+IC0Jdm9pZCAoKmNvZGVjX3dha2Vfb3ZlcnJpZGUpKHN0cnVjdCBkZXZpY2UgKiwgYm9vbCBl bmFibGUpOwo+IC0JLyoqCj4gLQkgKiBAZ2V0X2NkY2xrX2ZyZXE6IEdldCB0aGUgQ29yZSBEaXNw bGF5IENsb2NrIGluIGtIego+IC0JICovCj4gLQlpbnQgKCpnZXRfY2RjbGtfZnJlcSkoc3RydWN0 IGRldmljZSAqKTsKPiAtCS8qKgo+IC0JICogQHN5bmNfYXVkaW9fcmF0ZTogc2V0IG4vY3RzIGJh c2VkIG9uIHRoZSBzYW1wbGUgcmF0ZQo+IC0JICoKPiAtCSAqIENhbGxlZCBmcm9tIGF1ZGlvIGRy aXZlci4gQWZ0ZXIgYXVkaW8gZHJpdmVyIHNldHMgdGhlCj4gLQkgKiBzYW1wbGUgcmF0ZSwgaXQg d2lsbCBjYWxsIHRoaXMgZnVuY3Rpb24gdG8gc2V0IG4vY3RzCj4gLQkgKi8KPiAtCWludCAoKnN5 bmNfYXVkaW9fcmF0ZSkoc3RydWN0IGRldmljZSAqLCBpbnQgcG9ydCwgaW50IHBpcGUsIGludCBy YXRlKTsKPiAtCS8qKgo+IC0JICogQGdldF9lbGQ6IGZpbGwgdGhlIGF1ZGlvIHN0YXRlIGFuZCBF TEQgYnl0ZXMgZm9yIHRoZSBnaXZlbiBwb3J0Cj4gLQkgKgo+IC0JICogQ2FsbGVkIGZyb20gYXVk aW8gZHJpdmVyIHRvIGdldCB0aGUgSERNSS9EUCBhdWRpbyBzdGF0ZSBvZiB0aGUgZ2l2ZW4KPiAt CSAqIGRpZ2l0YWwgcG9ydCwgYW5kIGFsc28gZmV0Y2ggRUxEIGJ5dGVzIHRvIHRoZSBnaXZlbiBw b2ludGVyLgo+IC0JICoKPiAtCSAqIEl0IHJldHVybnMgdGhlIGJ5dGUgc2l6ZSBvZiB0aGUgb3Jp Z2luYWwgRUxEIChub3QgdGhlIGFjdHVhbGx5Cj4gLQkgKiBjb3BpZWQgc2l6ZSksIHplcm8gZm9y IGFuIGludmFsaWQgRUxELCBvciBhIG5lZ2F0aXZlIGVycm9yIGNvZGUuCj4gLQkgKgo+IC0JICog Tm90ZSB0aGF0IHRoZSByZXR1cm5lZCBzaXplIG1heSBiZSBvdmVyIEBtYXhfYnl0ZXMuICBUaGVu IGl0Cj4gLQkgKiBpbXBsaWVzIHRoYXQgb25seSBhIHBhcnQgb2YgRUxEIGhhcyBiZWVuIGNvcGll ZCB0byB0aGUgYnVmZmVyLgo+IC0JICovCj4gLQlpbnQgKCpnZXRfZWxkKShzdHJ1Y3QgZGV2aWNl ICosIGludCBwb3J0LCBpbnQgcGlwZSwgYm9vbCAqZW5hYmxlZCwKPiAtCQkgICAgICAgdW5zaWdu ZWQgY2hhciAqYnVmLCBpbnQgbWF4X2J5dGVzKTsKPiAtfTsKPiAtCj4gLS8qKgo+IC0gKiBzdHJ1 Y3QgaTkxNV9hdWRpb19jb21wb25lbnRfYXVkaW9fb3BzIC0gT3BzIGltcGxlbWVudGVkIGJ5IGhk YSBkcml2ZXIsIGNhbGxlZCBieSBpOTE1IGRyaXZlcgo+IC0gKi8KPiAtc3RydWN0IGk5MTVfYXVk aW9fY29tcG9uZW50X2F1ZGlvX29wcyB7Cj4gLQkvKioKPiAtCSAqIEBhdWRpb19wdHI6IFBvaW50 ZXIgdG8gYmUgdXNlZCBpbiBjYWxsIHRvIHBpbl9lbGRfbm90aWZ5Cj4gLQkgKi8KPiAtCXZvaWQg KmF1ZGlvX3B0cjsKPiAtCS8qKgo+IC0JICogQHBpbl9lbGRfbm90aWZ5OiBOb3RpZnkgdGhlIEhE QSBkcml2ZXIgdGhhdCBwaW4gc2Vuc2UgYW5kL29yIEVMRCBpbmZvcm1hdGlvbiBoYXMgY2hhbmdl ZAo+IC0JICoKPiAtCSAqIENhbGxlZCB3aGVuIHRoZSBpOTE1IGRyaXZlciBoYXMgc2V0IHVwIGF1 ZGlvIHBpcGVsaW5lIG9yIGhhcyBqdXN0Cj4gLQkgKiBiZWd1biB0byB0ZWFyIGl0IGRvd24uIFRo aXMgYWxsb3dzIHRoZSBIREEgZHJpdmVyIHRvIHVwZGF0ZSBpdHMKPiAtCSAqIHN0YXR1cyBhY2Nv cmRpbmdseSAoZXZlbiB3aGVuIHRoZSBIREEgY29udHJvbGxlciBpcyBpbiBwb3dlciBzYXZlCj4g LQkgKiBtb2RlKS4KPiAtCSAqLwo+IC0Jdm9pZCAoKnBpbl9lbGRfbm90aWZ5KSh2b2lkICphdWRp b19wdHIsIGludCBwb3J0LCBpbnQgcGlwZSk7Cj4gLX07Cj4gLQo+ICAvKioKPiAgICogc3RydWN0 IGk5MTVfYXVkaW9fY29tcG9uZW50IC0gVXNlZCBmb3IgZGlyZWN0IGNvbW11bmljYXRpb24gYmV0 d2VlbiBpOTE1IGFuZCBoZGEgZHJpdmVycwo+ICAgKi8KPiAgc3RydWN0IGk5MTVfYXVkaW9fY29t cG9uZW50IHsKPiAgCS8qKgo+IC0JICogQGRldjogaTkxNSBkZXZpY2UsIHVzZWQgYXMgcGFyYW1l dGVyIGZvciBvcHMKPiArCSAqIEBiYXNlOiB0aGUgZHJtX2F1ZGlvX2NvbXBvbmVudCBiYXNlIGNs YXNzCj4gIAkgKi8KPiAtCXN0cnVjdCBkZXZpY2UgKmRldjsKPiArCXN0cnVjdCBkcm1fYXVkaW9f Y29tcG9uZW50CWJhc2U7Cj4gKwo+ICAJLyoqCj4gIAkgKiBAYXVkX3NhbXBsZV9yYXRlOiB0aGUg YXJyYXkgb2YgYXVkaW8gc2FtcGxlIHJhdGUgcGVyIHBvcnQKPiAgCSAqLwo+ICAJaW50IGF1ZF9z YW1wbGVfcmF0ZVtNQVhfUE9SVFNdOwo+IC0JLyoqCj4gLQkgKiBAb3BzOiBPcHMgaW1wbGVtZW50 ZWQgYnkgaTkxNSBkcml2ZXIsIGNhbGxlZCBieSBoZGEgZHJpdmVyCj4gLQkgKi8KPiAtCWNvbnN0 IHN0cnVjdCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9vcHMgKm9wczsKPiAtCS8qKgo+IC0JICogQGF1 ZGlvX29wczogT3BzIGltcGxlbWVudGVkIGJ5IGhkYSBkcml2ZXIsIGNhbGxlZCBieSBpOTE1IGRy aXZlcgo+IC0JICovCj4gLQljb25zdCBzdHJ1Y3QgaTkxNV9hdWRpb19jb21wb25lbnRfYXVkaW9f b3BzICphdWRpb19vcHM7Cj4gIH07Cj4gIAo+ICAjZW5kaWYgLyogX0k5MTVfQ09NUE9ORU5UX0hf ICovCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvc291bmQvaGRhX2k5MTUuaCBiL2luY2x1ZGUvc291 bmQvaGRhX2k5MTUuaAo+IGluZGV4IGE5NGY1YjZmOTJhYy4uZjY5ZWE4NGU3YjY1IDEwMDY0NAo+ IC0tLSBhL2luY2x1ZGUvc291bmQvaGRhX2k5MTUuaAo+ICsrKyBiL2luY2x1ZGUvc291bmQvaGRh X2k5MTUuaAo+IEBAIC01LDcgKzUsNyBAQAo+ICAjaWZuZGVmIF9fU09VTkRfSERBX0k5MTVfSAo+ ICAjZGVmaW5lIF9fU09VTkRfSERBX0k5MTVfSAo+ICAKPiAtI2luY2x1ZGUgPGRybS9pOTE1X2Nv bXBvbmVudC5oPgo+ICsjaW5jbHVkZSA8ZHJtL2RybV9hdWRpb19jb21wb25lbnQuaD4KPiAgCj4g ICNpZmRlZiBDT05GSUdfU05EX0hEQV9JOTE1Cj4gIGludCBzbmRfaGRhY19zZXRfY29kZWNfd2Fr ZXVwKHN0cnVjdCBoZGFjX2J1cyAqYnVzLCBib29sIGVuYWJsZSk7Cj4gQEAgLTE3LDcgKzE3LDcg QEAgaW50IHNuZF9oZGFjX2Fjb21wX2dldF9lbGQoc3RydWN0IGhkYWNfZGV2aWNlICpjb2RlYywg aGRhX25pZF90IG5pZCwgaW50IGRldl9pZCwKPiAgCQkJICAgYm9vbCAqYXVkaW9fZW5hYmxlZCwg Y2hhciAqYnVmZmVyLCBpbnQgbWF4X2J5dGVzKTsKPiAgaW50IHNuZF9oZGFjX2k5MTVfaW5pdChz dHJ1Y3QgaGRhY19idXMgKmJ1cyk7Cj4gIGludCBzbmRfaGRhY19pOTE1X2V4aXQoc3RydWN0IGhk YWNfYnVzICpidXMpOwo+IC1pbnQgc25kX2hkYWNfaTkxNV9yZWdpc3Rlcl9ub3RpZmllcihjb25z dCBzdHJ1Y3QgaTkxNV9hdWRpb19jb21wb25lbnRfYXVkaW9fb3BzICopOwo+ICtpbnQgc25kX2hk YWNfaTkxNV9yZWdpc3Rlcl9ub3RpZmllcihjb25zdCBzdHJ1Y3QgZHJtX2F1ZGlvX2NvbXBvbmVu dF9hdWRpb19vcHMgKik7Cj4gICNlbHNlCj4gIHN0YXRpYyBpbmxpbmUgaW50IHNuZF9oZGFjX3Nl dF9jb2RlY193YWtldXAoc3RydWN0IGhkYWNfYnVzICpidXMsIGJvb2wgZW5hYmxlKQo+ICB7Cj4g QEAgLTQ5LDcgKzQ5LDcgQEAgc3RhdGljIGlubGluZSBpbnQgc25kX2hkYWNfaTkxNV9leGl0KHN0 cnVjdCBoZGFjX2J1cyAqYnVzKQo+ICB7Cj4gIAlyZXR1cm4gMDsKPiAgfQo+IC1zdGF0aWMgaW5s aW5lIGludCBzbmRfaGRhY19pOTE1X3JlZ2lzdGVyX25vdGlmaWVyKGNvbnN0IHN0cnVjdCBpOTE1 X2F1ZGlvX2NvbXBvbmVudF9hdWRpb19vcHMgKm9wcykKPiArc3RhdGljIGlubGluZSBpbnQgc25k X2hkYWNfaTkxNV9yZWdpc3Rlcl9ub3RpZmllcihjb25zdCBzdHJ1Y3QgZHJtX2F1ZGlvX2NvbXBv bmVudF9hdWRpb19vcHMgKm9wcykKPiAgewo+ICAJcmV0dXJuIC1FTk9ERVY7Cj4gIH0KPiBkaWZm IC0tZ2l0IGEvaW5jbHVkZS9zb3VuZC9oZGF1ZGlvLmggYi9pbmNsdWRlL3NvdW5kL2hkYXVkaW8u aAo+IGluZGV4IGYxYmFhYTg4ZTc2Ni4uYWI1ZWUzZWYyMTk4IDEwMDY0NAo+IC0tLSBhL2luY2x1 ZGUvc291bmQvaGRhdWRpby5oCj4gKysrIGIvaW5jbHVkZS9zb3VuZC9oZGF1ZGlvLmgKPiBAQCAt MzMzLDkgKzMzMyw5IEBAIHN0cnVjdCBoZGFjX2J1cyB7Cj4gIAlzcGlubG9ja190IHJlZ19sb2Nr Owo+ICAJc3RydWN0IG11dGV4IGNtZF9tdXRleDsKPiAgCj4gLQkvKiBpOTE1IGNvbXBvbmVudCBp bnRlcmZhY2UgKi8KPiAtCXN0cnVjdCBpOTE1X2F1ZGlvX2NvbXBvbmVudCAqYXVkaW9fY29tcG9u ZW50Owo+IC0JaW50IGk5MTVfcG93ZXJfcmVmY291bnQ7Cj4gKwkvKiBEUk0gY29tcG9uZW50IGlu dGVyZmFjZSAqLwo+ICsJc3RydWN0IGRybV9hdWRpb19jb21wb25lbnQgKmF1ZGlvX2NvbXBvbmVu dDsKPiArCWludCBkcm1fcG93ZXJfcmVmY291bnQ7Cj4gIAo+ICAJLyogcGFyYW1ldGVycyByZXF1 aXJlZCBmb3IgZW5oYW5jZWQgY2FwYWJpbGl0aWVzICovCj4gIAlpbnQgbnVtX3N0cmVhbXM7Cj4g ZGlmZiAtLWdpdCBhL3NvdW5kL2hkYS9oZGFjX2k5MTUuYyBiL3NvdW5kL2hkYS9oZGFjX2k5MTUu Ywo+IGluZGV4IGNiZTgxOGVkYTMzNi4uMWE4OGMxYWFmOWJiIDEwMDY0NAo+IC0tLSBhL3NvdW5k L2hkYS9oZGFjX2k5MTUuYwo+ICsrKyBiL3NvdW5kL2hkYS9oZGFjX2k5MTUuYwo+IEBAIC0xNiwx MyArMTYsMTMgQEAKPiAgI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgo+ICAjaW5jbHVkZSA8bGlu dXgvcGNpLmg+Cj4gICNpbmNsdWRlIDxsaW51eC9jb21wb25lbnQuaD4KPiAtI2luY2x1ZGUgPGRy bS9pOTE1X2NvbXBvbmVudC5oPgo+ICsjaW5jbHVkZSA8ZHJtL2RybV9hdWRpb19jb21wb25lbnQu aD4KPiAgI2luY2x1ZGUgPHNvdW5kL2NvcmUuaD4KPiAgI2luY2x1ZGUgPHNvdW5kL2hkYXVkaW8u aD4KPiAgI2luY2x1ZGUgPHNvdW5kL2hkYV9pOTE1Lmg+Cj4gICNpbmNsdWRlIDxzb3VuZC9oZGFf cmVnaXN0ZXIuaD4KPiAgCj4gLXN0YXRpYyBzdHJ1Y3QgaTkxNV9hdWRpb19jb21wb25lbnQgKmhk YWNfYWNvbXA7Cj4gK3N0YXRpYyBzdHJ1Y3QgZHJtX2F1ZGlvX2NvbXBvbmVudCAqaGRhY19hY29t cDsKPiAgCj4gIC8qKgo+ICAgKiBzbmRfaGRhY19zZXRfY29kZWNfd2FrZXVwIC0gRW5hYmxlIC8g ZGlzYWJsZSBIRE1JL0RQIGNvZGVjIHdha2V1cAo+IEBAIC0zOSw3ICszOSw3IEBAIHN0YXRpYyBz dHJ1Y3QgaTkxNV9hdWRpb19jb21wb25lbnQgKmhkYWNfYWNvbXA7Cj4gICAqLwo+ICBpbnQgc25k X2hkYWNfc2V0X2NvZGVjX3dha2V1cChzdHJ1Y3QgaGRhY19idXMgKmJ1cywgYm9vbCBlbmFibGUp Cj4gIHsKPiAtCXN0cnVjdCBpOTE1X2F1ZGlvX2NvbXBvbmVudCAqYWNvbXAgPSBidXMtPmF1ZGlv X2NvbXBvbmVudDsKPiArCXN0cnVjdCBkcm1fYXVkaW9fY29tcG9uZW50ICphY29tcCA9IGJ1cy0+ YXVkaW9fY29tcG9uZW50Owo+ICAKPiAgCWlmICghYWNvbXAgfHwgIWFjb21wLT5vcHMpCj4gIAkJ cmV0dXJuIC1FTk9ERVY7Cj4gQEAgLTc0LDcgKzc0LDcgQEAgRVhQT1JUX1NZTUJPTF9HUEwoc25k X2hkYWNfc2V0X2NvZGVjX3dha2V1cCk7Cj4gICAqLwo+ICBpbnQgc25kX2hkYWNfZGlzcGxheV9w b3dlcihzdHJ1Y3QgaGRhY19idXMgKmJ1cywgYm9vbCBlbmFibGUpCj4gIHsKPiAtCXN0cnVjdCBp OTE1X2F1ZGlvX2NvbXBvbmVudCAqYWNvbXAgPSBidXMtPmF1ZGlvX2NvbXBvbmVudDsKPiArCXN0 cnVjdCBkcm1fYXVkaW9fY29tcG9uZW50ICphY29tcCA9IGJ1cy0+YXVkaW9fY29tcG9uZW50Owo+ ICAKPiAgCWlmICghYWNvbXAgfHwgIWFjb21wLT5vcHMpCj4gIAkJcmV0dXJuIC1FTk9ERVY7Cj4g QEAgLTgzLDE0ICs4MywxNCBAQCBpbnQgc25kX2hkYWNfZGlzcGxheV9wb3dlcihzdHJ1Y3QgaGRh Y19idXMgKmJ1cywgYm9vbCBlbmFibGUpCj4gIAkJZW5hYmxlID8gImVuYWJsZSIgOiAiZGlzYWJs ZSIpOwo+ICAKPiAgCWlmIChlbmFibGUpIHsKPiAtCQlpZiAoIWJ1cy0+aTkxNV9wb3dlcl9yZWZj b3VudCsrKSB7Cj4gKwkJaWYgKCFidXMtPmRybV9wb3dlcl9yZWZjb3VudCsrKSB7Cj4gIAkJCWFj b21wLT5vcHMtPmdldF9wb3dlcihhY29tcC0+ZGV2KTsKPiAgCQkJc25kX2hkYWNfc2V0X2NvZGVj X3dha2V1cChidXMsIHRydWUpOwo+ICAJCQlzbmRfaGRhY19zZXRfY29kZWNfd2FrZXVwKGJ1cywg ZmFsc2UpOwo+ICAJCX0KPiAgCX0gZWxzZSB7Cj4gLQkJV0FSTl9PTighYnVzLT5pOTE1X3Bvd2Vy X3JlZmNvdW50KTsKPiAtCQlpZiAoIS0tYnVzLT5pOTE1X3Bvd2VyX3JlZmNvdW50KQo+ICsJCVdB Uk5fT04oIWJ1cy0+ZHJtX3Bvd2VyX3JlZmNvdW50KTsKPiArCQlpZiAoIS0tYnVzLT5kcm1fcG93 ZXJfcmVmY291bnQpCj4gIAkJCWFjb21wLT5vcHMtPnB1dF9wb3dlcihhY29tcC0+ZGV2KTsKPiAg CX0KPiAgCj4gQEAgLTExOSw3ICsxMTksNyBAQCBFWFBPUlRfU1lNQk9MX0dQTChzbmRfaGRhY19k aXNwbGF5X3Bvd2VyKTsKPiAgICovCj4gIHZvaWQgc25kX2hkYWNfaTkxNV9zZXRfYmNsayhzdHJ1 Y3QgaGRhY19idXMgKmJ1cykKPiAgewo+IC0Jc3RydWN0IGk5MTVfYXVkaW9fY29tcG9uZW50ICph Y29tcCA9IGJ1cy0+YXVkaW9fY29tcG9uZW50Owo+ICsJc3RydWN0IGRybV9hdWRpb19jb21wb25l bnQgKmFjb21wID0gYnVzLT5hdWRpb19jb21wb25lbnQ7Cj4gIAlzdHJ1Y3QgcGNpX2RldiAqcGNp ID0gdG9fcGNpX2RldihidXMtPmRldik7Cj4gIAlpbnQgY2RjbGtfZnJlcTsKPiAgCXVuc2lnbmVk IGludCBiY2xrX20sIGJjbGtfbjsKPiBAQCAtMjA2LDcgKzIwNiw3IEBAIGludCBzbmRfaGRhY19z eW5jX2F1ZGlvX3JhdGUoc3RydWN0IGhkYWNfZGV2aWNlICpjb2RlYywgaGRhX25pZF90IG5pZCwK PiAgCQkJICAgICBpbnQgZGV2X2lkLCBpbnQgcmF0ZSkKPiAgewo+ICAJc3RydWN0IGhkYWNfYnVz ICpidXMgPSBjb2RlYy0+YnVzOwo+IC0Jc3RydWN0IGk5MTVfYXVkaW9fY29tcG9uZW50ICphY29t cCA9IGJ1cy0+YXVkaW9fY29tcG9uZW50Owo+ICsJc3RydWN0IGRybV9hdWRpb19jb21wb25lbnQg KmFjb21wID0gYnVzLT5hdWRpb19jb21wb25lbnQ7Cj4gIAlpbnQgcG9ydCwgcGlwZTsKPiAgCj4g IAlpZiAoIWFjb21wIHx8ICFhY29tcC0+b3BzIHx8ICFhY29tcC0+b3BzLT5zeW5jX2F1ZGlvX3Jh dGUpCj4gQEAgLTI0NCw3ICsyNDQsNyBAQCBpbnQgc25kX2hkYWNfYWNvbXBfZ2V0X2VsZChzdHJ1 Y3QgaGRhY19kZXZpY2UgKmNvZGVjLCBoZGFfbmlkX3QgbmlkLCBpbnQgZGV2X2lkLAo+ICAJCQkg ICBib29sICphdWRpb19lbmFibGVkLCBjaGFyICpidWZmZXIsIGludCBtYXhfYnl0ZXMpCj4gIHsK PiAgCXN0cnVjdCBoZGFjX2J1cyAqYnVzID0gY29kZWMtPmJ1czsKPiAtCXN0cnVjdCBpOTE1X2F1 ZGlvX2NvbXBvbmVudCAqYWNvbXAgPSBidXMtPmF1ZGlvX2NvbXBvbmVudDsKPiArCXN0cnVjdCBk cm1fYXVkaW9fY29tcG9uZW50ICphY29tcCA9IGJ1cy0+YXVkaW9fY29tcG9uZW50Owo+ICAJaW50 IHBvcnQsIHBpcGU7Cj4gIAo+ICAJaWYgKCFhY29tcCB8fCAhYWNvbXAtPm9wcyB8fCAhYWNvbXAt Pm9wcy0+Z2V0X2VsZCkKPiBAQCAtMjYyLDcgKzI2Miw3IEBAIEVYUE9SVF9TWU1CT0xfR1BMKHNu ZF9oZGFjX2Fjb21wX2dldF9lbGQpOwo+ICAKPiAgc3RhdGljIGludCBoZGFjX2NvbXBvbmVudF9t YXN0ZXJfYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYpCj4gIHsKPiAtCXN0cnVjdCBpOTE1X2F1ZGlv X2NvbXBvbmVudCAqYWNvbXAgPSBoZGFjX2Fjb21wOwo+ICsJc3RydWN0IGRybV9hdWRpb19jb21w b25lbnQgKmFjb21wID0gaGRhY19hY29tcDsKPiAgCWludCByZXQ7Cj4gIAo+ICAJcmV0ID0gY29t cG9uZW50X2JpbmRfYWxsKGRldiwgYWNvbXApOwo+IEBAIC0yOTQsNyArMjk0LDcgQEAgc3RhdGlj IGludCBoZGFjX2NvbXBvbmVudF9tYXN0ZXJfYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYpCj4gIAo+ ICBzdGF0aWMgdm9pZCBoZGFjX2NvbXBvbmVudF9tYXN0ZXJfdW5iaW5kKHN0cnVjdCBkZXZpY2Ug KmRldikKPiAgewo+IC0Jc3RydWN0IGk5MTVfYXVkaW9fY29tcG9uZW50ICphY29tcCA9IGhkYWNf YWNvbXA7Cj4gKwlzdHJ1Y3QgZHJtX2F1ZGlvX2NvbXBvbmVudCAqYWNvbXAgPSBoZGFjX2Fjb21w Owo+ICAKPiAgCW1vZHVsZV9wdXQoYWNvbXAtPm9wcy0+b3duZXIpOwo+ICAJY29tcG9uZW50X3Vu YmluZF9hbGwoZGV2LCBhY29tcCk7Cj4gQEAgLTMyMyw3ICszMjMsNyBAQCBzdGF0aWMgaW50IGhk YWNfY29tcG9uZW50X21hc3Rlcl9tYXRjaChzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEp Cj4gICAqCj4gICAqIFJldHVybnMgemVybyBmb3Igc3VjY2VzcyBvciBhIG5lZ2F0aXZlIGVycm9y IGNvZGUuCj4gICAqLwo+IC1pbnQgc25kX2hkYWNfaTkxNV9yZWdpc3Rlcl9ub3RpZmllcihjb25z dCBzdHJ1Y3QgaTkxNV9hdWRpb19jb21wb25lbnRfYXVkaW9fb3BzICphb3BzKQo+ICtpbnQgc25k X2hkYWNfaTkxNV9yZWdpc3Rlcl9ub3RpZmllcihjb25zdCBzdHJ1Y3QgZHJtX2F1ZGlvX2NvbXBv bmVudF9hdWRpb19vcHMgKmFvcHMpCj4gIHsKPiAgCWlmICghaGRhY19hY29tcCkKPiAgCQlyZXR1 cm4gLUVOT0RFVjsKPiBAQCAtMzYxLDcgKzM2MSw4IEBAIGludCBzbmRfaGRhY19pOTE1X2luaXQo c3RydWN0IGhkYWNfYnVzICpidXMpCj4gIHsKPiAgCXN0cnVjdCBjb21wb25lbnRfbWF0Y2ggKm1h dGNoID0gTlVMTDsKPiAgCXN0cnVjdCBkZXZpY2UgKmRldiA9IGJ1cy0+ZGV2Owo+IC0Jc3RydWN0 IGk5MTVfYXVkaW9fY29tcG9uZW50ICphY29tcDsKPiArCXN0cnVjdCBpOTE1X2F1ZGlvX2NvbXBv bmVudCAqaTkxNV9hY29tcDsKPiArCXN0cnVjdCBkcm1fYXVkaW9fY29tcG9uZW50ICphY29tcDsK PiAgCWludCByZXQ7Cj4gIAo+ICAJaWYgKFdBUk5fT04oaGRhY19hY29tcCkpCj4gQEAgLTM3MCw5 ICszNzEsMTAgQEAgaW50IHNuZF9oZGFjX2k5MTVfaW5pdChzdHJ1Y3QgaGRhY19idXMgKmJ1cykK PiAgCWlmICghaTkxNV9nZnhfcHJlc2VudCgpKQo+ICAJCXJldHVybiAtRU5PREVWOwo+ICAKPiAt CWFjb21wID0ga3phbGxvYyhzaXplb2YoKmFjb21wKSwgR0ZQX0tFUk5FTCk7Cj4gLQlpZiAoIWFj b21wKQo+ICsJaTkxNV9hY29tcCA9IGt6YWxsb2Moc2l6ZW9mKCppOTE1X2Fjb21wKSwgR0ZQX0tF Uk5FTCk7Cj4gKwlpZiAoIWk5MTVfYWNvbXApCj4gIAkJcmV0dXJuIC1FTk9NRU07Cj4gKwlhY29t cCA9ICZpOTE1X2Fjb21wLT5iYXNlOwo+ICAJYnVzLT5hdWRpb19jb21wb25lbnQgPSBhY29tcDsK PiAgCWhkYWNfYWNvbXAgPSBhY29tcDsKPiAgCj4gQEAgLTQyMSwxMyArNDIzLDEzIEBAIEVYUE9S VF9TWU1CT0xfR1BMKHNuZF9oZGFjX2k5MTVfaW5pdCk7Cj4gIGludCBzbmRfaGRhY19pOTE1X2V4 aXQoc3RydWN0IGhkYWNfYnVzICpidXMpCj4gIHsKPiAgCXN0cnVjdCBkZXZpY2UgKmRldiA9IGJ1 cy0+ZGV2Owo+IC0Jc3RydWN0IGk5MTVfYXVkaW9fY29tcG9uZW50ICphY29tcCA9IGJ1cy0+YXVk aW9fY29tcG9uZW50Owo+ICsJc3RydWN0IGRybV9hdWRpb19jb21wb25lbnQgKmFjb21wID0gYnVz LT5hdWRpb19jb21wb25lbnQ7Cj4gIAo+ICAJaWYgKCFhY29tcCkKPiAgCQlyZXR1cm4gMDsKPiAg Cj4gLQlXQVJOX09OKGJ1cy0+aTkxNV9wb3dlcl9yZWZjb3VudCk7Cj4gLQlpZiAoYnVzLT5pOTE1 X3Bvd2VyX3JlZmNvdW50ID4gMCAmJiBhY29tcC0+b3BzKQo+ICsJV0FSTl9PTihidXMtPmRybV9w b3dlcl9yZWZjb3VudCk7Cj4gKwlpZiAoYnVzLT5kcm1fcG93ZXJfcmVmY291bnQgPiAwICYmIGFj b21wLT5vcHMpCj4gIAkJYWNvbXAtPm9wcy0+cHV0X3Bvd2VyKGFjb21wLT5kZXYpOwo+ICAKPiAg CWNvbXBvbmVudF9tYXN0ZXJfZGVsKGRldiwgJmhkYWNfY29tcG9uZW50X21hc3Rlcl9vcHMpOwo+ IGRpZmYgLS1naXQgYS9zb3VuZC9wY2kvaGRhL3BhdGNoX2hkbWkuYyBiL3NvdW5kL3BjaS9oZGEv cGF0Y2hfaGRtaS5jCj4gaW5kZXggOGE0OTQxNWFlYmFjLi5jMDg0NzAxNzExNGMgMTAwNjQ0Cj4g LS0tIGEvc291bmQvcGNpL2hkYS9wYXRjaF9oZG1pLmMKPiArKysgYi9zb3VuZC9wY2kvaGRhL3Bh dGNoX2hkbWkuYwo+IEBAIC0xNzcsNyArMTc3LDcgQEAgc3RydWN0IGhkbWlfc3BlYyB7Cj4gIAo+ ICAJLyogaTkxNS9wb3dlcndlbGwgKEhhc3dlbGwrL1ZhbGxleXZpZXcrKSBzcGVjaWZpYyAqLwo+ ICAJYm9vbCB1c2VfYWNvbXBfbm90aWZpZXI7IC8qIHVzZSBpOTE1IGVsZF9ub3RpZnkgY2FsbGJh Y2sgZm9yIGhvdHBsdWcgKi8KPiAtCXN0cnVjdCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9hdWRpb19v cHMgaTkxNV9hdWRpb19vcHM7Cj4gKwlzdHJ1Y3QgZHJtX2F1ZGlvX2NvbXBvbmVudF9hdWRpb19v cHMgZHJtX2F1ZGlvX29wczsKPiAgCj4gIAlzdHJ1Y3QgaGRhY19jaG1hcCBjaG1hcDsKPiAgCWhk YV9uaWRfdCB2ZW5kb3JfbmlkOwo+IEBAIC0yNTExLDE0ICsyNTExLDE0IEBAIHN0YXRpYyB2b2lk IHJlZ2lzdGVyX2k5MTVfbm90aWZpZXIoc3RydWN0IGhkYV9jb2RlYyAqY29kZWMpCj4gIAlzdHJ1 Y3QgaGRtaV9zcGVjICpzcGVjID0gY29kZWMtPnNwZWM7Cj4gIAo+ICAJc3BlYy0+dXNlX2Fjb21w X25vdGlmaWVyID0gdHJ1ZTsKPiAtCXNwZWMtPmk5MTVfYXVkaW9fb3BzLmF1ZGlvX3B0ciA9IGNv ZGVjOwo+ICsJc3BlYy0+ZHJtX2F1ZGlvX29wcy5hdWRpb19wdHIgPSBjb2RlYzsKPiAgCS8qIGlu dGVsX2F1ZGlvX2NvZGVjX2VuYWJsZSgpIG9yIGludGVsX2F1ZGlvX2NvZGVjX2Rpc2FibGUoKQo+ ICAJICogd2lsbCBjYWxsIHBpbl9lbGRfbm90aWZ5IHdpdGggdXNpbmcgYXVkaW9fcHRyIHBvaW50 ZXIKPiAgCSAqIFdlIG5lZWQgbWFrZSBzdXJlIGF1ZGlvX3B0ciBpcyByZWFsbHkgc2V0dXAKPiAg CSAqLwo+ICAJd21iKCk7Cj4gLQlzcGVjLT5pOTE1X2F1ZGlvX29wcy5waW5fZWxkX25vdGlmeSA9 IGludGVsX3Bpbl9lbGRfbm90aWZ5Owo+IC0Jc25kX2hkYWNfaTkxNV9yZWdpc3Rlcl9ub3RpZmll cigmc3BlYy0+aTkxNV9hdWRpb19vcHMpOwo+ICsJc3BlYy0+ZHJtX2F1ZGlvX29wcy5waW5fZWxk X25vdGlmeSA9IGludGVsX3Bpbl9lbGRfbm90aWZ5Owo+ICsJc25kX2hkYWNfaTkxNV9yZWdpc3Rl cl9ub3RpZmllcigmc3BlYy0+ZHJtX2F1ZGlvX29wcyk7Cj4gIH0KPiAgCj4gIC8qIHNldHVwX3N0 cmVhbSBvcHMgb3ZlcnJpZGUgZm9yIEhTVysgKi8KPiBkaWZmIC0tZ2l0IGEvc291bmQvc29jL2Nv ZGVjcy9oZGFjX2hkbWkuYyBiL3NvdW5kL3NvYy9jb2RlY3MvaGRhY19oZG1pLmMKPiBpbmRleCAz ZTNhMmE5ZWYzMTAuLjQ2MDA3NTQ3NWYyMCAxMDA2NDQKPiAtLS0gYS9zb3VuZC9zb2MvY29kZWNz L2hkYWNfaGRtaS5jCj4gKysrIGIvc291bmQvc29jL2NvZGVjcy9oZGFjX2hkbWkuYwo+IEBAIC0x NTgzLDcgKzE1ODMsNyBAQCBzdGF0aWMgdm9pZCBoZGFjX2hkbWlfZWxkX25vdGlmeV9jYih2b2lk ICphcHRyLCBpbnQgcG9ydCwgaW50IHBpcGUpCj4gIAo+ICB9Cj4gIAo+IC1zdGF0aWMgc3RydWN0 IGk5MTVfYXVkaW9fY29tcG9uZW50X2F1ZGlvX29wcyBhb3BzID0gewo+ICtzdGF0aWMgc3RydWN0 IGRybV9hdWRpb19jb21wb25lbnRfYXVkaW9fb3BzIGFvcHMgPSB7Cj4gIAkucGluX2VsZF9ub3Rp ZnkJPSBoZGFjX2hkbWlfZWxkX25vdGlmeV9jYiwKPiAgfTsKPiAgCj4gLS0gCj4gMi4xOC4wCj4g Cj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBJbnRl bC1nZnggbWFpbGluZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBt YWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=