From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jim Bride Subject: Re: [PATCH] drm/i915/dp: DP audio API changes for MST Date: Thu, 4 Aug 2016 10:18:52 -0700 Message-ID: <20160804171852.GA15944@shiv> 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> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20160803190812.GO4329@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= 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 T24gV2VkLCBBdWcgMDMsIDIwMTYgYXQgMTA6MDg6MTJQTSArMDMwMCwgVmlsbGUgU3lyasOkbMOk IHdyb3RlOgo+IE9uIFR1ZSwgQXVnIDAyLCAyMDE2IGF0IDA3OjE0OjMwUE0gLTA3MDAsIERoaW5h a2FyYW4gUGFuZGl5YW4gd3JvdGU6Cj4gPiBEUCBNU1QgcHJvdmlkZXMgdGhlIGNhcGFiaWxpdHkg dG8gc2VuZCBtdWx0aXBsZSB2aWRlbyBhbmQgYXVkaW8gc3RyZWFtcyB2aWEKPiA+IG9uZSBzaW5n bGUgcG9ydC4gVGhpcyByZXF1aXJlcyB0aGUgQVBJJ3MgYmV0d2VlbiBpOTE1IGFuZCBhdWRpbyBk cml2ZXJzIHRvCj4gPiBkaXN0aW5ndWlzaCBiZXR3ZWVuIGF1ZGlvIGNhcGFibGUgZGlzcGxheXMg Y29ubmVjdGVkIHRvIGEgcG9ydC4gVGhpcyBwYXRjaAo+ID4gYWRkcyB0aGlzIHN1cHBvcnQgdmlh IGFuIGFkZGl0aW9uYWwgcGFyYW1ldGVyICdpbnQgZGV2X2lkJy4gVGhlIGV4aXN0aW5nCj4gPiBw YXJhbWV0ZXIgJ3BvcnQnIGRvZXMgbm90IGNoYW5nZSBpdCdzIG1lYW5pbmcuCj4gPiAKPiA+IGRl dl9pZCA9Cj4gPiAJTVNUCTogcGlwZSB0aGF0IHRoZSBzdHJlYW0gb3JpZ2luYXRlcyBmcm9tCj4g PiAJTm9uLU1TVAk6IC0xCj4gPiAKPiA+IEFmZmVjdGVkIEFQSXM6Cj4gPiBzdHJ1Y3QgaTkxNV9h dWRpb19jb21wb25lbnRfb3BzCj4gPiAtICAgICAgIGludCAoKnN5bmNfYXVkaW9fcmF0ZSkoc3Ry dWN0IGRldmljZSAqLCBpbnQgcG9ydCwgaW50IHJhdGUpOwo+ID4gKwlpbnQgKCpzeW5jX2F1ZGlv X3JhdGUpKHN0cnVjdCBkZXZpY2UgKiwgaW50IHBvcnQsIGludCBkZXZfaWQsCj4gCj4gRG9lcyB0 aGUgdGVybSAnZGV2X2lkJyBoYXZlIHNvbWUgc3BlY2lhbCBtZWFuaW5nIG9uIHRoZSBhdWRpbyBz aWRlPyBPbgo+IHRoZSBpOTE1IHNpZGUgdGhpbmdzIHdvdWxkIGJlIGxlc3MgY29uZnVzaW5nIGlm IHdlIGp1c3QgY2FsbGVkIGl0Cj4gJ3BpcGUnLgoKWWVhaCwgaXQgZG9lcy4gIEFsbCBvZiB0aGUg ZG9jdW1lbnRhdGlvbiBvbiB0aGUgYXVkaW8gc2lkZSBpcyB3cml0dGVuCmluIHRlcm1zIG9mIGRl dmljZSBJRCwgc28gdGhleSBhc2tlZCBmb3IgdGhhdCBub21lbmNsYXR1cmUuCgpKaW0KCgo+ID4g KwkgICAgIGludCByYXRlKTsKPiA+IAo+ID4gLSAgICAgICBpbnQgKCpnZXRfZWxkKShzdHJ1Y3Qg ZGV2aWNlICosIGludCBwb3J0LCBib29sICplbmFibGVkLAo+ID4gLSAgICAgICAgICAgICAgICAg ICAgICAgdW5zaWduZWQgY2hhciAqYnVmLCBpbnQgbWF4X2J5dGVzKTsKPiA+ICsgICAgICAgaW50 ICgqZ2V0X2VsZCkoc3RydWN0IGRldmljZSAqLCBpbnQgcG9ydCwgaW50IGRldl9pZCwKPiA+ICsJ CSAgICAgICBib29sICplbmFibGVkLCB1bnNpZ25lZCBjaGFyICpidWYsIGludCBtYXhfYnl0ZXMp Owo+ID4gCj4gPiBzdHJ1Y3QgaTkxNV9hdWRpb19jb21wb25lbnRfYXVkaW9fb3BzCj4gPiAtICAg ICAgIHZvaWQgKCpwaW5fZWxkX25vdGlmeSkodm9pZCAqYXVkaW9fcHRyLCBpbnQgcG9ydCk7Cj4g PiArICAgICAgIHZvaWQgKCpwaW5fZWxkX25vdGlmeSkodm9pZCAqYXVkaW9fcHRyLCBpbnQgcG9y dCwgaW50IGRldl9pZCk7Cj4gPiAKPiA+IFRoaXMgcGF0Y2ggbWFrZXMgZHVtbXkgY2hhbmdlcyBp biB0aGUgYXVkaW8gZHJpdmVycyBmb3IgYnVpbGQgdG8gc3VjY2VlZC4KPiA+IAo+ID4gU2lnbmVk LW9mZi1ieTogRGhpbmFrYXJhbiBQYW5kaXlhbiA8ZGhpbmFrYXJhbi5wYW5kaXlhbkBpbnRlbC5j b20+Cj4gPiAtLS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgIHwgIDIg Ky0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdWRpby5jIHwgODIgKysrKysrKysr KysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0KPiA+ICBpbmNsdWRlL2RybS9pOTE1X2NvbXBv bmVudC5oICAgICAgIHwgIDYgKy0tCj4gPiAgaW5jbHVkZS9zb3VuZC9oZGFfaTkxNS5oICAgICAg ICAgICB8IDExICsrLS0tCj4gPiAgc291bmQvaGRhL2hkYWNfaTkxNS5jICAgICAgICAgICAgICB8 ICA5ICsrKy0tCj4gPiAgc291bmQvcGNpL2hkYS9wYXRjaF9oZG1pLmMgICAgICAgICB8ICA3ICsr LS0KPiA+ICA2IGZpbGVzIGNoYW5nZWQsIDgyIGluc2VydGlvbnMoKyksIDM1IGRlbGV0aW9ucygt KQo+ID4gCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiA+IGluZGV4IDY1YWRhNWQuLjhlNGM4 YzggMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gPiBAQCAtMjA1NCw3ICsyMDU0 LDcgQEAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgewo+ID4gIAkvKiBwZXJmb3JtIFBIWSBzdGF0 ZSBzYW5pdHkgY2hlY2tzPyAqLwo+ID4gIAlib29sIGNodl9waHlfYXNzZXJ0WzJdOwo+ID4gIAo+ ID4gLQlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZGlnX3BvcnRfbWFwW0k5MTVfTUFYX1BPUlRTXTsK PiA+ICsJc3RydWN0IGludGVsX2VuY29kZXIgKmF2X2VuY19tYXBbSTkxNV9NQVhfUElQRVNdOwo+ ID4gIAo+ID4gIAkvKgo+ID4gIAkgKiBOT1RFOiBUaGlzIGlzIHRoZSBkcmkxL3VtcyBkdW5nZW9u LCBkb24ndCBhZGQgc3R1ZmYgaGVyZS4gWW91ciBwYXRjaAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2F1ZGlvLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9hdWRpby5jCj4gPiBpbmRleCA4YzQ5M2RlLi5jYmU0NGM4IDEwMDY0NAo+ID4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXVkaW8uYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfYXVkaW8uYwo+ID4gQEAgLTUwMCw2ICs1MDAsOSBAQCB2b2lkIGludGVsX2F1 ZGlvX2NvZGVjX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlcikKPiA+ ICAJc3RydWN0IGk5MTVfYXVkaW9fY29tcG9uZW50ICphY29tcCA9IGRldl9wcml2LT5hdWRpb19j b21wb25lbnQ7Cj4gPiAgCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0 ID0gZW5jX3RvX2RpZ19wb3J0KGVuY29kZXIpOwo+ID4gIAllbnVtIHBvcnQgcG9ydCA9IGludGVs X2RpZ19wb3J0LT5wb3J0Owo+ID4gKwllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7Cj4gPiAr CWludCBkZXZfaWQgPSAtMTsKPiA+ICsKPiA+ICAKPiA+ICAJY29ubmVjdG9yID0gZHJtX3NlbGVj dF9lbGQoZW5jb2Rlcik7Cj4gPiAgCWlmICghY29ubmVjdG9yKQo+ID4gQEAgLTUyMiwxNCArNTI1 LDE5IEBAIHZvaWQgaW50ZWxfYXVkaW9fY29kZWNfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVy ICppbnRlbF9lbmNvZGVyKQo+ID4gIAkJZGV2X3ByaXYtPmRpc3BsYXkuYXVkaW9fY29kZWNfZW5h YmxlKGNvbm5lY3RvciwgaW50ZWxfZW5jb2RlciwKPiA+ICAJCQkJCQkgICAgIGFkanVzdGVkX21v ZGUpOwo+ID4gIAo+ID4gKwlpZiAoaW50ZWxfZW5jb2Rlci0+dHlwZSA9PSBJTlRFTF9PVVRQVVRf RFBfTVNUKQo+ID4gKwkJZGV2X2lkID0gcGlwZTsKPiA+ICsKPiA+ICAJbXV0ZXhfbG9jaygmZGV2 X3ByaXYtPmF2X211dGV4KTsKPiA+ICAJaW50ZWxfZW5jb2Rlci0+YXVkaW9fY29ubmVjdG9yID0g Y29ubmVjdG9yOwo+ID4gKwo+ID4gIAkvKiByZWZlcnJlZCBpbiBhdWRpbyBjYWxsYmFja3MgKi8K PiA+IC0JZGV2X3ByaXYtPmRpZ19wb3J0X21hcFtwb3J0XSA9IGludGVsX2VuY29kZXI7Cj4gPiAr CWRldl9wcml2LT5hdl9lbmNfbWFwW3BpcGVdID0gaW50ZWxfZW5jb2RlcjsKPiA+ICAJbXV0ZXhf dW5sb2NrKCZkZXZfcHJpdi0+YXZfbXV0ZXgpOwo+ID4gIAo+ID4gIAlpZiAoYWNvbXAgJiYgYWNv bXAtPmF1ZGlvX29wcyAmJiBhY29tcC0+YXVkaW9fb3BzLT5waW5fZWxkX25vdGlmeSkKPiA+IC0J CWFjb21wLT5hdWRpb19vcHMtPnBpbl9lbGRfbm90aWZ5KGFjb21wLT5hdWRpb19vcHMtPmF1ZGlv X3B0ciwgKGludCkgcG9ydCk7Cj4gPiArCQlhY29tcC0+YXVkaW9fb3BzLT5waW5fZWxkX25vdGlm eShhY29tcC0+YXVkaW9fb3BzLT5hdWRpb19wdHIsCj4gPiArCQkJCQkJIChpbnQpIHBvcnQsIGRl dl9pZCk7Cj4gPiAgfQo+ID4gIAo+ID4gIC8qKgo+ID4gQEAgLTU0MiwyMiArNTUwLDI5IEBAIHZv aWQgaW50ZWxfYXVkaW9fY29kZWNfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9l bmNvZGVyKQo+ID4gIHZvaWQgaW50ZWxfYXVkaW9fY29kZWNfZGlzYWJsZShzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqaW50ZWxfZW5jb2RlcikKPiA+ICB7Cj4gPiAgCXN0cnVjdCBkcm1fZW5jb2RlciAq ZW5jb2RlciA9ICZpbnRlbF9lbmNvZGVyLT5iYXNlOwo+ID4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YyA9IHRvX2ludGVsX2NydGMoZW5jb2Rlci0+Y3J0Yyk7Cj4gPiAgCXN0cnVjdCBkcm1fZGV2 aWNlICpkZXYgPSBlbmNvZGVyLT5kZXY7Cj4gPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiA+ICAJc3RydWN0IGk5MTVfYXVkaW9fY29tcG9uZW50 ICphY29tcCA9IGRldl9wcml2LT5hdWRpb19jb21wb25lbnQ7Cj4gPiAgCXN0cnVjdCBpbnRlbF9k aWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0gZW5jX3RvX2RpZ19wb3J0KGVuY29kZXIpOwo+ ID4gIAllbnVtIHBvcnQgcG9ydCA9IGludGVsX2RpZ19wb3J0LT5wb3J0Owo+ID4gKwllbnVtIHBp cGUgcGlwZSA9IGNydGMtPnBpcGU7Cj4gPiArCWludCBkZXZfaWQgPSAtMTsKPiA+ICsKPiA+ICsJ aWYgKGludGVsX2VuY29kZXItPnR5cGUgPT0gSU5URUxfT1VUUFVUX0RQX01TVCkKPiA+ICsJCWRl dl9pZCA9IHBpcGU7Cj4gPiAgCj4gPiAgCWlmIChkZXZfcHJpdi0+ZGlzcGxheS5hdWRpb19jb2Rl Y19kaXNhYmxlKQo+ID4gIAkJZGV2X3ByaXYtPmRpc3BsYXkuYXVkaW9fY29kZWNfZGlzYWJsZShp bnRlbF9lbmNvZGVyKTsKPiA+ICAKPiA+ICAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmF2X211dGV4 KTsKPiA+ICAJaW50ZWxfZW5jb2Rlci0+YXVkaW9fY29ubmVjdG9yID0gTlVMTDsKPiA+IC0JZGV2 X3ByaXYtPmRpZ19wb3J0X21hcFtwb3J0XSA9IE5VTEw7Cj4gPiArCWRldl9wcml2LT5hdl9lbmNf bWFwW3BpcGVdID0gTlVMTDsKPiA+ICAJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+YXZfbXV0ZXgp Owo+ID4gIAo+ID4gIAlpZiAoYWNvbXAgJiYgYWNvbXAtPmF1ZGlvX29wcyAmJiBhY29tcC0+YXVk aW9fb3BzLT5waW5fZWxkX25vdGlmeSkKPiA+IC0JCWFjb21wLT5hdWRpb19vcHMtPnBpbl9lbGRf bm90aWZ5KGFjb21wLT5hdWRpb19vcHMtPmF1ZGlvX3B0ciwgKGludCkgcG9ydCk7Cj4gPiArCQlh Y29tcC0+YXVkaW9fb3BzLT5waW5fZWxkX25vdGlmeShhY29tcC0+YXVkaW9fb3BzLT5hdWRpb19w dHIsCj4gPiArCQkJCQkJIChpbnQpIHBvcnQsIGRldl9pZCk7Cj4gPiAgfQo+ID4gIAo+ID4gIC8q Kgo+ID4gQEAgLTYyOCw4ICs2NDMsMzIgQEAgc3RhdGljIGludCBpOTE1X2F1ZGlvX2NvbXBvbmVu dF9nZXRfY2RjbGtfZnJlcShzdHJ1Y3QgZGV2aWNlICpkZXYpCj4gPiAgCXJldHVybiBkZXZfcHJp di0+Y2RjbGtfZnJlcTsKPiA+ICB9Cj4gPiAgCj4gPiAtc3RhdGljIGludCBpOTE1X2F1ZGlvX2Nv bXBvbmVudF9zeW5jX2F1ZGlvX3JhdGUoc3RydWN0IGRldmljZSAqZGV2LAo+ID4gLQkJCQkJCWlu dCBwb3J0LCBpbnQgcmF0ZSkKPiA+ICtzdGF0aWMgc3RydWN0IGludGVsX2VuY29kZXIgKmdldF9z YXZlZF9lbmNvZGVyKHN0cnVjdCBpbnRlbF9lbmNvZGVyICphdl9lbmNfbWFwW10sCj4gPiArCQkJ CQkgICAgICAgaW50IHBvcnQsIGludCBkZXZfaWQpCj4gPiArewo+ID4gKwo+ID4gKwllbnVtIHBp cGUgcGlwZTsKPiA+ICsJc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyOwo+ID4gKwo+ID4gKwlp ZiAoZGV2X2lkID49IDAgJiYgZGV2X2lkIDwgSTkxNV9NQVhfUElQRVMpCj4gPiArCQlyZXR1cm4g YXZfZW5jX21hcFtkZXZfaWRdOwo+ID4gKwo+ID4gKwlmb3IgKHBpcGUgPSBQSVBFX0E7IHBpcGUg PCBJOTE1X01BWF9QSVBFUzsgcGlwZSsrKSB7Cj4gPiArCj4gPiArCQlpZiAoIWF2X2VuY19tYXBb cGlwZV0pCj4gPiArCQkJY29udGludWU7Cj4gPiArCj4gPiArCQllbmNvZGVyID0gJmF2X2VuY19t YXBbcGlwZV0tPmJhc2U7Cj4gPiArCQlpZiAocG9ydCA9PSBlbmNfdG9fZGlnX3BvcnQoZW5jb2Rl ciktPnBvcnQpCj4gPiArCQkJcmV0dXJuIGF2X2VuY19tYXBbcGlwZV07Cj4gPiArCX0KPiA+ICsK PiA+ICsJcmV0dXJuIE5VTEw7Cj4gPiArCj4gPiArfQo+ID4gKwo+ID4gK3N0YXRpYyBpbnQgaTkx NV9hdWRpb19jb21wb25lbnRfc3luY19hdWRpb19yYXRlKHN0cnVjdCBkZXZpY2UgKmRldiwgaW50 IHBvcnQsCj4gPiArCQkJCQkJaW50IGRldl9pZCwgaW50IHJhdGUpCj4gPiAgewo+ID4gIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXZfdG9faTkxNShkZXYpOwo+ID4gIAlz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlcjsKPiA+IEBAIC02NDksMTUgKzY4OCwx NiBAQCBzdGF0aWMgaW50IGk5MTVfYXVkaW9fY29tcG9uZW50X3N5bmNfYXVkaW9fcmF0ZShzdHJ1 Y3QgZGV2aWNlICpkZXYsCj4gPiAgCQlyZXR1cm4gMDsKPiA+ICAKPiA+ICAJbXV0ZXhfbG9jaygm ZGV2X3ByaXYtPmF2X211dGV4KTsKPiA+ICsKPiA+ICAJLyogMS4gZ2V0IHRoZSBwaXBlICovCj4g PiAtCWludGVsX2VuY29kZXIgPSBkZXZfcHJpdi0+ZGlnX3BvcnRfbWFwW3BvcnRdOwo+ID4gLQkv KiBpbnRlbF9lbmNvZGVyIG1pZ2h0IGJlIE5VTEwgZm9yIERQIE1TVCAqLwo+ID4gKwlpbnRlbF9l bmNvZGVyID0gZ2V0X3NhdmVkX2VuY29kZXIoZGV2X3ByaXYtPmF2X2VuY19tYXAsIHBvcnQsIGRl dl9pZCk7Cj4gPiAgCWlmICghaW50ZWxfZW5jb2RlciB8fCAhaW50ZWxfZW5jb2Rlci0+YmFzZS5j cnRjIHx8Cj4gPiAgCSAgICBpbnRlbF9lbmNvZGVyLT50eXBlICE9IElOVEVMX09VVFBVVF9IRE1J KSB7Cj4gPiAgCQlEUk1fREVCVUdfS01TKCJubyB2YWxpZCBwb3J0ICVjXG4iLCBwb3J0X25hbWUo cG9ydCkpOwo+ID4gIAkJZXJyID0gLUVOT0RFVjsKPiA+ICAJCWdvdG8gdW5sb2NrOwo+ID4gIAl9 Cj4gPiArCj4gPiAgCWNydGMgPSB0b19pbnRlbF9jcnRjKGludGVsX2VuY29kZXItPmJhc2UuY3J0 Yyk7Cj4gPiAgCXBpcGUgPSBjcnRjLT5waXBlOwo+ID4gIAlpZiAocGlwZSA9PSBJTlZBTElEX1BJ UEUpIHsKPiA+IEBAIC03MDIsNyArNzQyLDcgQEAgc3RhdGljIGludCBpOTE1X2F1ZGlvX2NvbXBv bmVudF9zeW5jX2F1ZGlvX3JhdGUoc3RydWN0IGRldmljZSAqZGV2LAo+ID4gIH0KPiA+ICAKPiA+ ICBzdGF0aWMgaW50IGk5MTVfYXVkaW9fY29tcG9uZW50X2dldF9lbGQoc3RydWN0IGRldmljZSAq ZGV2LCBpbnQgcG9ydCwKPiA+IC0JCQkJCWJvb2wgKmVuYWJsZWQsCj4gPiArCQkJCQlpbnQgZGV2 X2lkLCBib29sICplbmFibGVkLAo+ID4gIAkJCQkJdW5zaWduZWQgY2hhciAqYnVmLCBpbnQgbWF4 X2J5dGVzKQo+ID4gIHsKPiA+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g ZGV2X3RvX2k5MTUoZGV2KTsKPiA+IEBAIC03MTAsMTcgKzc1MCwyMSBAQCBzdGF0aWMgaW50IGk5 MTVfYXVkaW9fY29tcG9uZW50X2dldF9lbGQoc3RydWN0IGRldmljZSAqZGV2LCBpbnQgcG9ydCwK PiA+ICAJY29uc3QgdTggKmVsZDsKPiA+ICAJaW50IHJldCA9IC1FSU5WQUw7Cj4gPiAgCj4gPiAr Cj4gPiAgCW11dGV4X2xvY2soJmRldl9wcml2LT5hdl9tdXRleCk7Cj4gPiAtCWludGVsX2VuY29k ZXIgPSBkZXZfcHJpdi0+ZGlnX3BvcnRfbWFwW3BvcnRdOwo+ID4gLQkvKiBpbnRlbF9lbmNvZGVy IG1pZ2h0IGJlIE5VTEwgZm9yIERQIE1TVCAqLwo+ID4gLQlpZiAoaW50ZWxfZW5jb2Rlcikgewo+ ID4gLQkJcmV0ID0gMDsKPiA+IC0JCSplbmFibGVkID0gaW50ZWxfZW5jb2Rlci0+YXVkaW9fY29u bmVjdG9yICE9IE5VTEw7Cj4gPiAtCQlpZiAoKmVuYWJsZWQpIHsKPiA+IC0JCQllbGQgPSBpbnRl bF9lbmNvZGVyLT5hdWRpb19jb25uZWN0b3ItPmVsZDsKPiA+IC0JCQlyZXQgPSBkcm1fZWxkX3Np emUoZWxkKTsKPiA+IC0JCQltZW1jcHkoYnVmLCBlbGQsIG1pbihtYXhfYnl0ZXMsIHJldCkpOwo+ ID4gLQkJfQo+ID4gKwo+ID4gKwlpbnRlbF9lbmNvZGVyID0gZ2V0X3NhdmVkX2VuY29kZXIoZGV2 X3ByaXYtPmF2X2VuY19tYXAsIHBvcnQsIGRldl9pZCk7Cj4gPiArCWlmICghaW50ZWxfZW5jb2Rl cikgewo+ID4gKwkJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+YXZfbXV0ZXgpOwo+ID4gKwkJcmV0 dXJuIHJldDsKPiA+ICsJfQo+ID4gKwo+ID4gKwlyZXQgPSAwOwo+ID4gKwkqZW5hYmxlZCA9IGlu dGVsX2VuY29kZXItPmF1ZGlvX2Nvbm5lY3RvciAhPSBOVUxMOwo+ID4gKwlpZiAoKmVuYWJsZWQp IHsKPiA+ICsJCWVsZCA9IGludGVsX2VuY29kZXItPmF1ZGlvX2Nvbm5lY3Rvci0+ZWxkOwo+ID4g KwkJcmV0ID0gZHJtX2VsZF9zaXplKGVsZCk7Cj4gPiArCQltZW1jcHkoYnVmLCBlbGQsIG1pbiht YXhfYnl0ZXMsIHJldCkpOwo+ID4gIAl9Cj4gPiAgCj4gPiAgCW11dGV4X3VubG9jaygmZGV2X3By aXYtPmF2X211dGV4KTsKPiA+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9pOTE1X2NvbXBvbmVu dC5oIGIvaW5jbHVkZS9kcm0vaTkxNV9jb21wb25lbnQuaAo+ID4gaW5kZXggYjQ2ZmEwZS4uMTQx OWM5OCAxMDA2NDQKPiA+IC0tLSBhL2luY2x1ZGUvZHJtL2k5MTVfY29tcG9uZW50LmgKPiA+ICsr KyBiL2luY2x1ZGUvZHJtL2k5MTVfY29tcG9uZW50LmgKPiA+IEBAIC02NCw3ICs2NCw3IEBAIHN0 cnVjdCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9vcHMgewo+ID4gIAkgKiBDYWxsZWQgZnJvbSBhdWRp byBkcml2ZXIuIEFmdGVyIGF1ZGlvIGRyaXZlciBzZXRzIHRoZQo+ID4gIAkgKiBzYW1wbGUgcmF0 ZSwgaXQgd2lsbCBjYWxsIHRoaXMgZnVuY3Rpb24gdG8gc2V0IG4vY3RzCj4gPiAgCSAqLwo+ID4g LQlpbnQgKCpzeW5jX2F1ZGlvX3JhdGUpKHN0cnVjdCBkZXZpY2UgKiwgaW50IHBvcnQsIGludCBy YXRlKTsKPiA+ICsJaW50ICgqc3luY19hdWRpb19yYXRlKShzdHJ1Y3QgZGV2aWNlICosIGludCBw b3J0LCBpbnQgZGV2X2lkLCBpbnQgcmF0ZSk7Cj4gPiAgCS8qKgo+ID4gIAkgKiBAZ2V0X2VsZDog ZmlsbCB0aGUgYXVkaW8gc3RhdGUgYW5kIEVMRCBieXRlcyBmb3IgdGhlIGdpdmVuIHBvcnQKPiA+ ICAJICoKPiA+IEBAIC03Nyw3ICs3Nyw3IEBAIHN0cnVjdCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9v cHMgewo+ID4gIAkgKiBOb3RlIHRoYXQgdGhlIHJldHVybmVkIHNpemUgbWF5IGJlIG92ZXIgQG1h eF9ieXRlcy4gIFRoZW4gaXQKPiA+ICAJICogaW1wbGllcyB0aGF0IG9ubHkgYSBwYXJ0IG9mIEVM RCBoYXMgYmVlbiBjb3BpZWQgdG8gdGhlIGJ1ZmZlci4KPiA+ICAJICovCj4gPiAtCWludCAoKmdl dF9lbGQpKHN0cnVjdCBkZXZpY2UgKiwgaW50IHBvcnQsIGJvb2wgKmVuYWJsZWQsCj4gPiArCWlu dCAoKmdldF9lbGQpKHN0cnVjdCBkZXZpY2UgKiwgaW50IHBvcnQsIGludCBkZXZfaWQsIGJvb2wg KmVuYWJsZWQsCj4gPiAgCQkgICAgICAgdW5zaWduZWQgY2hhciAqYnVmLCBpbnQgbWF4X2J5dGVz KTsKPiA+ICB9Owo+ID4gIAo+ID4gQEAgLTk3LDcgKzk3LDcgQEAgc3RydWN0IGk5MTVfYXVkaW9f Y29tcG9uZW50X2F1ZGlvX29wcyB7Cj4gPiAgCSAqIHN0YXR1cyBhY2NvcmRpbmdseSAoZXZlbiB3 aGVuIHRoZSBIREEgY29udHJvbGxlciBpcyBpbiBwb3dlciBzYXZlCj4gPiAgCSAqIG1vZGUpLgo+ ID4gIAkgKi8KPiA+IC0Jdm9pZCAoKnBpbl9lbGRfbm90aWZ5KSh2b2lkICphdWRpb19wdHIsIGlu dCBwb3J0KTsKPiA+ICsJdm9pZCAoKnBpbl9lbGRfbm90aWZ5KSh2b2lkICphdWRpb19wdHIsIGlu dCBwb3J0LCBpbnQgZGV2X2lkKTsKPiA+ICB9Owo+ID4gIAo+ID4gIC8qKgo+ID4gZGlmZiAtLWdp dCBhL2luY2x1ZGUvc291bmQvaGRhX2k5MTUuaCBiL2luY2x1ZGUvc291bmQvaGRhX2k5MTUuaAo+ ID4gaW5kZXggNzk2Y2FiZi4uNWFiOTcyZSAxMDA2NDQKPiA+IC0tLSBhL2luY2x1ZGUvc291bmQv aGRhX2k5MTUuaAo+ID4gKysrIGIvaW5jbHVkZS9zb3VuZC9oZGFfaTkxNS5oCj4gPiBAQCAtMTAs OCArMTAsOSBAQAo+ID4gIGludCBzbmRfaGRhY19zZXRfY29kZWNfd2FrZXVwKHN0cnVjdCBoZGFj X2J1cyAqYnVzLCBib29sIGVuYWJsZSk7Cj4gPiAgaW50IHNuZF9oZGFjX2Rpc3BsYXlfcG93ZXIo c3RydWN0IGhkYWNfYnVzICpidXMsIGJvb2wgZW5hYmxlKTsKPiA+ICB2b2lkIHNuZF9oZGFjX2k5 MTVfc2V0X2JjbGsoc3RydWN0IGhkYWNfYnVzICpidXMpOwo+ID4gLWludCBzbmRfaGRhY19zeW5j X2F1ZGlvX3JhdGUoc3RydWN0IGhkYWNfZGV2aWNlICpjb2RlYywgaGRhX25pZF90IG5pZCwgaW50 IHJhdGUpOwo+ID4gLWludCBzbmRfaGRhY19hY29tcF9nZXRfZWxkKHN0cnVjdCBoZGFjX2Rldmlj ZSAqY29kZWMsIGhkYV9uaWRfdCBuaWQsCj4gPiAraW50IHNuZF9oZGFjX3N5bmNfYXVkaW9fcmF0 ZShzdHJ1Y3QgaGRhY19kZXZpY2UgKmNvZGVjLCBoZGFfbmlkX3QgbmlkLAo+ID4gKwkJCSAgICAg aW50IGRldl9pZCwgaW50IHJhdGUpOwo+ID4gK2ludCBzbmRfaGRhY19hY29tcF9nZXRfZWxkKHN0 cnVjdCBoZGFjX2RldmljZSAqY29kZWMsIGhkYV9uaWRfdCBuaWQsIGludCBkZXZfaWQsCj4gPiAg CQkJICAgYm9vbCAqYXVkaW9fZW5hYmxlZCwgY2hhciAqYnVmZmVyLCBpbnQgbWF4X2J5dGVzKTsK PiA+ICBpbnQgc25kX2hkYWNfaTkxNV9pbml0KHN0cnVjdCBoZGFjX2J1cyAqYnVzKTsKPiA+ICBp bnQgc25kX2hkYWNfaTkxNV9leGl0KHN0cnVjdCBoZGFjX2J1cyAqYnVzKTsKPiA+IEBAIC0yOSwx MyArMzAsMTMgQEAgc3RhdGljIGlubGluZSB2b2lkIHNuZF9oZGFjX2k5MTVfc2V0X2JjbGsoc3Ry dWN0IGhkYWNfYnVzICpidXMpCj4gPiAgewo+ID4gIH0KPiA+ICBzdGF0aWMgaW5saW5lIGludCBz bmRfaGRhY19zeW5jX2F1ZGlvX3JhdGUoc3RydWN0IGhkYWNfZGV2aWNlICpjb2RlYywKPiA+IC0J CQkJCSAgIGhkYV9uaWRfdCBuaWQsIGludCByYXRlKQo+ID4gKwkJCQkJICAgaGRhX25pZF90IG5p ZCwgaW50IGRldl9pZCwgaW50IHJhdGUpCj4gPiAgewo+ID4gIAlyZXR1cm4gMDsKPiA+ICB9Cj4g PiAgc3RhdGljIGlubGluZSBpbnQgc25kX2hkYWNfYWNvbXBfZ2V0X2VsZChzdHJ1Y3QgaGRhY19k ZXZpY2UgKmNvZGVjLCBoZGFfbmlkX3QgbmlkLAo+ID4gLQkJCQkJIGJvb2wgKmF1ZGlvX2VuYWJs ZWQsIGNoYXIgKmJ1ZmZlciwKPiA+IC0JCQkJCSBpbnQgbWF4X2J5dGVzKQo+ID4gKwkJCQkJIGlu dCBkZXZfaWQsIGJvb2wgKmF1ZGlvX2VuYWJsZWQsCj4gPiArCQkJCQkgY2hhciAqYnVmZmVyLCBp bnQgbWF4X2J5dGVzKQo+ID4gIHsKPiA+ICAJcmV0dXJuIC1FTk9ERVY7Cj4gPiAgfQo+ID4gZGlm ZiAtLWdpdCBhL3NvdW5kL2hkYS9oZGFjX2k5MTUuYyBiL3NvdW5kL2hkYS9oZGFjX2k5MTUuYwo+ ID4gaW5kZXggYzlhZjAyMi4uNmVhNjNhYyAxMDA2NDQKPiA+IC0tLSBhL3NvdW5kL2hkYS9oZGFj X2k5MTUuYwo+ID4gKysrIGIvc291bmQvaGRhL2hkYWNfaTkxNS5jCj4gPiBAQCAtMjAxLDcgKzIw MSw4IEBAIHN0YXRpYyBpbnQgcGluMnBvcnQoc3RydWN0IGhkYWNfZGV2aWNlICpjb2RlYywgaGRh X25pZF90IHBpbl9uaWQpCj4gPiAgICogVGhpcyBmdW5jdGlvbiBzZXRzIE4vQ1RTIHZhbHVlIGJh c2VkIG9uIHRoZSBnaXZlbiBzYW1wbGUgcmF0ZS4KPiA+ICAgKiBSZXR1cm5zIHplcm8gZm9yIHN1 Y2Nlc3MsIG9yIGEgbmVnYXRpdmUgZXJyb3IgY29kZS4KPiA+ICAgKi8KPiA+IC1pbnQgc25kX2hk YWNfc3luY19hdWRpb19yYXRlKHN0cnVjdCBoZGFjX2RldmljZSAqY29kZWMsIGhkYV9uaWRfdCBu aWQsIGludCByYXRlKQo+ID4gK2ludCBzbmRfaGRhY19zeW5jX2F1ZGlvX3JhdGUoc3RydWN0IGhk YWNfZGV2aWNlICpjb2RlYywgaGRhX25pZF90IG5pZCwKPiA+ICsJCQkgICAgIGludCBkZXZfaWQs IGludCByYXRlKQo+ID4gIHsKPiA+ICAJc3RydWN0IGhkYWNfYnVzICpidXMgPSBjb2RlYy0+YnVz Owo+ID4gIAlzdHJ1Y3QgaTkxNV9hdWRpb19jb21wb25lbnQgKmFjb21wID0gYnVzLT5hdWRpb19j b21wb25lbnQ7Cj4gPiBAQCAtMjEyLDcgKzIxMyw3IEBAIGludCBzbmRfaGRhY19zeW5jX2F1ZGlv X3JhdGUoc3RydWN0IGhkYWNfZGV2aWNlICpjb2RlYywgaGRhX25pZF90IG5pZCwgaW50IHJhdGUp Cj4gPiAgCXBvcnQgPSBwaW4ycG9ydChjb2RlYywgbmlkKTsKPiA+ICAJaWYgKHBvcnQgPCAwKQo+ ID4gIAkJcmV0dXJuIC1FSU5WQUw7Cj4gPiAtCXJldHVybiBhY29tcC0+b3BzLT5zeW5jX2F1ZGlv X3JhdGUoYWNvbXAtPmRldiwgcG9ydCwgcmF0ZSk7Cj4gPiArCXJldHVybiBhY29tcC0+b3BzLT5z eW5jX2F1ZGlvX3JhdGUoYWNvbXAtPmRldiwgcG9ydCwgZGV2X2lkLCByYXRlKTsKPiA+ICB9Cj4g PiAgRVhQT1JUX1NZTUJPTF9HUEwoc25kX2hkYWNfc3luY19hdWRpb19yYXRlKTsKPiA+ICAKPiA+ IEBAIC0yMzYsNyArMjM3LDcgQEAgRVhQT1JUX1NZTUJPTF9HUEwoc25kX2hkYWNfc3luY19hdWRp b19yYXRlKTsKPiA+ICAgKiB0aHVzIGl0IG1heSBiZSBvdmVyIEBtYXhfYnl0ZXMuICBJZiBpdCdz IG92ZXIgQG1heF9ieXRlcywgaXQgaW1wbGllcwo+ID4gICAqIHRoYXQgb25seSBhIHBhcnQgb2Yg RUxEIGJ5dGVzIGhhdmUgYmVlbiBmZXRjaGVkLgo+ID4gICAqLwo+ID4gLWludCBzbmRfaGRhY19h Y29tcF9nZXRfZWxkKHN0cnVjdCBoZGFjX2RldmljZSAqY29kZWMsIGhkYV9uaWRfdCBuaWQsCj4g PiAraW50IHNuZF9oZGFjX2Fjb21wX2dldF9lbGQoc3RydWN0IGhkYWNfZGV2aWNlICpjb2RlYywg aGRhX25pZF90IG5pZCwgaW50IGRldl9pZCwKPiA+ICAJCQkgICBib29sICphdWRpb19lbmFibGVk LCBjaGFyICpidWZmZXIsIGludCBtYXhfYnl0ZXMpCj4gPiAgewo+ID4gIAlzdHJ1Y3QgaGRhY19i dXMgKmJ1cyA9IGNvZGVjLT5idXM7Cj4gPiBAQCAtMjQ5LDcgKzI1MCw3IEBAIGludCBzbmRfaGRh Y19hY29tcF9nZXRfZWxkKHN0cnVjdCBoZGFjX2RldmljZSAqY29kZWMsIGhkYV9uaWRfdCBuaWQs Cj4gPiAgCXBvcnQgPSBwaW4ycG9ydChjb2RlYywgbmlkKTsKPiA+ICAJaWYgKHBvcnQgPCAwKQo+ ID4gIAkJcmV0dXJuIC1FSU5WQUw7Cj4gPiAtCXJldHVybiBhY29tcC0+b3BzLT5nZXRfZWxkKGFj b21wLT5kZXYsIHBvcnQsIGF1ZGlvX2VuYWJsZWQsCj4gPiArCXJldHVybiBhY29tcC0+b3BzLT5n ZXRfZWxkKGFjb21wLT5kZXYsIHBvcnQsIGRldl9pZCwgYXVkaW9fZW5hYmxlZCwKPiA+ICAJCQkJ ICAgYnVmZmVyLCBtYXhfYnl0ZXMpOwo+ID4gIH0KPiA+ICBFWFBPUlRfU1lNQk9MX0dQTChzbmRf aGRhY19hY29tcF9nZXRfZWxkKTsKPiA+IGRpZmYgLS1naXQgYS9zb3VuZC9wY2kvaGRhL3BhdGNo X2hkbWkuYyBiL3NvdW5kL3BjaS9oZGEvcGF0Y2hfaGRtaS5jCj4gPiBpbmRleCBkMGQ1YWQ4Li4w NzdkNDhhIDEwMDY0NAo+ID4gLS0tIGEvc291bmQvcGNpL2hkYS9wYXRjaF9oZG1pLmMKPiA+ICsr KyBiL3NvdW5kL3BjaS9oZGEvcGF0Y2hfaGRtaS5jCj4gPiBAQCAtMTQ4NSw3ICsxNDg1LDcgQEAg c3RhdGljIHZvaWQgc3luY19lbGRfdmlhX2Fjb21wKHN0cnVjdCBoZGFfY29kZWMgKmNvZGVjLAo+ ID4gIAo+ID4gIAltdXRleF9sb2NrKCZwZXJfcGluLT5sb2NrKTsKPiA+ICAJZWxkLT5tb25pdG9y X3ByZXNlbnQgPSBmYWxzZTsKPiA+IC0Jc2l6ZSA9IHNuZF9oZGFjX2Fjb21wX2dldF9lbGQoJmNv ZGVjLT5jb3JlLCBwZXJfcGluLT5waW5fbmlkLAo+ID4gKwlzaXplID0gc25kX2hkYWNfYWNvbXBf Z2V0X2VsZCgmY29kZWMtPmNvcmUsIHBlcl9waW4tPnBpbl9uaWQsIC0xLAo+ID4gIAkJCQkgICAg ICAmZWxkLT5tb25pdG9yX3ByZXNlbnQsIGVsZC0+ZWxkX2J1ZmZlciwKPiA+ICAJCQkJICAgICAg RUxEX01BWF9TSVpFKTsKPiA+ICAJaWYgKHNpemUgPiAwKSB7Cj4gPiBAQCAtMTczOSw3ICsxNzM5 LDggQEAgc3RhdGljIGludCBnZW5lcmljX2hkbWlfcGxheWJhY2tfcGNtX3ByZXBhcmUoc3RydWN0 IGhkYV9wY21fc3RyZWFtICpoaW5mbywKPiA+ICAJLyogQ2FsbCBzeW5jX2F1ZGlvX3JhdGUgdG8g c2V0IHRoZSBOL0NUUy9NIG1hbnVhbGx5IGlmIG5lY2Vzc2FyeSAqLwo+ID4gIAkvKiBUb2RvOiBh ZGQgRFAxLjIgTVNUIGF1ZGlvIHN1cHBvcnQgbGF0ZXIgKi8KPiA+ICAJaWYgKGNvZGVjX2hhc19h Y29tcChjb2RlYykpCj4gPiAtCQlzbmRfaGRhY19zeW5jX2F1ZGlvX3JhdGUoJmNvZGVjLT5jb3Jl LCBwaW5fbmlkLCBydW50aW1lLT5yYXRlKTsKPiA+ICsJCXNuZF9oZGFjX3N5bmNfYXVkaW9fcmF0 ZSgmY29kZWMtPmNvcmUsIHBpbl9uaWQsIC0xLAo+ID4gKwkJCQkJIHJ1bnRpbWUtPnJhdGUpOwo+ ID4gIAo+ID4gIAlub25fcGNtID0gY2hlY2tfbm9uX3BjbV9wZXJfY3Z0KGNvZGVjLCBjdnRfbmlk KTsKPiA+ICAJbXV0ZXhfbG9jaygmcGVyX3Bpbi0+bG9jayk7Cj4gPiBAQCAtMjI4NSw3ICsyMjg2 LDcgQEAgc3RhdGljIHZvaWQgaGFzd2VsbF9zZXRfcG93ZXJfc3RhdGUoc3RydWN0IGhkYV9jb2Rl YyAqY29kZWMsIGhkYV9uaWRfdCBmZywKPiA+ICAJc25kX2hkYV9jb2RlY19zZXRfcG93ZXJfdG9f YWxsKGNvZGVjLCBmZywgcG93ZXJfc3RhdGUpOwo+ID4gIH0KPiA+ICAKPiA+IC1zdGF0aWMgdm9p ZCBpbnRlbF9waW5fZWxkX25vdGlmeSh2b2lkICphdWRpb19wdHIsIGludCBwb3J0KQo+ID4gK3N0 YXRpYyB2b2lkIGludGVsX3Bpbl9lbGRfbm90aWZ5KHZvaWQgKmF1ZGlvX3B0ciwgaW50IHBvcnQs IGludCBkZXZfaWQpCj4gPiAgewo+ID4gIAlzdHJ1Y3QgaGRhX2NvZGVjICpjb2RlYyA9IGF1ZGlv X3B0cjsKPiA+ICAJaW50IHBpbl9uaWQ7Cj4gPiAtLSAKPiA+IDIuNS4wCj4gCj4gLS0gCj4gVmls bGUgU3lyasOkbMOkCj4gSW50ZWwgT1RDCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2ludGVsLWdmeAo=