From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rodrigo Vivi Subject: Re: [PATCH v2 1/3] drm/i915: Split audio component to a generic type Date: Tue, 17 Jul 2018 13:06:30 -0700 Message-ID: <20180717200630.GD2233@intel.com> References: <20180717092652.25630-1-tiwai@suse.de> <20180717092652.25630-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: <20180717092652.25630-2-tiwai@suse.de> 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: Jim Qu , alsa-devel@alsa-project.org, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: alsa-devel@alsa-project.org T24gVHVlLCBKdWwgMTcsIDIwMTggYXQgMTE6MjY6NTBBTSArMDIwMCwgVGFrYXNoaSBJd2FpIHdy b3RlOgo+IEZvciBhbGxvd2luZyBvdGhlciBkcml2ZXJzIHRvIHVzZSB0aGUgRFJNIGF1ZGlvIGNv bXBvbmVudCwgcmVuYW1lIHRoZQo+IGk5MTVfYXVkaW9fY29tcG9uZW50Xyogd2l0aCBkcm1fYXVk aW9fY29tcG9uZW50XyosIGFuZCBzcGxpdCB0aGUKPiBnZW5lcmljIHBhcnQgaW50byBkcm1fYXVk aW9fY29tcG9uZW50LmguICBUaGUgaTkxNSBzcGVjaWZpYyBzdHVmZgo+IHJlbWFpbnMgaW4gc3Ry dWN0IGk5MTVfYXVkaW9fY29tcG9uZW50LCB3aGljaCBjb250YWlucwo+IGRybV9hdWRpb19jb21w b25lbnQgYXMgdGhlIGJhc2UuCj4gCj4gVGhlIGxpY2Vuc2Ugb2YgZHJtX2F1ZGlvX2NvbXBvbmVu dC5oIGlzIGtlcHQgdG8gTUlUIGFzIHNhbWUgYXMgdGhlIHRoZQo+IG9yaWdpbmFsIGk5MTVfY29t cG9uZW50LmguCj4gCj4gVGhpcyBpcyBhIHByZWxpbWluYXJ5IGNoYW5nZSBmb3IgZnVydGhlciBk ZXZlbG9wbWVudCwgYW5kIG5vCj4gZnVuY3Rpb25hbCBjaGFuZ2VzIGJ5IHRoaXMgcGF0Y2ggaXRz ZWxmLCBtZXJlbHkgY29kZS1zcGxpdCBhbmQKPiByZW5hbWVzLgo+IAo+IHYxLT52MjogVXNlIFNQ RFggZm9yIGRybV9hdWRpb19jb21wb25lbnQuaCwgZml4IHJlbWFpbmluZyBpOTE1Cj4gICAgICAg ICBhcmd1bWVudCBpbiBkcm1fYXVkaW9fY29tcG9uZW50LmgKPiAKPiBTaWduZWQtb2ZmLWJ5OiBU YWthc2hpIEl3YWkgPHRpd2FpQHN1c2UuZGU+CgpSZXZpZXdlZC1ieTogUm9kcmlnbyBWaXZpIDxy b2RyaWdvLnZpdmlAaW50ZWwuY29tPgoKPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfYXVkaW8uYyB8IDIyICsrKy0tLS0KPiAgaW5jbHVkZS9kcm0vZHJtX2F1ZGlvX2NvbXBvbmVu dC5oICB8IDk1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ICBpbmNsdWRlL2RybS9p OTE1X2NvbXBvbmVudC5oICAgICAgIHwgODUgKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAg aW5jbHVkZS9zb3VuZC9oZGFfaTkxNS5oICAgICAgICAgICB8ICA2ICstCj4gIGluY2x1ZGUvc291 bmQvaGRhdWRpby5oICAgICAgICAgICAgfCAgNiArLQo+ICBzb3VuZC9oZGEvaGRhY19pOTE1LmMg ICAgICAgICAgICAgIHwgNDAgKysrKysrKy0tLS0tLQo+ICBzb3VuZC9wY2kvaGRhL3BhdGNoX2hk bWkuYyAgICAgICAgIHwgIDggKy0tCj4gIHNvdW5kL3NvYy9jb2RlY3MvaGRhY19oZG1pLmMgICAg ICAgfCAgMiArLQo+ICA4IGZpbGVzIGNoYW5nZWQsIDE0NCBpbnNlcnRpb25zKCspLCAxMjAgZGVs ZXRpb25zKC0pCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL2RybS9kcm1fYXVkaW9fY29t cG9uZW50LmgKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXVk aW8uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F1ZGlvLmMKPiBpbmRleCAzZWE1NjZm OTk0NTAuLjdkZDU2MDVkOTRhZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9hdWRpby5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXVkaW8uYwo+ IEBAIC02MzksMTEgKzYzOSwxMiBAQCB2b2lkIGludGVsX2F1ZGlvX2NvZGVjX2VuYWJsZShzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCWRldl9wcml2LT5hdl9lbmNfbWFwW3BpcGVd ID0gZW5jb2RlcjsKPiAgCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmF2X211dGV4KTsKPiAgCj4g LQlpZiAoYWNvbXAgJiYgYWNvbXAtPmF1ZGlvX29wcyAmJiBhY29tcC0+YXVkaW9fb3BzLT5waW5f ZWxkX25vdGlmeSkgewo+ICsJaWYgKGFjb21wICYmIGFjb21wLT5iYXNlLmF1ZGlvX29wcyAmJgo+ ICsJICAgIGFjb21wLT5iYXNlLmF1ZGlvX29wcy0+cGluX2VsZF9ub3RpZnkpIHsKPiAgCQkvKiBh dWRpbyBkcml2ZXJzIGV4cGVjdCBwaXBlID0gLTEgdG8gaW5kaWNhdGUgTm9uLU1TVCBjYXNlcyAq Lwo+ICAJCWlmICghaW50ZWxfY3J0Y19oYXNfdHlwZShjcnRjX3N0YXRlLCBJTlRFTF9PVVRQVVRf RFBfTVNUKSkKPiAgCQkJcGlwZSA9IC0xOwo+IC0JCWFjb21wLT5hdWRpb19vcHMtPnBpbl9lbGRf bm90aWZ5KGFjb21wLT5hdWRpb19vcHMtPmF1ZGlvX3B0ciwKPiArCQlhY29tcC0+YmFzZS5hdWRp b19vcHMtPnBpbl9lbGRfbm90aWZ5KGFjb21wLT5iYXNlLmF1ZGlvX29wcy0+YXVkaW9fcHRyLAo+ ICAJCQkJCQkgKGludCkgcG9ydCwgKGludCkgcGlwZSk7Cj4gIAl9Cj4gIAo+IEBAIC02ODEsMTEg KzY4MiwxMiBAQCB2b2lkIGludGVsX2F1ZGlvX2NvZGVjX2Rpc2FibGUoc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXIsCj4gIAlkZXZfcHJpdi0+YXZfZW5jX21hcFtwaXBlXSA9IE5VTEw7Cj4g IAltdXRleF91bmxvY2soJmRldl9wcml2LT5hdl9tdXRleCk7Cj4gIAo+IC0JaWYgKGFjb21wICYm IGFjb21wLT5hdWRpb19vcHMgJiYgYWNvbXAtPmF1ZGlvX29wcy0+cGluX2VsZF9ub3RpZnkpIHsK PiArCWlmIChhY29tcCAmJiBhY29tcC0+YmFzZS5hdWRpb19vcHMgJiYKPiArCSAgICBhY29tcC0+ YmFzZS5hdWRpb19vcHMtPnBpbl9lbGRfbm90aWZ5KSB7Cj4gIAkJLyogYXVkaW8gZHJpdmVycyBl eHBlY3QgcGlwZSA9IC0xIHRvIGluZGljYXRlIE5vbi1NU1QgY2FzZXMgKi8KPiAgCQlpZiAoIWlu dGVsX2NydGNfaGFzX3R5cGUob2xkX2NydGNfc3RhdGUsIElOVEVMX09VVFBVVF9EUF9NU1QpKQo+ ICAJCQlwaXBlID0gLTE7Cj4gLQkJYWNvbXAtPmF1ZGlvX29wcy0+cGluX2VsZF9ub3RpZnkoYWNv bXAtPmF1ZGlvX29wcy0+YXVkaW9fcHRyLAo+ICsJCWFjb21wLT5iYXNlLmF1ZGlvX29wcy0+cGlu X2VsZF9ub3RpZnkoYWNvbXAtPmJhc2UuYXVkaW9fb3BzLT5hdWRpb19wdHIsCj4gIAkJCQkJCSAo aW50KSBwb3J0LCAoaW50KSBwaXBlKTsKPiAgCX0KPiAgCj4gQEAgLTg4MCw3ICs4ODIsNyBAQCBz dGF0aWMgaW50IGk5MTVfYXVkaW9fY29tcG9uZW50X2dldF9lbGQoc3RydWN0IGRldmljZSAqa2Rl diwgaW50IHBvcnQsCj4gIAlyZXR1cm4gcmV0Owo+ICB9Cj4gIAo+IC1zdGF0aWMgY29uc3Qgc3Ry dWN0IGk5MTVfYXVkaW9fY29tcG9uZW50X29wcyBpOTE1X2F1ZGlvX2NvbXBvbmVudF9vcHMgPSB7 Cj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2F1ZGlvX2NvbXBvbmVudF9vcHMgaTkxNV9hdWRp b19jb21wb25lbnRfb3BzID0gewo+ICAJLm93bmVyCQk9IFRISVNfTU9EVUxFLAo+ICAJLmdldF9w b3dlcgk9IGk5MTVfYXVkaW9fY29tcG9uZW50X2dldF9wb3dlciwKPiAgCS5wdXRfcG93ZXIJPSBp OTE1X2F1ZGlvX2NvbXBvbmVudF9wdXRfcG93ZXIsCj4gQEAgLTg5NywxMiArODk5LDEyIEBAIHN0 YXRpYyBpbnQgaTkxNV9hdWRpb19jb21wb25lbnRfYmluZChzdHJ1Y3QgZGV2aWNlICppOTE1X2tk ZXYsCj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBrZGV2X3RvX2k5MTUo aTkxNV9rZGV2KTsKPiAgCWludCBpOwo+ICAKPiAtCWlmIChXQVJOX09OKGFjb21wLT5vcHMgfHwg YWNvbXAtPmRldikpCj4gKwlpZiAoV0FSTl9PTihhY29tcC0+YmFzZS5vcHMgfHwgYWNvbXAtPmJh c2UuZGV2KSkKPiAgCQlyZXR1cm4gLUVFWElTVDsKPiAgCj4gIAlkcm1fbW9kZXNldF9sb2NrX2Fs bCgmZGV2X3ByaXYtPmRybSk7Cj4gLQlhY29tcC0+b3BzID0gJmk5MTVfYXVkaW9fY29tcG9uZW50 X29wczsKPiAtCWFjb21wLT5kZXYgPSBpOTE1X2tkZXY7Cj4gKwlhY29tcC0+YmFzZS5vcHMgPSAm aTkxNV9hdWRpb19jb21wb25lbnRfb3BzOwo+ICsJYWNvbXAtPmJhc2UuZGV2ID0gaTkxNV9rZGV2 Owo+ICAJQlVJTERfQlVHX09OKE1BWF9QT1JUUyAhPSBJOTE1X01BWF9QT1JUUyk7Cj4gIAlmb3Ig KGkgPSAwOyBpIDwgQVJSQVlfU0laRShhY29tcC0+YXVkX3NhbXBsZV9yYXRlKTsgaSsrKQo+ICAJ CWFjb21wLT5hdWRfc2FtcGxlX3JhdGVbaV0gPSAwOwo+IEBAIC05MTksOCArOTIxLDggQEAgc3Rh dGljIHZvaWQgaTkxNV9hdWRpb19jb21wb25lbnRfdW5iaW5kKHN0cnVjdCBkZXZpY2UgKmk5MTVf a2RldiwKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGtkZXZfdG9faTkx NShpOTE1X2tkZXYpOwo+ICAKPiAgCWRybV9tb2Rlc2V0X2xvY2tfYWxsKCZkZXZfcHJpdi0+ZHJt KTsKPiAtCWFjb21wLT5vcHMgPSBOVUxMOwo+IC0JYWNvbXAtPmRldiA9IE5VTEw7Cj4gKwlhY29t cC0+YmFzZS5vcHMgPSBOVUxMOwo+ICsJYWNvbXAtPmJhc2UuZGV2ID0gTlVMTDsKPiAgCWRldl9w cml2LT5hdWRpb19jb21wb25lbnQgPSBOVUxMOwo+ICAJZHJtX21vZGVzZXRfdW5sb2NrX2FsbCgm ZGV2X3ByaXYtPmRybSk7Cj4gIH0KPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2F1ZGlv X2NvbXBvbmVudC5oIGIvaW5jbHVkZS9kcm0vZHJtX2F1ZGlvX2NvbXBvbmVudC5oCj4gbmV3IGZp bGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwMDAwMDAuLmU4NTY4OWYyMTJjMgo+IC0tLSAv ZGV2L251bGwKPiArKysgYi9pbmNsdWRlL2RybS9kcm1fYXVkaW9fY29tcG9uZW50LmgKPiBAQCAt MCwwICsxLDk1IEBACj4gKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQKPiArLy8gQ29w eXJpZ2h0IMKpIDIwMTQgSW50ZWwgQ29ycG9yYXRpb24KPiArCj4gKyNpZm5kZWYgX0RSTV9BVURJ T19DT01QT05FTlRfSF8KPiArI2RlZmluZSBfRFJNX0FVRElPX0NPTVBPTkVOVF9IXwo+ICsKPiAr LyoqCj4gKyAqIHN0cnVjdCBkcm1fYXVkaW9fY29tcG9uZW50X29wcyAtIE9wcyBpbXBsZW1lbnRl ZCBieSBEUk0gZHJpdmVyLCBjYWxsZWQgYnkgaGRhIGRyaXZlcgo+ICsgKi8KPiArc3RydWN0IGRy bV9hdWRpb19jb21wb25lbnRfb3BzIHsKPiArCS8qKgo+ICsJICogQG93bmVyOiBkcm0gbW9kdWxl IHRvIHBpbiBkb3duCj4gKwkgKi8KPiArCXN0cnVjdCBtb2R1bGUgKm93bmVyOwo+ICsJLyoqCj4g KwkgKiBAZ2V0X3Bvd2VyOiBnZXQgdGhlIFBPV0VSX0RPTUFJTl9BVURJTyBwb3dlciB3ZWxsCj4g KwkgKgo+ICsJICogUmVxdWVzdCB0aGUgcG93ZXIgd2VsbCB0byBiZSB0dXJuZWQgb24uCj4gKwkg Ki8KPiArCXZvaWQgKCpnZXRfcG93ZXIpKHN0cnVjdCBkZXZpY2UgKik7Cj4gKwkvKioKPiArCSAq IEBwdXRfcG93ZXI6IHB1dCB0aGUgUE9XRVJfRE9NQUlOX0FVRElPIHBvd2VyIHdlbGwKPiArCSAq Cj4gKwkgKiBBbGxvdyB0aGUgcG93ZXIgd2VsbCB0byBiZSB0dXJuZWQgb2ZmLgo+ICsJICovCj4g Kwl2b2lkICgqcHV0X3Bvd2VyKShzdHJ1Y3QgZGV2aWNlICopOwo+ICsJLyoqCj4gKwkgKiBAY29k ZWNfd2FrZV9vdmVycmlkZTogRW5hYmxlL2Rpc2FibGUgY29kZWMgd2FrZSBzaWduYWwKPiArCSAq Lwo+ICsJdm9pZCAoKmNvZGVjX3dha2Vfb3ZlcnJpZGUpKHN0cnVjdCBkZXZpY2UgKiwgYm9vbCBl bmFibGUpOwo+ICsJLyoqCj4gKwkgKiBAZ2V0X2NkY2xrX2ZyZXE6IEdldCB0aGUgQ29yZSBEaXNw bGF5IENsb2NrIGluIGtIego+ICsJICovCj4gKwlpbnQgKCpnZXRfY2RjbGtfZnJlcSkoc3RydWN0 IGRldmljZSAqKTsKPiArCS8qKgo+ICsJICogQHN5bmNfYXVkaW9fcmF0ZTogc2V0IG4vY3RzIGJh c2VkIG9uIHRoZSBzYW1wbGUgcmF0ZQo+ICsJICoKPiArCSAqIENhbGxlZCBmcm9tIGF1ZGlvIGRy aXZlci4gQWZ0ZXIgYXVkaW8gZHJpdmVyIHNldHMgdGhlCj4gKwkgKiBzYW1wbGUgcmF0ZSwgaXQg d2lsbCBjYWxsIHRoaXMgZnVuY3Rpb24gdG8gc2V0IG4vY3RzCj4gKwkgKi8KPiArCWludCAoKnN5 bmNfYXVkaW9fcmF0ZSkoc3RydWN0IGRldmljZSAqLCBpbnQgcG9ydCwgaW50IHBpcGUsIGludCBy YXRlKTsKPiArCS8qKgo+ICsJICogQGdldF9lbGQ6IGZpbGwgdGhlIGF1ZGlvIHN0YXRlIGFuZCBF TEQgYnl0ZXMgZm9yIHRoZSBnaXZlbiBwb3J0Cj4gKwkgKgo+ICsJICogQ2FsbGVkIGZyb20gYXVk aW8gZHJpdmVyIHRvIGdldCB0aGUgSERNSS9EUCBhdWRpbyBzdGF0ZSBvZiB0aGUgZ2l2ZW4KPiAr CSAqIGRpZ2l0YWwgcG9ydCwgYW5kIGFsc28gZmV0Y2ggRUxEIGJ5dGVzIHRvIHRoZSBnaXZlbiBw b2ludGVyLgo+ICsJICoKPiArCSAqIEl0IHJldHVybnMgdGhlIGJ5dGUgc2l6ZSBvZiB0aGUgb3Jp Z2luYWwgRUxEIChub3QgdGhlIGFjdHVhbGx5Cj4gKwkgKiBjb3BpZWQgc2l6ZSksIHplcm8gZm9y IGFuIGludmFsaWQgRUxELCBvciBhIG5lZ2F0aXZlIGVycm9yIGNvZGUuCj4gKwkgKgo+ICsJICog Tm90ZSB0aGF0IHRoZSByZXR1cm5lZCBzaXplIG1heSBiZSBvdmVyIEBtYXhfYnl0ZXMuICBUaGVu IGl0Cj4gKwkgKiBpbXBsaWVzIHRoYXQgb25seSBhIHBhcnQgb2YgRUxEIGhhcyBiZWVuIGNvcGll ZCB0byB0aGUgYnVmZmVyLgo+ICsJICovCj4gKwlpbnQgKCpnZXRfZWxkKShzdHJ1Y3QgZGV2aWNl ICosIGludCBwb3J0LCBpbnQgcGlwZSwgYm9vbCAqZW5hYmxlZCwKPiArCQkgICAgICAgdW5zaWdu ZWQgY2hhciAqYnVmLCBpbnQgbWF4X2J5dGVzKTsKPiArfTsKPiArCj4gKy8qKgo+ICsgKiBzdHJ1 Y3QgZHJtX2F1ZGlvX2NvbXBvbmVudF9hdWRpb19vcHMgLSBPcHMgaW1wbGVtZW50ZWQgYnkgaGRh IGRyaXZlciwgY2FsbGVkIGJ5IERSTSBkcml2ZXIKPiArICovCj4gK3N0cnVjdCBkcm1fYXVkaW9f Y29tcG9uZW50X2F1ZGlvX29wcyB7Cj4gKwkvKioKPiArCSAqIEBhdWRpb19wdHI6IFBvaW50ZXIg dG8gYmUgdXNlZCBpbiBjYWxsIHRvIHBpbl9lbGRfbm90aWZ5Cj4gKwkgKi8KPiArCXZvaWQgKmF1 ZGlvX3B0cjsKPiArCS8qKgo+ICsJICogQHBpbl9lbGRfbm90aWZ5OiBOb3RpZnkgdGhlIEhEQSBk cml2ZXIgdGhhdCBwaW4gc2Vuc2UgYW5kL29yIEVMRCBpbmZvcm1hdGlvbiBoYXMgY2hhbmdlZAo+ ICsJICoKPiArCSAqIENhbGxlZCB3aGVuIHRoZSBEUk0gZHJpdmVyIGhhcyBzZXQgdXAgYXVkaW8g cGlwZWxpbmUgb3IgaGFzIGp1c3QKPiArCSAqIGJlZ3VuIHRvIHRlYXIgaXQgZG93bi4gVGhpcyBh bGxvd3MgdGhlIEhEQSBkcml2ZXIgdG8gdXBkYXRlIGl0cwo+ICsJICogc3RhdHVzIGFjY29yZGlu Z2x5IChldmVuIHdoZW4gdGhlIEhEQSBjb250cm9sbGVyIGlzIGluIHBvd2VyIHNhdmUKPiArCSAq IG1vZGUpLgo+ICsJICovCj4gKwl2b2lkICgqcGluX2VsZF9ub3RpZnkpKHZvaWQgKmF1ZGlvX3B0 ciwgaW50IHBvcnQsIGludCBwaXBlKTsKPiArfTsKPiArCj4gKy8qKgo+ICsgKiBzdHJ1Y3QgZHJt X2F1ZGlvX2NvbXBvbmVudCAtIFVzZWQgZm9yIGRpcmVjdCBjb21tdW5pY2F0aW9uIGJldHdlZW4g RFJNIGFuZCBoZGEgZHJpdmVycwo+ICsgKi8KPiArc3RydWN0IGRybV9hdWRpb19jb21wb25lbnQg ewo+ICsJLyoqCj4gKwkgKiBAZGV2OiBEUk0gZGV2aWNlLCB1c2VkIGFzIHBhcmFtZXRlciBmb3Ig b3BzCj4gKwkgKi8KPiArCXN0cnVjdCBkZXZpY2UgKmRldjsKPiArCS8qKgo+ICsJICogQG9wczog T3BzIGltcGxlbWVudGVkIGJ5IERSTSBkcml2ZXIsIGNhbGxlZCBieSBoZGEgZHJpdmVyCj4gKwkg Ki8KPiArCWNvbnN0IHN0cnVjdCBkcm1fYXVkaW9fY29tcG9uZW50X29wcyAqb3BzOwo+ICsJLyoq Cj4gKwkgKiBAYXVkaW9fb3BzOiBPcHMgaW1wbGVtZW50ZWQgYnkgaGRhIGRyaXZlciwgY2FsbGVk IGJ5IERSTSBkcml2ZXIKPiArCSAqLwo+ICsJY29uc3Qgc3RydWN0IGRybV9hdWRpb19jb21wb25l bnRfYXVkaW9fb3BzICphdWRpb19vcHM7Cj4gK307Cj4gKwo+ICsjZW5kaWYgLyogX0RSTV9BVURJ T19DT01QT05FTlRfSF8gKi8KPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vaTkxNV9jb21wb25l bnQuaCBiL2luY2x1ZGUvZHJtL2k5MTVfY29tcG9uZW50LmgKPiBpbmRleCAzNDZiMWY1Y2IxODAu LmZjYTIyZDQ2M2UxYiAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL2RybS9pOTE1X2NvbXBvbmVudC5o Cj4gKysrIGIvaW5jbHVkZS9kcm0vaTkxNV9jb21wb25lbnQuaAo+IEBAIC0yNCwxMDEgKzI0LDI2 IEBACj4gICNpZm5kZWYgX0k5MTVfQ09NUE9ORU5UX0hfCj4gICNkZWZpbmUgX0k5MTVfQ09NUE9O RU5UX0hfCj4gIAo+ICsjaW5jbHVkZSAiZHJtX2F1ZGlvX2NvbXBvbmVudC5oIgo+ICsKPiAgLyog TUFYX1BPUlQgaXMgdGhlIG51bWJlciBvZiBwb3J0Cj4gICAqIEl0IG11c3QgYmUgc3luYyB3aXRo IEk5MTVfTUFYX1BPUlRTIGRlZmluZWQgaTkxNV9kcnYuaAo+ICAgKi8KPiAgI2RlZmluZSBNQVhf UE9SVFMgNgo+ICAKPiAtLyoqCj4gLSAqIHN0cnVjdCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9vcHMg LSBPcHMgaW1wbGVtZW50ZWQgYnkgaTkxNSBkcml2ZXIsIGNhbGxlZCBieSBoZGEgZHJpdmVyCj4g LSAqLwo+IC1zdHJ1Y3QgaTkxNV9hdWRpb19jb21wb25lbnRfb3BzIHsKPiAtCS8qKgo+IC0JICog QG93bmVyOiBpOTE1IG1vZHVsZQo+IC0JICovCj4gLQlzdHJ1Y3QgbW9kdWxlICpvd25lcjsKPiAt CS8qKgo+IC0JICogQGdldF9wb3dlcjogZ2V0IHRoZSBQT1dFUl9ET01BSU5fQVVESU8gcG93ZXIg d2VsbAo+IC0JICoKPiAtCSAqIFJlcXVlc3QgdGhlIHBvd2VyIHdlbGwgdG8gYmUgdHVybmVkIG9u Lgo+IC0JICovCj4gLQl2b2lkICgqZ2V0X3Bvd2VyKShzdHJ1Y3QgZGV2aWNlICopOwo+IC0JLyoq Cj4gLQkgKiBAcHV0X3Bvd2VyOiBwdXQgdGhlIFBPV0VSX0RPTUFJTl9BVURJTyBwb3dlciB3ZWxs Cj4gLQkgKgo+IC0JICogQWxsb3cgdGhlIHBvd2VyIHdlbGwgdG8gYmUgdHVybmVkIG9mZi4KPiAt CSAqLwo+IC0Jdm9pZCAoKnB1dF9wb3dlcikoc3RydWN0IGRldmljZSAqKTsKPiAtCS8qKgo+IC0J ICogQGNvZGVjX3dha2Vfb3ZlcnJpZGU6IEVuYWJsZS9kaXNhYmxlIGNvZGVjIHdha2Ugc2lnbmFs Cj4gLQkgKi8KPiAtCXZvaWQgKCpjb2RlY193YWtlX292ZXJyaWRlKShzdHJ1Y3QgZGV2aWNlICos IGJvb2wgZW5hYmxlKTsKPiAtCS8qKgo+IC0JICogQGdldF9jZGNsa19mcmVxOiBHZXQgdGhlIENv cmUgRGlzcGxheSBDbG9jayBpbiBrSHoKPiAtCSAqLwo+IC0JaW50ICgqZ2V0X2NkY2xrX2ZyZXEp KHN0cnVjdCBkZXZpY2UgKik7Cj4gLQkvKioKPiAtCSAqIEBzeW5jX2F1ZGlvX3JhdGU6IHNldCBu L2N0cyBiYXNlZCBvbiB0aGUgc2FtcGxlIHJhdGUKPiAtCSAqCj4gLQkgKiBDYWxsZWQgZnJvbSBh dWRpbyBkcml2ZXIuIEFmdGVyIGF1ZGlvIGRyaXZlciBzZXRzIHRoZQo+IC0JICogc2FtcGxlIHJh dGUsIGl0IHdpbGwgY2FsbCB0aGlzIGZ1bmN0aW9uIHRvIHNldCBuL2N0cwo+IC0JICovCj4gLQlp bnQgKCpzeW5jX2F1ZGlvX3JhdGUpKHN0cnVjdCBkZXZpY2UgKiwgaW50IHBvcnQsIGludCBwaXBl LCBpbnQgcmF0ZSk7Cj4gLQkvKioKPiAtCSAqIEBnZXRfZWxkOiBmaWxsIHRoZSBhdWRpbyBzdGF0 ZSBhbmQgRUxEIGJ5dGVzIGZvciB0aGUgZ2l2ZW4gcG9ydAo+IC0JICoKPiAtCSAqIENhbGxlZCBm cm9tIGF1ZGlvIGRyaXZlciB0byBnZXQgdGhlIEhETUkvRFAgYXVkaW8gc3RhdGUgb2YgdGhlIGdp dmVuCj4gLQkgKiBkaWdpdGFsIHBvcnQsIGFuZCBhbHNvIGZldGNoIEVMRCBieXRlcyB0byB0aGUg Z2l2ZW4gcG9pbnRlci4KPiAtCSAqCj4gLQkgKiBJdCByZXR1cm5zIHRoZSBieXRlIHNpemUgb2Yg dGhlIG9yaWdpbmFsIEVMRCAobm90IHRoZSBhY3R1YWxseQo+IC0JICogY29waWVkIHNpemUpLCB6 ZXJvIGZvciBhbiBpbnZhbGlkIEVMRCwgb3IgYSBuZWdhdGl2ZSBlcnJvciBjb2RlLgo+IC0JICoK PiAtCSAqIE5vdGUgdGhhdCB0aGUgcmV0dXJuZWQgc2l6ZSBtYXkgYmUgb3ZlciBAbWF4X2J5dGVz LiAgVGhlbiBpdAo+IC0JICogaW1wbGllcyB0aGF0IG9ubHkgYSBwYXJ0IG9mIEVMRCBoYXMgYmVl biBjb3BpZWQgdG8gdGhlIGJ1ZmZlci4KPiAtCSAqLwo+IC0JaW50ICgqZ2V0X2VsZCkoc3RydWN0 IGRldmljZSAqLCBpbnQgcG9ydCwgaW50IHBpcGUsIGJvb2wgKmVuYWJsZWQsCj4gLQkJICAgICAg IHVuc2lnbmVkIGNoYXIgKmJ1ZiwgaW50IG1heF9ieXRlcyk7Cj4gLX07Cj4gLQo+IC0vKioKPiAt ICogc3RydWN0IGk5MTVfYXVkaW9fY29tcG9uZW50X2F1ZGlvX29wcyAtIE9wcyBpbXBsZW1lbnRl ZCBieSBoZGEgZHJpdmVyLCBjYWxsZWQgYnkgaTkxNSBkcml2ZXIKPiAtICovCj4gLXN0cnVjdCBp OTE1X2F1ZGlvX2NvbXBvbmVudF9hdWRpb19vcHMgewo+IC0JLyoqCj4gLQkgKiBAYXVkaW9fcHRy OiBQb2ludGVyIHRvIGJlIHVzZWQgaW4gY2FsbCB0byBwaW5fZWxkX25vdGlmeQo+IC0JICovCj4g LQl2b2lkICphdWRpb19wdHI7Cj4gLQkvKioKPiAtCSAqIEBwaW5fZWxkX25vdGlmeTogTm90aWZ5 IHRoZSBIREEgZHJpdmVyIHRoYXQgcGluIHNlbnNlIGFuZC9vciBFTEQgaW5mb3JtYXRpb24gaGFz IGNoYW5nZWQKPiAtCSAqCj4gLQkgKiBDYWxsZWQgd2hlbiB0aGUgaTkxNSBkcml2ZXIgaGFzIHNl dCB1cCBhdWRpbyBwaXBlbGluZSBvciBoYXMganVzdAo+IC0JICogYmVndW4gdG8gdGVhciBpdCBk b3duLiBUaGlzIGFsbG93cyB0aGUgSERBIGRyaXZlciB0byB1cGRhdGUgaXRzCj4gLQkgKiBzdGF0 dXMgYWNjb3JkaW5nbHkgKGV2ZW4gd2hlbiB0aGUgSERBIGNvbnRyb2xsZXIgaXMgaW4gcG93ZXIg c2F2ZQo+IC0JICogbW9kZSkuCj4gLQkgKi8KPiAtCXZvaWQgKCpwaW5fZWxkX25vdGlmeSkodm9p ZCAqYXVkaW9fcHRyLCBpbnQgcG9ydCwgaW50IHBpcGUpOwo+IC19Owo+IC0KPiAgLyoqCj4gICAq IHN0cnVjdCBpOTE1X2F1ZGlvX2NvbXBvbmVudCAtIFVzZWQgZm9yIGRpcmVjdCBjb21tdW5pY2F0 aW9uIGJldHdlZW4gaTkxNSBhbmQgaGRhIGRyaXZlcnMKPiAgICovCj4gIHN0cnVjdCBpOTE1X2F1 ZGlvX2NvbXBvbmVudCB7Cj4gIAkvKioKPiAtCSAqIEBkZXY6IGk5MTUgZGV2aWNlLCB1c2VkIGFz IHBhcmFtZXRlciBmb3Igb3BzCj4gKwkgKiBAYmFzZTogdGhlIGRybV9hdWRpb19jb21wb25lbnQg YmFzZSBjbGFzcwo+ICAJICovCj4gLQlzdHJ1Y3QgZGV2aWNlICpkZXY7Cj4gKwlzdHJ1Y3QgZHJt X2F1ZGlvX2NvbXBvbmVudAliYXNlOwo+ICsKPiAgCS8qKgo+ICAJICogQGF1ZF9zYW1wbGVfcmF0 ZTogdGhlIGFycmF5IG9mIGF1ZGlvIHNhbXBsZSByYXRlIHBlciBwb3J0Cj4gIAkgKi8KPiAgCWlu dCBhdWRfc2FtcGxlX3JhdGVbTUFYX1BPUlRTXTsKPiAtCS8qKgo+IC0JICogQG9wczogT3BzIGlt cGxlbWVudGVkIGJ5IGk5MTUgZHJpdmVyLCBjYWxsZWQgYnkgaGRhIGRyaXZlcgo+IC0JICovCj4g LQljb25zdCBzdHJ1Y3QgaTkxNV9hdWRpb19jb21wb25lbnRfb3BzICpvcHM7Cj4gLQkvKioKPiAt CSAqIEBhdWRpb19vcHM6IE9wcyBpbXBsZW1lbnRlZCBieSBoZGEgZHJpdmVyLCBjYWxsZWQgYnkg aTkxNSBkcml2ZXIKPiAtCSAqLwo+IC0JY29uc3Qgc3RydWN0IGk5MTVfYXVkaW9fY29tcG9uZW50 X2F1ZGlvX29wcyAqYXVkaW9fb3BzOwo+ICB9Owo+ICAKPiAgI2VuZGlmIC8qIF9JOTE1X0NPTVBP TkVOVF9IXyAqLwo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL3NvdW5kL2hkYV9pOTE1LmggYi9pbmNs dWRlL3NvdW5kL2hkYV9pOTE1LmgKPiBpbmRleCBhOTRmNWI2ZjkyYWMuLmY2OWVhODRlN2I2NSAx MDA2NDQKPiAtLS0gYS9pbmNsdWRlL3NvdW5kL2hkYV9pOTE1LmgKPiArKysgYi9pbmNsdWRlL3Nv dW5kL2hkYV9pOTE1LmgKPiBAQCAtNSw3ICs1LDcgQEAKPiAgI2lmbmRlZiBfX1NPVU5EX0hEQV9J OTE1X0gKPiAgI2RlZmluZSBfX1NPVU5EX0hEQV9JOTE1X0gKPiAgCj4gLSNpbmNsdWRlIDxkcm0v aTkxNV9jb21wb25lbnQuaD4KPiArI2luY2x1ZGUgPGRybS9kcm1fYXVkaW9fY29tcG9uZW50Lmg+ Cj4gIAo+ICAjaWZkZWYgQ09ORklHX1NORF9IREFfSTkxNQo+ICBpbnQgc25kX2hkYWNfc2V0X2Nv ZGVjX3dha2V1cChzdHJ1Y3QgaGRhY19idXMgKmJ1cywgYm9vbCBlbmFibGUpOwo+IEBAIC0xNyw3 ICsxNyw3IEBAIGludCBzbmRfaGRhY19hY29tcF9nZXRfZWxkKHN0cnVjdCBoZGFjX2RldmljZSAq Y29kZWMsIGhkYV9uaWRfdCBuaWQsIGludCBkZXZfaWQsCj4gIAkJCSAgIGJvb2wgKmF1ZGlvX2Vu YWJsZWQsIGNoYXIgKmJ1ZmZlciwgaW50IG1heF9ieXRlcyk7Cj4gIGludCBzbmRfaGRhY19pOTE1 X2luaXQoc3RydWN0IGhkYWNfYnVzICpidXMpOwo+ICBpbnQgc25kX2hkYWNfaTkxNV9leGl0KHN0 cnVjdCBoZGFjX2J1cyAqYnVzKTsKPiAtaW50IHNuZF9oZGFjX2k5MTVfcmVnaXN0ZXJfbm90aWZp ZXIoY29uc3Qgc3RydWN0IGk5MTVfYXVkaW9fY29tcG9uZW50X2F1ZGlvX29wcyAqKTsKPiAraW50 IHNuZF9oZGFjX2k5MTVfcmVnaXN0ZXJfbm90aWZpZXIoY29uc3Qgc3RydWN0IGRybV9hdWRpb19j b21wb25lbnRfYXVkaW9fb3BzICopOwo+ICAjZWxzZQo+ICBzdGF0aWMgaW5saW5lIGludCBzbmRf aGRhY19zZXRfY29kZWNfd2FrZXVwKHN0cnVjdCBoZGFjX2J1cyAqYnVzLCBib29sIGVuYWJsZSkK PiAgewo+IEBAIC00OSw3ICs0OSw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IHNuZF9oZGFjX2k5MTVf ZXhpdChzdHJ1Y3QgaGRhY19idXMgKmJ1cykKPiAgewo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAtc3Rh dGljIGlubGluZSBpbnQgc25kX2hkYWNfaTkxNV9yZWdpc3Rlcl9ub3RpZmllcihjb25zdCBzdHJ1 Y3QgaTkxNV9hdWRpb19jb21wb25lbnRfYXVkaW9fb3BzICpvcHMpCj4gK3N0YXRpYyBpbmxpbmUg aW50IHNuZF9oZGFjX2k5MTVfcmVnaXN0ZXJfbm90aWZpZXIoY29uc3Qgc3RydWN0IGRybV9hdWRp b19jb21wb25lbnRfYXVkaW9fb3BzICpvcHMpCj4gIHsKPiAgCXJldHVybiAtRU5PREVWOwo+ICB9 Cj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvc291bmQvaGRhdWRpby5oIGIvaW5jbHVkZS9zb3VuZC9o ZGF1ZGlvLmgKPiBpbmRleCBmMWJhYWE4OGU3NjYuLmFiNWVlM2VmMjE5OCAxMDA2NDQKPiAtLS0g YS9pbmNsdWRlL3NvdW5kL2hkYXVkaW8uaAo+ICsrKyBiL2luY2x1ZGUvc291bmQvaGRhdWRpby5o Cj4gQEAgLTMzMyw5ICszMzMsOSBAQCBzdHJ1Y3QgaGRhY19idXMgewo+ICAJc3BpbmxvY2tfdCBy ZWdfbG9jazsKPiAgCXN0cnVjdCBtdXRleCBjbWRfbXV0ZXg7Cj4gIAo+IC0JLyogaTkxNSBjb21w b25lbnQgaW50ZXJmYWNlICovCj4gLQlzdHJ1Y3QgaTkxNV9hdWRpb19jb21wb25lbnQgKmF1ZGlv X2NvbXBvbmVudDsKPiAtCWludCBpOTE1X3Bvd2VyX3JlZmNvdW50Owo+ICsJLyogRFJNIGNvbXBv bmVudCBpbnRlcmZhY2UgKi8KPiArCXN0cnVjdCBkcm1fYXVkaW9fY29tcG9uZW50ICphdWRpb19j b21wb25lbnQ7Cj4gKwlpbnQgZHJtX3Bvd2VyX3JlZmNvdW50Owo+ICAKPiAgCS8qIHBhcmFtZXRl cnMgcmVxdWlyZWQgZm9yIGVuaGFuY2VkIGNhcGFiaWxpdGllcyAqLwo+ICAJaW50IG51bV9zdHJl YW1zOwo+IGRpZmYgLS1naXQgYS9zb3VuZC9oZGEvaGRhY19pOTE1LmMgYi9zb3VuZC9oZGEvaGRh Y19pOTE1LmMKPiBpbmRleCBjYmU4MThlZGEzMzYuLjFhODhjMWFhZjliYiAxMDA2NDQKPiAtLS0g YS9zb3VuZC9oZGEvaGRhY19pOTE1LmMKPiArKysgYi9zb3VuZC9oZGEvaGRhY19pOTE1LmMKPiBA QCAtMTYsMTMgKzE2LDEzIEBACj4gICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KPiAgI2luY2x1 ZGUgPGxpbnV4L3BjaS5oPgo+ICAjaW5jbHVkZSA8bGludXgvY29tcG9uZW50Lmg+Cj4gLSNpbmNs dWRlIDxkcm0vaTkxNV9jb21wb25lbnQuaD4KPiArI2luY2x1ZGUgPGRybS9kcm1fYXVkaW9fY29t cG9uZW50Lmg+Cj4gICNpbmNsdWRlIDxzb3VuZC9jb3JlLmg+Cj4gICNpbmNsdWRlIDxzb3VuZC9o ZGF1ZGlvLmg+Cj4gICNpbmNsdWRlIDxzb3VuZC9oZGFfaTkxNS5oPgo+ICAjaW5jbHVkZSA8c291 bmQvaGRhX3JlZ2lzdGVyLmg+Cj4gIAo+IC1zdGF0aWMgc3RydWN0IGk5MTVfYXVkaW9fY29tcG9u ZW50ICpoZGFjX2Fjb21wOwo+ICtzdGF0aWMgc3RydWN0IGRybV9hdWRpb19jb21wb25lbnQgKmhk YWNfYWNvbXA7Cj4gIAo+ICAvKioKPiAgICogc25kX2hkYWNfc2V0X2NvZGVjX3dha2V1cCAtIEVu YWJsZSAvIGRpc2FibGUgSERNSS9EUCBjb2RlYyB3YWtldXAKPiBAQCAtMzksNyArMzksNyBAQCBz dGF0aWMgc3RydWN0IGk5MTVfYXVkaW9fY29tcG9uZW50ICpoZGFjX2Fjb21wOwo+ICAgKi8KPiAg aW50IHNuZF9oZGFjX3NldF9jb2RlY193YWtldXAoc3RydWN0IGhkYWNfYnVzICpidXMsIGJvb2wg ZW5hYmxlKQo+ICB7Cj4gLQlzdHJ1Y3QgaTkxNV9hdWRpb19jb21wb25lbnQgKmFjb21wID0gYnVz LT5hdWRpb19jb21wb25lbnQ7Cj4gKwlzdHJ1Y3QgZHJtX2F1ZGlvX2NvbXBvbmVudCAqYWNvbXAg PSBidXMtPmF1ZGlvX2NvbXBvbmVudDsKPiAgCj4gIAlpZiAoIWFjb21wIHx8ICFhY29tcC0+b3Bz KQo+ICAJCXJldHVybiAtRU5PREVWOwo+IEBAIC03NCw3ICs3NCw3IEBAIEVYUE9SVF9TWU1CT0xf R1BMKHNuZF9oZGFjX3NldF9jb2RlY193YWtldXApOwo+ICAgKi8KPiAgaW50IHNuZF9oZGFjX2Rp c3BsYXlfcG93ZXIoc3RydWN0IGhkYWNfYnVzICpidXMsIGJvb2wgZW5hYmxlKQo+ICB7Cj4gLQlz dHJ1Y3QgaTkxNV9hdWRpb19jb21wb25lbnQgKmFjb21wID0gYnVzLT5hdWRpb19jb21wb25lbnQ7 Cj4gKwlzdHJ1Y3QgZHJtX2F1ZGlvX2NvbXBvbmVudCAqYWNvbXAgPSBidXMtPmF1ZGlvX2NvbXBv bmVudDsKPiAgCj4gIAlpZiAoIWFjb21wIHx8ICFhY29tcC0+b3BzKQo+ICAJCXJldHVybiAtRU5P REVWOwo+IEBAIC04MywxNCArODMsMTQgQEAgaW50IHNuZF9oZGFjX2Rpc3BsYXlfcG93ZXIoc3Ry dWN0IGhkYWNfYnVzICpidXMsIGJvb2wgZW5hYmxlKQo+ICAJCWVuYWJsZSA/ICJlbmFibGUiIDog ImRpc2FibGUiKTsKPiAgCj4gIAlpZiAoZW5hYmxlKSB7Cj4gLQkJaWYgKCFidXMtPmk5MTVfcG93 ZXJfcmVmY291bnQrKykgewo+ICsJCWlmICghYnVzLT5kcm1fcG93ZXJfcmVmY291bnQrKykgewo+ ICAJCQlhY29tcC0+b3BzLT5nZXRfcG93ZXIoYWNvbXAtPmRldik7Cj4gIAkJCXNuZF9oZGFjX3Nl dF9jb2RlY193YWtldXAoYnVzLCB0cnVlKTsKPiAgCQkJc25kX2hkYWNfc2V0X2NvZGVjX3dha2V1 cChidXMsIGZhbHNlKTsKPiAgCQl9Cj4gIAl9IGVsc2Ugewo+IC0JCVdBUk5fT04oIWJ1cy0+aTkx NV9wb3dlcl9yZWZjb3VudCk7Cj4gLQkJaWYgKCEtLWJ1cy0+aTkxNV9wb3dlcl9yZWZjb3VudCkK PiArCQlXQVJOX09OKCFidXMtPmRybV9wb3dlcl9yZWZjb3VudCk7Cj4gKwkJaWYgKCEtLWJ1cy0+ ZHJtX3Bvd2VyX3JlZmNvdW50KQo+ICAJCQlhY29tcC0+b3BzLT5wdXRfcG93ZXIoYWNvbXAtPmRl dik7Cj4gIAl9Cj4gIAo+IEBAIC0xMTksNyArMTE5LDcgQEAgRVhQT1JUX1NZTUJPTF9HUEwoc25k X2hkYWNfZGlzcGxheV9wb3dlcik7Cj4gICAqLwo+ICB2b2lkIHNuZF9oZGFjX2k5MTVfc2V0X2Jj bGsoc3RydWN0IGhkYWNfYnVzICpidXMpCj4gIHsKPiAtCXN0cnVjdCBpOTE1X2F1ZGlvX2NvbXBv bmVudCAqYWNvbXAgPSBidXMtPmF1ZGlvX2NvbXBvbmVudDsKPiArCXN0cnVjdCBkcm1fYXVkaW9f Y29tcG9uZW50ICphY29tcCA9IGJ1cy0+YXVkaW9fY29tcG9uZW50Owo+ICAJc3RydWN0IHBjaV9k ZXYgKnBjaSA9IHRvX3BjaV9kZXYoYnVzLT5kZXYpOwo+ICAJaW50IGNkY2xrX2ZyZXE7Cj4gIAl1 bnNpZ25lZCBpbnQgYmNsa19tLCBiY2xrX247Cj4gQEAgLTIwNiw3ICsyMDYsNyBAQCBpbnQgc25k X2hkYWNfc3luY19hdWRpb19yYXRlKHN0cnVjdCBoZGFjX2RldmljZSAqY29kZWMsIGhkYV9uaWRf dCBuaWQsCj4gIAkJCSAgICAgaW50IGRldl9pZCwgaW50IHJhdGUpCj4gIHsKPiAgCXN0cnVjdCBo ZGFjX2J1cyAqYnVzID0gY29kZWMtPmJ1czsKPiAtCXN0cnVjdCBpOTE1X2F1ZGlvX2NvbXBvbmVu dCAqYWNvbXAgPSBidXMtPmF1ZGlvX2NvbXBvbmVudDsKPiArCXN0cnVjdCBkcm1fYXVkaW9fY29t cG9uZW50ICphY29tcCA9IGJ1cy0+YXVkaW9fY29tcG9uZW50Owo+ICAJaW50IHBvcnQsIHBpcGU7 Cj4gIAo+ICAJaWYgKCFhY29tcCB8fCAhYWNvbXAtPm9wcyB8fCAhYWNvbXAtPm9wcy0+c3luY19h dWRpb19yYXRlKQo+IEBAIC0yNDQsNyArMjQ0LDcgQEAgaW50IHNuZF9oZGFjX2Fjb21wX2dldF9l bGQoc3RydWN0IGhkYWNfZGV2aWNlICpjb2RlYywgaGRhX25pZF90IG5pZCwgaW50IGRldl9pZCwK PiAgCQkJICAgYm9vbCAqYXVkaW9fZW5hYmxlZCwgY2hhciAqYnVmZmVyLCBpbnQgbWF4X2J5dGVz KQo+ICB7Cj4gIAlzdHJ1Y3QgaGRhY19idXMgKmJ1cyA9IGNvZGVjLT5idXM7Cj4gLQlzdHJ1Y3Qg aTkxNV9hdWRpb19jb21wb25lbnQgKmFjb21wID0gYnVzLT5hdWRpb19jb21wb25lbnQ7Cj4gKwlz dHJ1Y3QgZHJtX2F1ZGlvX2NvbXBvbmVudCAqYWNvbXAgPSBidXMtPmF1ZGlvX2NvbXBvbmVudDsK PiAgCWludCBwb3J0LCBwaXBlOwo+ICAKPiAgCWlmICghYWNvbXAgfHwgIWFjb21wLT5vcHMgfHwg IWFjb21wLT5vcHMtPmdldF9lbGQpCj4gQEAgLTI2Miw3ICsyNjIsNyBAQCBFWFBPUlRfU1lNQk9M X0dQTChzbmRfaGRhY19hY29tcF9nZXRfZWxkKTsKPiAgCj4gIHN0YXRpYyBpbnQgaGRhY19jb21w b25lbnRfbWFzdGVyX2JpbmQoc3RydWN0IGRldmljZSAqZGV2KQo+ICB7Cj4gLQlzdHJ1Y3QgaTkx NV9hdWRpb19jb21wb25lbnQgKmFjb21wID0gaGRhY19hY29tcDsKPiArCXN0cnVjdCBkcm1fYXVk aW9fY29tcG9uZW50ICphY29tcCA9IGhkYWNfYWNvbXA7Cj4gIAlpbnQgcmV0Owo+ICAKPiAgCXJl dCA9IGNvbXBvbmVudF9iaW5kX2FsbChkZXYsIGFjb21wKTsKPiBAQCAtMjk0LDcgKzI5NCw3IEBA IHN0YXRpYyBpbnQgaGRhY19jb21wb25lbnRfbWFzdGVyX2JpbmQoc3RydWN0IGRldmljZSAqZGV2 KQo+ICAKPiAgc3RhdGljIHZvaWQgaGRhY19jb21wb25lbnRfbWFzdGVyX3VuYmluZChzdHJ1Y3Qg ZGV2aWNlICpkZXYpCj4gIHsKPiAtCXN0cnVjdCBpOTE1X2F1ZGlvX2NvbXBvbmVudCAqYWNvbXAg PSBoZGFjX2Fjb21wOwo+ICsJc3RydWN0IGRybV9hdWRpb19jb21wb25lbnQgKmFjb21wID0gaGRh Y19hY29tcDsKPiAgCj4gIAltb2R1bGVfcHV0KGFjb21wLT5vcHMtPm93bmVyKTsKPiAgCWNvbXBv bmVudF91bmJpbmRfYWxsKGRldiwgYWNvbXApOwo+IEBAIC0zMjMsNyArMzIzLDcgQEAgc3RhdGlj IGludCBoZGFjX2NvbXBvbmVudF9tYXN0ZXJfbWF0Y2goc3RydWN0IGRldmljZSAqZGV2LCB2b2lk ICpkYXRhKQo+ICAgKgo+ICAgKiBSZXR1cm5zIHplcm8gZm9yIHN1Y2Nlc3Mgb3IgYSBuZWdhdGl2 ZSBlcnJvciBjb2RlLgo+ICAgKi8KPiAtaW50IHNuZF9oZGFjX2k5MTVfcmVnaXN0ZXJfbm90aWZp ZXIoY29uc3Qgc3RydWN0IGk5MTVfYXVkaW9fY29tcG9uZW50X2F1ZGlvX29wcyAqYW9wcykKPiAr aW50IHNuZF9oZGFjX2k5MTVfcmVnaXN0ZXJfbm90aWZpZXIoY29uc3Qgc3RydWN0IGRybV9hdWRp b19jb21wb25lbnRfYXVkaW9fb3BzICphb3BzKQo+ICB7Cj4gIAlpZiAoIWhkYWNfYWNvbXApCj4g IAkJcmV0dXJuIC1FTk9ERVY7Cj4gQEAgLTM2MSw3ICszNjEsOCBAQCBpbnQgc25kX2hkYWNfaTkx NV9pbml0KHN0cnVjdCBoZGFjX2J1cyAqYnVzKQo+ICB7Cj4gIAlzdHJ1Y3QgY29tcG9uZW50X21h dGNoICptYXRjaCA9IE5VTEw7Cj4gIAlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBidXMtPmRldjsKPiAt CXN0cnVjdCBpOTE1X2F1ZGlvX2NvbXBvbmVudCAqYWNvbXA7Cj4gKwlzdHJ1Y3QgaTkxNV9hdWRp b19jb21wb25lbnQgKmk5MTVfYWNvbXA7Cj4gKwlzdHJ1Y3QgZHJtX2F1ZGlvX2NvbXBvbmVudCAq YWNvbXA7Cj4gIAlpbnQgcmV0Owo+ICAKPiAgCWlmIChXQVJOX09OKGhkYWNfYWNvbXApKQo+IEBA IC0zNzAsOSArMzcxLDEwIEBAIGludCBzbmRfaGRhY19pOTE1X2luaXQoc3RydWN0IGhkYWNfYnVz ICpidXMpCj4gIAlpZiAoIWk5MTVfZ2Z4X3ByZXNlbnQoKSkKPiAgCQlyZXR1cm4gLUVOT0RFVjsK PiAgCj4gLQlhY29tcCA9IGt6YWxsb2Moc2l6ZW9mKCphY29tcCksIEdGUF9LRVJORUwpOwo+IC0J aWYgKCFhY29tcCkKPiArCWk5MTVfYWNvbXAgPSBremFsbG9jKHNpemVvZigqaTkxNV9hY29tcCks IEdGUF9LRVJORUwpOwo+ICsJaWYgKCFpOTE1X2Fjb21wKQo+ICAJCXJldHVybiAtRU5PTUVNOwo+ ICsJYWNvbXAgPSAmaTkxNV9hY29tcC0+YmFzZTsKPiAgCWJ1cy0+YXVkaW9fY29tcG9uZW50ID0g YWNvbXA7Cj4gIAloZGFjX2Fjb21wID0gYWNvbXA7Cj4gIAo+IEBAIC00MjEsMTMgKzQyMywxMyBA QCBFWFBPUlRfU1lNQk9MX0dQTChzbmRfaGRhY19pOTE1X2luaXQpOwo+ICBpbnQgc25kX2hkYWNf aTkxNV9leGl0KHN0cnVjdCBoZGFjX2J1cyAqYnVzKQo+ICB7Cj4gIAlzdHJ1Y3QgZGV2aWNlICpk ZXYgPSBidXMtPmRldjsKPiAtCXN0cnVjdCBpOTE1X2F1ZGlvX2NvbXBvbmVudCAqYWNvbXAgPSBi dXMtPmF1ZGlvX2NvbXBvbmVudDsKPiArCXN0cnVjdCBkcm1fYXVkaW9fY29tcG9uZW50ICphY29t cCA9IGJ1cy0+YXVkaW9fY29tcG9uZW50Owo+ICAKPiAgCWlmICghYWNvbXApCj4gIAkJcmV0dXJu IDA7Cj4gIAo+IC0JV0FSTl9PTihidXMtPmk5MTVfcG93ZXJfcmVmY291bnQpOwo+IC0JaWYgKGJ1 cy0+aTkxNV9wb3dlcl9yZWZjb3VudCA+IDAgJiYgYWNvbXAtPm9wcykKPiArCVdBUk5fT04oYnVz LT5kcm1fcG93ZXJfcmVmY291bnQpOwo+ICsJaWYgKGJ1cy0+ZHJtX3Bvd2VyX3JlZmNvdW50ID4g MCAmJiBhY29tcC0+b3BzKQo+ICAJCWFjb21wLT5vcHMtPnB1dF9wb3dlcihhY29tcC0+ZGV2KTsK PiAgCj4gIAljb21wb25lbnRfbWFzdGVyX2RlbChkZXYsICZoZGFjX2NvbXBvbmVudF9tYXN0ZXJf b3BzKTsKPiBkaWZmIC0tZ2l0IGEvc291bmQvcGNpL2hkYS9wYXRjaF9oZG1pLmMgYi9zb3VuZC9w Y2kvaGRhL3BhdGNoX2hkbWkuYwo+IGluZGV4IDhhNDk0MTVhZWJhYy4uYzA4NDcwMTcxMTRjIDEw MDY0NAo+IC0tLSBhL3NvdW5kL3BjaS9oZGEvcGF0Y2hfaGRtaS5jCj4gKysrIGIvc291bmQvcGNp L2hkYS9wYXRjaF9oZG1pLmMKPiBAQCAtMTc3LDcgKzE3Nyw3IEBAIHN0cnVjdCBoZG1pX3NwZWMg ewo+ICAKPiAgCS8qIGk5MTUvcG93ZXJ3ZWxsIChIYXN3ZWxsKy9WYWxsZXl2aWV3Kykgc3BlY2lm aWMgKi8KPiAgCWJvb2wgdXNlX2Fjb21wX25vdGlmaWVyOyAvKiB1c2UgaTkxNSBlbGRfbm90aWZ5 IGNhbGxiYWNrIGZvciBob3RwbHVnICovCj4gLQlzdHJ1Y3QgaTkxNV9hdWRpb19jb21wb25lbnRf YXVkaW9fb3BzIGk5MTVfYXVkaW9fb3BzOwo+ICsJc3RydWN0IGRybV9hdWRpb19jb21wb25lbnRf YXVkaW9fb3BzIGRybV9hdWRpb19vcHM7Cj4gIAo+ICAJc3RydWN0IGhkYWNfY2htYXAgY2htYXA7 Cj4gIAloZGFfbmlkX3QgdmVuZG9yX25pZDsKPiBAQCAtMjUxMSwxNCArMjUxMSwxNCBAQCBzdGF0 aWMgdm9pZCByZWdpc3Rlcl9pOTE1X25vdGlmaWVyKHN0cnVjdCBoZGFfY29kZWMgKmNvZGVjKQo+ ICAJc3RydWN0IGhkbWlfc3BlYyAqc3BlYyA9IGNvZGVjLT5zcGVjOwo+ICAKPiAgCXNwZWMtPnVz ZV9hY29tcF9ub3RpZmllciA9IHRydWU7Cj4gLQlzcGVjLT5pOTE1X2F1ZGlvX29wcy5hdWRpb19w dHIgPSBjb2RlYzsKPiArCXNwZWMtPmRybV9hdWRpb19vcHMuYXVkaW9fcHRyID0gY29kZWM7Cj4g IAkvKiBpbnRlbF9hdWRpb19jb2RlY19lbmFibGUoKSBvciBpbnRlbF9hdWRpb19jb2RlY19kaXNh YmxlKCkKPiAgCSAqIHdpbGwgY2FsbCBwaW5fZWxkX25vdGlmeSB3aXRoIHVzaW5nIGF1ZGlvX3B0 ciBwb2ludGVyCj4gIAkgKiBXZSBuZWVkIG1ha2Ugc3VyZSBhdWRpb19wdHIgaXMgcmVhbGx5IHNl dHVwCj4gIAkgKi8KPiAgCXdtYigpOwo+IC0Jc3BlYy0+aTkxNV9hdWRpb19vcHMucGluX2VsZF9u b3RpZnkgPSBpbnRlbF9waW5fZWxkX25vdGlmeTsKPiAtCXNuZF9oZGFjX2k5MTVfcmVnaXN0ZXJf bm90aWZpZXIoJnNwZWMtPmk5MTVfYXVkaW9fb3BzKTsKPiArCXNwZWMtPmRybV9hdWRpb19vcHMu cGluX2VsZF9ub3RpZnkgPSBpbnRlbF9waW5fZWxkX25vdGlmeTsKPiArCXNuZF9oZGFjX2k5MTVf cmVnaXN0ZXJfbm90aWZpZXIoJnNwZWMtPmRybV9hdWRpb19vcHMpOwo+ICB9Cj4gIAo+ICAvKiBz ZXR1cF9zdHJlYW0gb3BzIG92ZXJyaWRlIGZvciBIU1crICovCj4gZGlmZiAtLWdpdCBhL3NvdW5k L3NvYy9jb2RlY3MvaGRhY19oZG1pLmMgYi9zb3VuZC9zb2MvY29kZWNzL2hkYWNfaGRtaS5jCj4g aW5kZXggM2UzYTJhOWVmMzEwLi40NjAwNzU0NzVmMjAgMTAwNjQ0Cj4gLS0tIGEvc291bmQvc29j L2NvZGVjcy9oZGFjX2hkbWkuYwo+ICsrKyBiL3NvdW5kL3NvYy9jb2RlY3MvaGRhY19oZG1pLmMK PiBAQCAtMTU4Myw3ICsxNTgzLDcgQEAgc3RhdGljIHZvaWQgaGRhY19oZG1pX2VsZF9ub3RpZnlf Y2Iodm9pZCAqYXB0ciwgaW50IHBvcnQsIGludCBwaXBlKQo+ICAKPiAgfQo+ICAKPiAtc3RhdGlj IHN0cnVjdCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9hdWRpb19vcHMgYW9wcyA9IHsKPiArc3RhdGlj IHN0cnVjdCBkcm1fYXVkaW9fY29tcG9uZW50X2F1ZGlvX29wcyBhb3BzID0gewo+ICAJLnBpbl9l bGRfbm90aWZ5CT0gaGRhY19oZG1pX2VsZF9ub3RpZnlfY2IsCj4gIH07Cj4gIAo+IC0tIAo+IDIu MTguMAo+IApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJ bnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK