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: Wed, 3 Aug 2016 22:08:12 +0300 Message-ID: <20160803190812.GO4329@intel.com> References: <1470190470-32326-1-git-send-email-dhinakaran.pandiyan@intel.com> <1470190470-32326-2-git-send-email-dhinakaran.pandiyan@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: <1470190470-32326-2-git-send-email-dhinakaran.pandiyan@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Dhinakaran Pandiyan Cc: tiwai@suse.de, intel-gfx@lists.freedesktop.org, alsa-devel@alsa-project.org, libin.yang@linux.intel.com List-Id: alsa-devel@alsa-project.org T24gVHVlLCBBdWcgMDIsIDIwMTYgYXQgMDc6MTQ6MzBQTSAtMDcwMCwgRGhpbmFrYXJhbiBQYW5k aXlhbiB3cm90ZToKPiBEUCBNU1QgcHJvdmlkZXMgdGhlIGNhcGFiaWxpdHkgdG8gc2VuZCBtdWx0 aXBsZSB2aWRlbyBhbmQgYXVkaW8gc3RyZWFtcyB2aWEKPiBvbmUgc2luZ2xlIHBvcnQuIFRoaXMg cmVxdWlyZXMgdGhlIEFQSSdzIGJldHdlZW4gaTkxNSBhbmQgYXVkaW8gZHJpdmVycyB0bwo+IGRp c3Rpbmd1aXNoIGJldHdlZW4gYXVkaW8gY2FwYWJsZSBkaXNwbGF5cyBjb25uZWN0ZWQgdG8gYSBw b3J0LiBUaGlzIHBhdGNoCj4gYWRkcyB0aGlzIHN1cHBvcnQgdmlhIGFuIGFkZGl0aW9uYWwgcGFy YW1ldGVyICdpbnQgZGV2X2lkJy4gVGhlIGV4aXN0aW5nCj4gcGFyYW1ldGVyICdwb3J0JyBkb2Vz IG5vdCBjaGFuZ2UgaXQncyBtZWFuaW5nLgo+IAo+IGRldl9pZCA9Cj4gCU1TVAk6IHBpcGUgdGhh dCB0aGUgc3RyZWFtIG9yaWdpbmF0ZXMgZnJvbQo+IAlOb24tTVNUCTogLTEKPiAKPiBBZmZlY3Rl ZCBBUElzOgo+IHN0cnVjdCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9vcHMKPiAtICAgICAgIGludCAo KnN5bmNfYXVkaW9fcmF0ZSkoc3RydWN0IGRldmljZSAqLCBpbnQgcG9ydCwgaW50IHJhdGUpOwo+ ICsJaW50ICgqc3luY19hdWRpb19yYXRlKShzdHJ1Y3QgZGV2aWNlICosIGludCBwb3J0LCBpbnQg ZGV2X2lkLAoKRG9lcyB0aGUgdGVybSAnZGV2X2lkJyBoYXZlIHNvbWUgc3BlY2lhbCBtZWFuaW5n IG9uIHRoZSBhdWRpbyBzaWRlPyBPbgp0aGUgaTkxNSBzaWRlIHRoaW5ncyB3b3VsZCBiZSBsZXNz IGNvbmZ1c2luZyBpZiB3ZSBqdXN0IGNhbGxlZCBpdAoncGlwZScuCgo+ICsJICAgICBpbnQgcmF0 ZSk7Cj4gCj4gLSAgICAgICBpbnQgKCpnZXRfZWxkKShzdHJ1Y3QgZGV2aWNlICosIGludCBwb3J0 LCBib29sICplbmFibGVkLAo+IC0gICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIg KmJ1ZiwgaW50IG1heF9ieXRlcyk7Cj4gKyAgICAgICBpbnQgKCpnZXRfZWxkKShzdHJ1Y3QgZGV2 aWNlICosIGludCBwb3J0LCBpbnQgZGV2X2lkLAo+ICsJCSAgICAgICBib29sICplbmFibGVkLCB1 bnNpZ25lZCBjaGFyICpidWYsIGludCBtYXhfYnl0ZXMpOwo+IAo+IHN0cnVjdCBpOTE1X2F1ZGlv X2NvbXBvbmVudF9hdWRpb19vcHMKPiAtICAgICAgIHZvaWQgKCpwaW5fZWxkX25vdGlmeSkodm9p ZCAqYXVkaW9fcHRyLCBpbnQgcG9ydCk7Cj4gKyAgICAgICB2b2lkICgqcGluX2VsZF9ub3RpZnkp KHZvaWQgKmF1ZGlvX3B0ciwgaW50IHBvcnQsIGludCBkZXZfaWQpOwo+IAo+IFRoaXMgcGF0Y2gg bWFrZXMgZHVtbXkgY2hhbmdlcyBpbiB0aGUgYXVkaW8gZHJpdmVycyBmb3IgYnVpbGQgdG8gc3Vj Y2VlZC4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBEaGluYWthcmFuIFBhbmRpeWFuIDxkaGluYWthcmFu LnBhbmRpeWFuQGludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuaCAgICB8ICAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F1ZGlvLmMgfCA4 MiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLQo+ICBpbmNsdWRlL2RybS9p OTE1X2NvbXBvbmVudC5oICAgICAgIHwgIDYgKy0tCj4gIGluY2x1ZGUvc291bmQvaGRhX2k5MTUu aCAgICAgICAgICAgfCAxMSArKy0tLQo+ICBzb3VuZC9oZGEvaGRhY19pOTE1LmMgICAgICAgICAg ICAgIHwgIDkgKysrLS0KPiAgc291bmQvcGNpL2hkYS9wYXRjaF9oZG1pLmMgICAgICAgICB8ICA3 ICsrLS0KPiAgNiBmaWxlcyBjaGFuZ2VkLCA4MiBpbnNlcnRpb25zKCspLCAzNSBkZWxldGlvbnMo LSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBpbmRleCA2NWFkYTVkLi44ZTRjOGM4IDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gQEAgLTIwNTQsNyArMjA1NCw3IEBAIHN0cnVj dCBkcm1faTkxNV9wcml2YXRlIHsKPiAgCS8qIHBlcmZvcm0gUEhZIHN0YXRlIHNhbml0eSBjaGVj a3M/ICovCj4gIAlib29sIGNodl9waHlfYXNzZXJ0WzJdOwo+ICAKPiAtCXN0cnVjdCBpbnRlbF9l bmNvZGVyICpkaWdfcG9ydF9tYXBbSTkxNV9NQVhfUE9SVFNdOwo+ICsJc3RydWN0IGludGVsX2Vu Y29kZXIgKmF2X2VuY19tYXBbSTkxNV9NQVhfUElQRVNdOwo+ICAKPiAgCS8qCj4gIAkgKiBOT1RF OiBUaGlzIGlzIHRoZSBkcmkxL3VtcyBkdW5nZW9uLCBkb24ndCBhZGQgc3R1ZmYgaGVyZS4gWW91 ciBwYXRjaAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdWRpby5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXVkaW8uYwo+IGluZGV4IDhjNDkzZGUuLmNi ZTQ0YzggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXVkaW8uYwo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F1ZGlvLmMKPiBAQCAtNTAwLDYgKzUw MCw5IEBAIHZvaWQgaW50ZWxfYXVkaW9fY29kZWNfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVy ICppbnRlbF9lbmNvZGVyKQo+ICAJc3RydWN0IGk5MTVfYXVkaW9fY29tcG9uZW50ICphY29tcCA9 IGRldl9wcml2LT5hdWRpb19jb21wb25lbnQ7Cj4gIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0 ICppbnRlbF9kaWdfcG9ydCA9IGVuY190b19kaWdfcG9ydChlbmNvZGVyKTsKPiAgCWVudW0gcG9y dCBwb3J0ID0gaW50ZWxfZGlnX3BvcnQtPnBvcnQ7Cj4gKwllbnVtIHBpcGUgcGlwZSA9IGNydGMt PnBpcGU7Cj4gKwlpbnQgZGV2X2lkID0gLTE7Cj4gKwo+ICAKPiAgCWNvbm5lY3RvciA9IGRybV9z ZWxlY3RfZWxkKGVuY29kZXIpOwo+ICAJaWYgKCFjb25uZWN0b3IpCj4gQEAgLTUyMiwxNCArNTI1 LDE5IEBAIHZvaWQgaW50ZWxfYXVkaW9fY29kZWNfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVy ICppbnRlbF9lbmNvZGVyKQo+ICAJCWRldl9wcml2LT5kaXNwbGF5LmF1ZGlvX2NvZGVjX2VuYWJs ZShjb25uZWN0b3IsIGludGVsX2VuY29kZXIsCj4gIAkJCQkJCSAgICAgYWRqdXN0ZWRfbW9kZSk7 Cj4gIAo+ICsJaWYgKGludGVsX2VuY29kZXItPnR5cGUgPT0gSU5URUxfT1VUUFVUX0RQX01TVCkK PiArCQlkZXZfaWQgPSBwaXBlOwo+ICsKPiAgCW11dGV4X2xvY2soJmRldl9wcml2LT5hdl9tdXRl eCk7Cj4gIAlpbnRlbF9lbmNvZGVyLT5hdWRpb19jb25uZWN0b3IgPSBjb25uZWN0b3I7Cj4gKwo+ ICAJLyogcmVmZXJyZWQgaW4gYXVkaW8gY2FsbGJhY2tzICovCj4gLQlkZXZfcHJpdi0+ZGlnX3Bv cnRfbWFwW3BvcnRdID0gaW50ZWxfZW5jb2RlcjsKPiArCWRldl9wcml2LT5hdl9lbmNfbWFwW3Bp cGVdID0gaW50ZWxfZW5jb2RlcjsKPiAgCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmF2X211dGV4 KTsKPiAgCj4gIAlpZiAoYWNvbXAgJiYgYWNvbXAtPmF1ZGlvX29wcyAmJiBhY29tcC0+YXVkaW9f b3BzLT5waW5fZWxkX25vdGlmeSkKPiAtCQlhY29tcC0+YXVkaW9fb3BzLT5waW5fZWxkX25vdGlm eShhY29tcC0+YXVkaW9fb3BzLT5hdWRpb19wdHIsIChpbnQpIHBvcnQpOwo+ICsJCWFjb21wLT5h dWRpb19vcHMtPnBpbl9lbGRfbm90aWZ5KGFjb21wLT5hdWRpb19vcHMtPmF1ZGlvX3B0ciwKPiAr CQkJCQkJIChpbnQpIHBvcnQsIGRldl9pZCk7Cj4gIH0KPiAgCj4gIC8qKgo+IEBAIC01NDIsMjIg KzU1MCwyOSBAQCB2b2lkIGludGVsX2F1ZGlvX2NvZGVjX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqaW50ZWxfZW5jb2RlcikKPiAgdm9pZCBpbnRlbF9hdWRpb19jb2RlY19kaXNhYmxlKHN0 cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2Vu Y29kZXIgKmVuY29kZXIgPSAmaW50ZWxfZW5jb2Rlci0+YmFzZTsKPiArCXN0cnVjdCBpbnRlbF9j cnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhlbmNvZGVyLT5jcnRjKTsKPiAgCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXYgPSBlbmNvZGVyLT5kZXY7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gIAlzdHJ1Y3QgaTkxNV9hdWRpb19jb21wb25lbnQg KmFjb21wID0gZGV2X3ByaXYtPmF1ZGlvX2NvbXBvbmVudDsKPiAgCXN0cnVjdCBpbnRlbF9kaWdp dGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0gZW5jX3RvX2RpZ19wb3J0KGVuY29kZXIpOwo+ICAJ ZW51bSBwb3J0IHBvcnQgPSBpbnRlbF9kaWdfcG9ydC0+cG9ydDsKPiArCWVudW0gcGlwZSBwaXBl ID0gY3J0Yy0+cGlwZTsKPiArCWludCBkZXZfaWQgPSAtMTsKPiArCj4gKwlpZiAoaW50ZWxfZW5j b2Rlci0+dHlwZSA9PSBJTlRFTF9PVVRQVVRfRFBfTVNUKQo+ICsJCWRldl9pZCA9IHBpcGU7Cj4g IAo+ICAJaWYgKGRldl9wcml2LT5kaXNwbGF5LmF1ZGlvX2NvZGVjX2Rpc2FibGUpCj4gIAkJZGV2 X3ByaXYtPmRpc3BsYXkuYXVkaW9fY29kZWNfZGlzYWJsZShpbnRlbF9lbmNvZGVyKTsKPiAgCj4g IAltdXRleF9sb2NrKCZkZXZfcHJpdi0+YXZfbXV0ZXgpOwo+ICAJaW50ZWxfZW5jb2Rlci0+YXVk aW9fY29ubmVjdG9yID0gTlVMTDsKPiAtCWRldl9wcml2LT5kaWdfcG9ydF9tYXBbcG9ydF0gPSBO VUxMOwo+ICsJZGV2X3ByaXYtPmF2X2VuY19tYXBbcGlwZV0gPSBOVUxMOwo+ICAJbXV0ZXhfdW5s b2NrKCZkZXZfcHJpdi0+YXZfbXV0ZXgpOwo+ICAKPiAgCWlmIChhY29tcCAmJiBhY29tcC0+YXVk aW9fb3BzICYmIGFjb21wLT5hdWRpb19vcHMtPnBpbl9lbGRfbm90aWZ5KQo+IC0JCWFjb21wLT5h dWRpb19vcHMtPnBpbl9lbGRfbm90aWZ5KGFjb21wLT5hdWRpb19vcHMtPmF1ZGlvX3B0ciwgKGlu dCkgcG9ydCk7Cj4gKwkJYWNvbXAtPmF1ZGlvX29wcy0+cGluX2VsZF9ub3RpZnkoYWNvbXAtPmF1 ZGlvX29wcy0+YXVkaW9fcHRyLAo+ICsJCQkJCQkgKGludCkgcG9ydCwgZGV2X2lkKTsKPiAgfQo+ ICAKPiAgLyoqCj4gQEAgLTYyOCw4ICs2NDMsMzIgQEAgc3RhdGljIGludCBpOTE1X2F1ZGlvX2Nv bXBvbmVudF9nZXRfY2RjbGtfZnJlcShzdHJ1Y3QgZGV2aWNlICpkZXYpCj4gIAlyZXR1cm4gZGV2 X3ByaXYtPmNkY2xrX2ZyZXE7Cj4gIH0KPiAgCj4gLXN0YXRpYyBpbnQgaTkxNV9hdWRpb19jb21w b25lbnRfc3luY19hdWRpb19yYXRlKHN0cnVjdCBkZXZpY2UgKmRldiwKPiAtCQkJCQkJaW50IHBv cnQsIGludCByYXRlKQo+ICtzdGF0aWMgc3RydWN0IGludGVsX2VuY29kZXIgKmdldF9zYXZlZF9l bmNvZGVyKHN0cnVjdCBpbnRlbF9lbmNvZGVyICphdl9lbmNfbWFwW10sCj4gKwkJCQkJICAgICAg IGludCBwb3J0LCBpbnQgZGV2X2lkKQo+ICt7Cj4gKwo+ICsJZW51bSBwaXBlIHBpcGU7Cj4gKwlz dHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXI7Cj4gKwo+ICsJaWYgKGRldl9pZCA+PSAwICYmIGRl dl9pZCA8IEk5MTVfTUFYX1BJUEVTKQo+ICsJCXJldHVybiBhdl9lbmNfbWFwW2Rldl9pZF07Cj4g Kwo+ICsJZm9yIChwaXBlID0gUElQRV9BOyBwaXBlIDwgSTkxNV9NQVhfUElQRVM7IHBpcGUrKykg ewo+ICsKPiArCQlpZiAoIWF2X2VuY19tYXBbcGlwZV0pCj4gKwkJCWNvbnRpbnVlOwo+ICsKPiAr CQllbmNvZGVyID0gJmF2X2VuY19tYXBbcGlwZV0tPmJhc2U7Cj4gKwkJaWYgKHBvcnQgPT0gZW5j X3RvX2RpZ19wb3J0KGVuY29kZXIpLT5wb3J0KQo+ICsJCQlyZXR1cm4gYXZfZW5jX21hcFtwaXBl XTsKPiArCX0KPiArCj4gKwlyZXR1cm4gTlVMTDsKPiArCj4gK30KPiArCj4gK3N0YXRpYyBpbnQg aTkxNV9hdWRpb19jb21wb25lbnRfc3luY19hdWRpb19yYXRlKHN0cnVjdCBkZXZpY2UgKmRldiwg aW50IHBvcnQsCj4gKwkJCQkJCWludCBkZXZfaWQsIGludCByYXRlKQo+ICB7Cj4gIAlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXZfdG9faTkxNShkZXYpOwo+ICAJc3RydWN0 IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXI7Cj4gQEAgLTY0OSwxNSArNjg4LDE2IEBAIHN0 YXRpYyBpbnQgaTkxNV9hdWRpb19jb21wb25lbnRfc3luY19hdWRpb19yYXRlKHN0cnVjdCBkZXZp Y2UgKmRldiwKPiAgCQlyZXR1cm4gMDsKPiAgCj4gIAltdXRleF9sb2NrKCZkZXZfcHJpdi0+YXZf bXV0ZXgpOwo+ICsKPiAgCS8qIDEuIGdldCB0aGUgcGlwZSAqLwo+IC0JaW50ZWxfZW5jb2RlciA9 IGRldl9wcml2LT5kaWdfcG9ydF9tYXBbcG9ydF07Cj4gLQkvKiBpbnRlbF9lbmNvZGVyIG1pZ2h0 IGJlIE5VTEwgZm9yIERQIE1TVCAqLwo+ICsJaW50ZWxfZW5jb2RlciA9IGdldF9zYXZlZF9lbmNv ZGVyKGRldl9wcml2LT5hdl9lbmNfbWFwLCBwb3J0LCBkZXZfaWQpOwo+ICAJaWYgKCFpbnRlbF9l bmNvZGVyIHx8ICFpbnRlbF9lbmNvZGVyLT5iYXNlLmNydGMgfHwKPiAgCSAgICBpbnRlbF9lbmNv ZGVyLT50eXBlICE9IElOVEVMX09VVFBVVF9IRE1JKSB7Cj4gIAkJRFJNX0RFQlVHX0tNUygibm8g dmFsaWQgcG9ydCAlY1xuIiwgcG9ydF9uYW1lKHBvcnQpKTsKPiAgCQllcnIgPSAtRU5PREVWOwo+ ICAJCWdvdG8gdW5sb2NrOwo+ICAJfQo+ICsKPiAgCWNydGMgPSB0b19pbnRlbF9jcnRjKGludGVs X2VuY29kZXItPmJhc2UuY3J0Yyk7Cj4gIAlwaXBlID0gY3J0Yy0+cGlwZTsKPiAgCWlmIChwaXBl ID09IElOVkFMSURfUElQRSkgewo+IEBAIC03MDIsNyArNzQyLDcgQEAgc3RhdGljIGludCBpOTE1 X2F1ZGlvX2NvbXBvbmVudF9zeW5jX2F1ZGlvX3JhdGUoc3RydWN0IGRldmljZSAqZGV2LAo+ICB9 Cj4gIAo+ICBzdGF0aWMgaW50IGk5MTVfYXVkaW9fY29tcG9uZW50X2dldF9lbGQoc3RydWN0IGRl dmljZSAqZGV2LCBpbnQgcG9ydCwKPiAtCQkJCQlib29sICplbmFibGVkLAo+ICsJCQkJCWludCBk ZXZfaWQsIGJvb2wgKmVuYWJsZWQsCj4gIAkJCQkJdW5zaWduZWQgY2hhciAqYnVmLCBpbnQgbWF4 X2J5dGVzKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXZf dG9faTkxNShkZXYpOwo+IEBAIC03MTAsMTcgKzc1MCwyMSBAQCBzdGF0aWMgaW50IGk5MTVfYXVk aW9fY29tcG9uZW50X2dldF9lbGQoc3RydWN0IGRldmljZSAqZGV2LCBpbnQgcG9ydCwKPiAgCWNv bnN0IHU4ICplbGQ7Cj4gIAlpbnQgcmV0ID0gLUVJTlZBTDsKPiAgCj4gKwo+ICAJbXV0ZXhfbG9j aygmZGV2X3ByaXYtPmF2X211dGV4KTsKPiAtCWludGVsX2VuY29kZXIgPSBkZXZfcHJpdi0+ZGln X3BvcnRfbWFwW3BvcnRdOwo+IC0JLyogaW50ZWxfZW5jb2RlciBtaWdodCBiZSBOVUxMIGZvciBE UCBNU1QgKi8KPiAtCWlmIChpbnRlbF9lbmNvZGVyKSB7Cj4gLQkJcmV0ID0gMDsKPiAtCQkqZW5h YmxlZCA9IGludGVsX2VuY29kZXItPmF1ZGlvX2Nvbm5lY3RvciAhPSBOVUxMOwo+IC0JCWlmICgq ZW5hYmxlZCkgewo+IC0JCQllbGQgPSBpbnRlbF9lbmNvZGVyLT5hdWRpb19jb25uZWN0b3ItPmVs ZDsKPiAtCQkJcmV0ID0gZHJtX2VsZF9zaXplKGVsZCk7Cj4gLQkJCW1lbWNweShidWYsIGVsZCwg bWluKG1heF9ieXRlcywgcmV0KSk7Cj4gLQkJfQo+ICsKPiArCWludGVsX2VuY29kZXIgPSBnZXRf c2F2ZWRfZW5jb2RlcihkZXZfcHJpdi0+YXZfZW5jX21hcCwgcG9ydCwgZGV2X2lkKTsKPiArCWlm ICghaW50ZWxfZW5jb2Rlcikgewo+ICsJCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmF2X211dGV4 KTsKPiArCQlyZXR1cm4gcmV0Owo+ICsJfQo+ICsKPiArCXJldCA9IDA7Cj4gKwkqZW5hYmxlZCA9 IGludGVsX2VuY29kZXItPmF1ZGlvX2Nvbm5lY3RvciAhPSBOVUxMOwo+ICsJaWYgKCplbmFibGVk KSB7Cj4gKwkJZWxkID0gaW50ZWxfZW5jb2Rlci0+YXVkaW9fY29ubmVjdG9yLT5lbGQ7Cj4gKwkJ cmV0ID0gZHJtX2VsZF9zaXplKGVsZCk7Cj4gKwkJbWVtY3B5KGJ1ZiwgZWxkLCBtaW4obWF4X2J5 dGVzLCByZXQpKTsKPiAgCX0KPiAgCj4gIAltdXRleF91bmxvY2soJmRldl9wcml2LT5hdl9tdXRl eCk7Cj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2k5MTVfY29tcG9uZW50LmggYi9pbmNsdWRl L2RybS9pOTE1X2NvbXBvbmVudC5oCj4gaW5kZXggYjQ2ZmEwZS4uMTQxOWM5OCAxMDA2NDQKPiAt LS0gYS9pbmNsdWRlL2RybS9pOTE1X2NvbXBvbmVudC5oCj4gKysrIGIvaW5jbHVkZS9kcm0vaTkx NV9jb21wb25lbnQuaAo+IEBAIC02NCw3ICs2NCw3IEBAIHN0cnVjdCBpOTE1X2F1ZGlvX2NvbXBv bmVudF9vcHMgewo+ICAJICogQ2FsbGVkIGZyb20gYXVkaW8gZHJpdmVyLiBBZnRlciBhdWRpbyBk cml2ZXIgc2V0cyB0aGUKPiAgCSAqIHNhbXBsZSByYXRlLCBpdCB3aWxsIGNhbGwgdGhpcyBmdW5j dGlvbiB0byBzZXQgbi9jdHMKPiAgCSAqLwo+IC0JaW50ICgqc3luY19hdWRpb19yYXRlKShzdHJ1 Y3QgZGV2aWNlICosIGludCBwb3J0LCBpbnQgcmF0ZSk7Cj4gKwlpbnQgKCpzeW5jX2F1ZGlvX3Jh dGUpKHN0cnVjdCBkZXZpY2UgKiwgaW50IHBvcnQsIGludCBkZXZfaWQsIGludCByYXRlKTsKPiAg CS8qKgo+ICAJICogQGdldF9lbGQ6IGZpbGwgdGhlIGF1ZGlvIHN0YXRlIGFuZCBFTEQgYnl0ZXMg Zm9yIHRoZSBnaXZlbiBwb3J0Cj4gIAkgKgo+IEBAIC03Nyw3ICs3Nyw3IEBAIHN0cnVjdCBpOTE1 X2F1ZGlvX2NvbXBvbmVudF9vcHMgewo+ICAJICogTm90ZSB0aGF0IHRoZSByZXR1cm5lZCBzaXpl IG1heSBiZSBvdmVyIEBtYXhfYnl0ZXMuICBUaGVuIGl0Cj4gIAkgKiBpbXBsaWVzIHRoYXQgb25s eSBhIHBhcnQgb2YgRUxEIGhhcyBiZWVuIGNvcGllZCB0byB0aGUgYnVmZmVyLgo+ICAJICovCj4g LQlpbnQgKCpnZXRfZWxkKShzdHJ1Y3QgZGV2aWNlICosIGludCBwb3J0LCBib29sICplbmFibGVk LAo+ICsJaW50ICgqZ2V0X2VsZCkoc3RydWN0IGRldmljZSAqLCBpbnQgcG9ydCwgaW50IGRldl9p ZCwgYm9vbCAqZW5hYmxlZCwKPiAgCQkgICAgICAgdW5zaWduZWQgY2hhciAqYnVmLCBpbnQgbWF4 X2J5dGVzKTsKPiAgfTsKPiAgCj4gQEAgLTk3LDcgKzk3LDcgQEAgc3RydWN0IGk5MTVfYXVkaW9f Y29tcG9uZW50X2F1ZGlvX29wcyB7Cj4gIAkgKiBzdGF0dXMgYWNjb3JkaW5nbHkgKGV2ZW4gd2hl biB0aGUgSERBIGNvbnRyb2xsZXIgaXMgaW4gcG93ZXIgc2F2ZQo+ICAJICogbW9kZSkuCj4gIAkg Ki8KPiAtCXZvaWQgKCpwaW5fZWxkX25vdGlmeSkodm9pZCAqYXVkaW9fcHRyLCBpbnQgcG9ydCk7 Cj4gKwl2b2lkICgqcGluX2VsZF9ub3RpZnkpKHZvaWQgKmF1ZGlvX3B0ciwgaW50IHBvcnQsIGlu dCBkZXZfaWQpOwo+ICB9Owo+ICAKPiAgLyoqCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvc291bmQv aGRhX2k5MTUuaCBiL2luY2x1ZGUvc291bmQvaGRhX2k5MTUuaAo+IGluZGV4IDc5NmNhYmYuLjVh Yjk3MmUgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9zb3VuZC9oZGFfaTkxNS5oCj4gKysrIGIvaW5j bHVkZS9zb3VuZC9oZGFfaTkxNS5oCj4gQEAgLTEwLDggKzEwLDkgQEAKPiAgaW50IHNuZF9oZGFj X3NldF9jb2RlY193YWtldXAoc3RydWN0IGhkYWNfYnVzICpidXMsIGJvb2wgZW5hYmxlKTsKPiAg aW50IHNuZF9oZGFjX2Rpc3BsYXlfcG93ZXIoc3RydWN0IGhkYWNfYnVzICpidXMsIGJvb2wgZW5h YmxlKTsKPiAgdm9pZCBzbmRfaGRhY19pOTE1X3NldF9iY2xrKHN0cnVjdCBoZGFjX2J1cyAqYnVz KTsKPiAtaW50IHNuZF9oZGFjX3N5bmNfYXVkaW9fcmF0ZShzdHJ1Y3QgaGRhY19kZXZpY2UgKmNv ZGVjLCBoZGFfbmlkX3QgbmlkLCBpbnQgcmF0ZSk7Cj4gLWludCBzbmRfaGRhY19hY29tcF9nZXRf ZWxkKHN0cnVjdCBoZGFjX2RldmljZSAqY29kZWMsIGhkYV9uaWRfdCBuaWQsCj4gK2ludCBzbmRf aGRhY19zeW5jX2F1ZGlvX3JhdGUoc3RydWN0IGhkYWNfZGV2aWNlICpjb2RlYywgaGRhX25pZF90 IG5pZCwKPiArCQkJICAgICBpbnQgZGV2X2lkLCBpbnQgcmF0ZSk7Cj4gK2ludCBzbmRfaGRhY19h Y29tcF9nZXRfZWxkKHN0cnVjdCBoZGFjX2RldmljZSAqY29kZWMsIGhkYV9uaWRfdCBuaWQsIGlu dCBkZXZfaWQsCj4gIAkJCSAgIGJvb2wgKmF1ZGlvX2VuYWJsZWQsIGNoYXIgKmJ1ZmZlciwgaW50 IG1heF9ieXRlcyk7Cj4gIGludCBzbmRfaGRhY19pOTE1X2luaXQoc3RydWN0IGhkYWNfYnVzICpi dXMpOwo+ICBpbnQgc25kX2hkYWNfaTkxNV9leGl0KHN0cnVjdCBoZGFjX2J1cyAqYnVzKTsKPiBA QCAtMjksMTMgKzMwLDEzIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBzbmRfaGRhY19pOTE1X3NldF9i Y2xrKHN0cnVjdCBoZGFjX2J1cyAqYnVzKQo+ICB7Cj4gIH0KPiAgc3RhdGljIGlubGluZSBpbnQg c25kX2hkYWNfc3luY19hdWRpb19yYXRlKHN0cnVjdCBoZGFjX2RldmljZSAqY29kZWMsCj4gLQkJ CQkJICAgaGRhX25pZF90IG5pZCwgaW50IHJhdGUpCj4gKwkJCQkJICAgaGRhX25pZF90IG5pZCwg aW50IGRldl9pZCwgaW50IHJhdGUpCj4gIHsKPiAgCXJldHVybiAwOwo+ICB9Cj4gIHN0YXRpYyBp bmxpbmUgaW50IHNuZF9oZGFjX2Fjb21wX2dldF9lbGQoc3RydWN0IGhkYWNfZGV2aWNlICpjb2Rl YywgaGRhX25pZF90IG5pZCwKPiAtCQkJCQkgYm9vbCAqYXVkaW9fZW5hYmxlZCwgY2hhciAqYnVm ZmVyLAo+IC0JCQkJCSBpbnQgbWF4X2J5dGVzKQo+ICsJCQkJCSBpbnQgZGV2X2lkLCBib29sICph dWRpb19lbmFibGVkLAo+ICsJCQkJCSBjaGFyICpidWZmZXIsIGludCBtYXhfYnl0ZXMpCj4gIHsK PiAgCXJldHVybiAtRU5PREVWOwo+ICB9Cj4gZGlmZiAtLWdpdCBhL3NvdW5kL2hkYS9oZGFjX2k5 MTUuYyBiL3NvdW5kL2hkYS9oZGFjX2k5MTUuYwo+IGluZGV4IGM5YWYwMjIuLjZlYTYzYWMgMTAw NjQ0Cj4gLS0tIGEvc291bmQvaGRhL2hkYWNfaTkxNS5jCj4gKysrIGIvc291bmQvaGRhL2hkYWNf aTkxNS5jCj4gQEAgLTIwMSw3ICsyMDEsOCBAQCBzdGF0aWMgaW50IHBpbjJwb3J0KHN0cnVjdCBo ZGFjX2RldmljZSAqY29kZWMsIGhkYV9uaWRfdCBwaW5fbmlkKQo+ICAgKiBUaGlzIGZ1bmN0aW9u IHNldHMgTi9DVFMgdmFsdWUgYmFzZWQgb24gdGhlIGdpdmVuIHNhbXBsZSByYXRlLgo+ICAgKiBS ZXR1cm5zIHplcm8gZm9yIHN1Y2Nlc3MsIG9yIGEgbmVnYXRpdmUgZXJyb3IgY29kZS4KPiAgICov Cj4gLWludCBzbmRfaGRhY19zeW5jX2F1ZGlvX3JhdGUoc3RydWN0IGhkYWNfZGV2aWNlICpjb2Rl YywgaGRhX25pZF90IG5pZCwgaW50IHJhdGUpCj4gK2ludCBzbmRfaGRhY19zeW5jX2F1ZGlvX3Jh dGUoc3RydWN0IGhkYWNfZGV2aWNlICpjb2RlYywgaGRhX25pZF90IG5pZCwKPiArCQkJICAgICBp bnQgZGV2X2lkLCBpbnQgcmF0ZSkKPiAgewo+ICAJc3RydWN0IGhkYWNfYnVzICpidXMgPSBjb2Rl Yy0+YnVzOwo+ICAJc3RydWN0IGk5MTVfYXVkaW9fY29tcG9uZW50ICphY29tcCA9IGJ1cy0+YXVk aW9fY29tcG9uZW50Owo+IEBAIC0yMTIsNyArMjEzLDcgQEAgaW50IHNuZF9oZGFjX3N5bmNfYXVk aW9fcmF0ZShzdHJ1Y3QgaGRhY19kZXZpY2UgKmNvZGVjLCBoZGFfbmlkX3QgbmlkLCBpbnQgcmF0 ZSkKPiAgCXBvcnQgPSBwaW4ycG9ydChjb2RlYywgbmlkKTsKPiAgCWlmIChwb3J0IDwgMCkKPiAg CQlyZXR1cm4gLUVJTlZBTDsKPiAtCXJldHVybiBhY29tcC0+b3BzLT5zeW5jX2F1ZGlvX3JhdGUo YWNvbXAtPmRldiwgcG9ydCwgcmF0ZSk7Cj4gKwlyZXR1cm4gYWNvbXAtPm9wcy0+c3luY19hdWRp b19yYXRlKGFjb21wLT5kZXYsIHBvcnQsIGRldl9pZCwgcmF0ZSk7Cj4gIH0KPiAgRVhQT1JUX1NZ TUJPTF9HUEwoc25kX2hkYWNfc3luY19hdWRpb19yYXRlKTsKPiAgCj4gQEAgLTIzNiw3ICsyMzcs NyBAQCBFWFBPUlRfU1lNQk9MX0dQTChzbmRfaGRhY19zeW5jX2F1ZGlvX3JhdGUpOwo+ICAgKiB0 aHVzIGl0IG1heSBiZSBvdmVyIEBtYXhfYnl0ZXMuICBJZiBpdCdzIG92ZXIgQG1heF9ieXRlcywg aXQgaW1wbGllcwo+ICAgKiB0aGF0IG9ubHkgYSBwYXJ0IG9mIEVMRCBieXRlcyBoYXZlIGJlZW4g ZmV0Y2hlZC4KPiAgICovCj4gLWludCBzbmRfaGRhY19hY29tcF9nZXRfZWxkKHN0cnVjdCBoZGFj X2RldmljZSAqY29kZWMsIGhkYV9uaWRfdCBuaWQsCj4gK2ludCBzbmRfaGRhY19hY29tcF9nZXRf ZWxkKHN0cnVjdCBoZGFjX2RldmljZSAqY29kZWMsIGhkYV9uaWRfdCBuaWQsIGludCBkZXZfaWQs Cj4gIAkJCSAgIGJvb2wgKmF1ZGlvX2VuYWJsZWQsIGNoYXIgKmJ1ZmZlciwgaW50IG1heF9ieXRl cykKPiAgewo+ICAJc3RydWN0IGhkYWNfYnVzICpidXMgPSBjb2RlYy0+YnVzOwo+IEBAIC0yNDks NyArMjUwLDcgQEAgaW50IHNuZF9oZGFjX2Fjb21wX2dldF9lbGQoc3RydWN0IGhkYWNfZGV2aWNl ICpjb2RlYywgaGRhX25pZF90IG5pZCwKPiAgCXBvcnQgPSBwaW4ycG9ydChjb2RlYywgbmlkKTsK PiAgCWlmIChwb3J0IDwgMCkKPiAgCQlyZXR1cm4gLUVJTlZBTDsKPiAtCXJldHVybiBhY29tcC0+ b3BzLT5nZXRfZWxkKGFjb21wLT5kZXYsIHBvcnQsIGF1ZGlvX2VuYWJsZWQsCj4gKwlyZXR1cm4g YWNvbXAtPm9wcy0+Z2V0X2VsZChhY29tcC0+ZGV2LCBwb3J0LCBkZXZfaWQsIGF1ZGlvX2VuYWJs ZWQsCj4gIAkJCQkgICBidWZmZXIsIG1heF9ieXRlcyk7Cj4gIH0KPiAgRVhQT1JUX1NZTUJPTF9H UEwoc25kX2hkYWNfYWNvbXBfZ2V0X2VsZCk7Cj4gZGlmZiAtLWdpdCBhL3NvdW5kL3BjaS9oZGEv cGF0Y2hfaGRtaS5jIGIvc291bmQvcGNpL2hkYS9wYXRjaF9oZG1pLmMKPiBpbmRleCBkMGQ1YWQ4 Li4wNzdkNDhhIDEwMDY0NAo+IC0tLSBhL3NvdW5kL3BjaS9oZGEvcGF0Y2hfaGRtaS5jCj4gKysr IGIvc291bmQvcGNpL2hkYS9wYXRjaF9oZG1pLmMKPiBAQCAtMTQ4NSw3ICsxNDg1LDcgQEAgc3Rh dGljIHZvaWQgc3luY19lbGRfdmlhX2Fjb21wKHN0cnVjdCBoZGFfY29kZWMgKmNvZGVjLAo+ICAK PiAgCW11dGV4X2xvY2soJnBlcl9waW4tPmxvY2spOwo+ICAJZWxkLT5tb25pdG9yX3ByZXNlbnQg PSBmYWxzZTsKPiAtCXNpemUgPSBzbmRfaGRhY19hY29tcF9nZXRfZWxkKCZjb2RlYy0+Y29yZSwg cGVyX3Bpbi0+cGluX25pZCwKPiArCXNpemUgPSBzbmRfaGRhY19hY29tcF9nZXRfZWxkKCZjb2Rl Yy0+Y29yZSwgcGVyX3Bpbi0+cGluX25pZCwgLTEsCj4gIAkJCQkgICAgICAmZWxkLT5tb25pdG9y X3ByZXNlbnQsIGVsZC0+ZWxkX2J1ZmZlciwKPiAgCQkJCSAgICAgIEVMRF9NQVhfU0laRSk7Cj4g IAlpZiAoc2l6ZSA+IDApIHsKPiBAQCAtMTczOSw3ICsxNzM5LDggQEAgc3RhdGljIGludCBnZW5l cmljX2hkbWlfcGxheWJhY2tfcGNtX3ByZXBhcmUoc3RydWN0IGhkYV9wY21fc3RyZWFtICpoaW5m bywKPiAgCS8qIENhbGwgc3luY19hdWRpb19yYXRlIHRvIHNldCB0aGUgTi9DVFMvTSBtYW51YWxs eSBpZiBuZWNlc3NhcnkgKi8KPiAgCS8qIFRvZG86IGFkZCBEUDEuMiBNU1QgYXVkaW8gc3VwcG9y dCBsYXRlciAqLwo+ICAJaWYgKGNvZGVjX2hhc19hY29tcChjb2RlYykpCj4gLQkJc25kX2hkYWNf c3luY19hdWRpb19yYXRlKCZjb2RlYy0+Y29yZSwgcGluX25pZCwgcnVudGltZS0+cmF0ZSk7Cj4g KwkJc25kX2hkYWNfc3luY19hdWRpb19yYXRlKCZjb2RlYy0+Y29yZSwgcGluX25pZCwgLTEsCj4g KwkJCQkJIHJ1bnRpbWUtPnJhdGUpOwo+ICAKPiAgCW5vbl9wY20gPSBjaGVja19ub25fcGNtX3Bl cl9jdnQoY29kZWMsIGN2dF9uaWQpOwo+ICAJbXV0ZXhfbG9jaygmcGVyX3Bpbi0+bG9jayk7Cj4g QEAgLTIyODUsNyArMjI4Niw3IEBAIHN0YXRpYyB2b2lkIGhhc3dlbGxfc2V0X3Bvd2VyX3N0YXRl KHN0cnVjdCBoZGFfY29kZWMgKmNvZGVjLCBoZGFfbmlkX3QgZmcsCj4gIAlzbmRfaGRhX2NvZGVj X3NldF9wb3dlcl90b19hbGwoY29kZWMsIGZnLCBwb3dlcl9zdGF0ZSk7Cj4gIH0KPiAgCj4gLXN0 YXRpYyB2b2lkIGludGVsX3Bpbl9lbGRfbm90aWZ5KHZvaWQgKmF1ZGlvX3B0ciwgaW50IHBvcnQp Cj4gK3N0YXRpYyB2b2lkIGludGVsX3Bpbl9lbGRfbm90aWZ5KHZvaWQgKmF1ZGlvX3B0ciwgaW50 IHBvcnQsIGludCBkZXZfaWQpCj4gIHsKPiAgCXN0cnVjdCBoZGFfY29kZWMgKmNvZGVjID0gYXVk aW9fcHRyOwo+ICAJaW50IHBpbl9uaWQ7Cj4gLS0gCj4gMi41LjAKCi0tIApWaWxsZSBTeXJqw6Rs w6QKSW50ZWwgT1RDCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdm eAo=