From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dhinakaran Pandiyan Subject: [PATCH v5] drm/i915/dp: DP audio API changes for MST Date: Tue, 20 Sep 2016 13:17:01 -0700 Message-ID: <1474402621-884-1-git-send-email-dhinakaran.pandiyan@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org Cc: alsa-devel@alsa-project.org, tiwai@suse.de, jeeja.kp@intel.com, libin.yang@linux.intel.com, "Pandiyan, Dhinakaran" List-Id: alsa-devel@alsa-project.org RnJvbTogIlBhbmRpeWFuLCBEaGluYWthcmFuIiA8ZGhpbmFrYXJhbi5wYW5kaXlhbkBpbnRlbC5j b20+CgpEUCBNU1QgcHJvdmlkZXMgdGhlIGNhcGFiaWxpdHkgdG8gc2VuZCBtdWx0aXBsZSB2aWRl byBhbmQgYXVkaW8gc3RyZWFtcwp0aHJvdWdoIGEgc2luZ2xlIHBvcnQuIFRoaXMgcmVxdWlyZXMg dGhlIEFQSSdzIGJldHdlZW4gaTkxNSBhbmQgYXVkaW8KZHJpdmVycyB0byBkaXN0aW5ndWlzaCBi ZXR3ZWVuIG11bHRpcGxlIGF1ZGlvIGNhcGFibGUgZGlzcGxheXMgdGhhdCBjYW4gYmUKY29ubmVj dGVkIHRvIGEgcG9ydC4gQ3VycmVudGx5IG9ubHkgdGhlIHBvcnQgaWRlbnRpdHkgaXMgc2hhcmVk IGluIHRoZQpBUElzLiBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgTVNUIHdpdGggYW4gYWRk aXRpb25hbCBwYXJhbWV0ZXIKJ2ludCBwaXBlJy4gVGhlIGV4aXN0aW5nIHBhcmFtZXRlciAncG9y dCcgZG9lcyBub3QgY2hhbmdlIGl0J3MgbWVhbmluZy4KCnBpcGUgPQoJTVNUCTogZGlzcGxheSBw aXBlIHRoYXQgdGhlIHN0cmVhbSBvcmlnaW5hdGVzIGZyb20KCU5vbi1NU1QJOiAtMQoKQWZmZWN0 ZWQgQVBJczoKc3RydWN0IGk5MTVfYXVkaW9fY29tcG9uZW50X29wcwotICAgICAgIGludCAoKnN5 bmNfYXVkaW9fcmF0ZSkoc3RydWN0IGRldmljZSAqLCBpbnQgcG9ydCwgaW50IHJhdGUpOworCWlu dCAoKnN5bmNfYXVkaW9fcmF0ZSkoc3RydWN0IGRldmljZSAqLCBpbnQgcG9ydCwgaW50IHBpcGUs CisJICAgICBpbnQgcmF0ZSk7CgotICAgICAgIGludCAoKmdldF9lbGQpKHN0cnVjdCBkZXZpY2Ug KiwgaW50IHBvcnQsIGJvb2wgKmVuYWJsZWQsCi0gICAgICAgICAgICAgICAgICAgICAgIHVuc2ln bmVkIGNoYXIgKmJ1ZiwgaW50IG1heF9ieXRlcyk7CisgICAgICAgaW50ICgqZ2V0X2VsZCkoc3Ry dWN0IGRldmljZSAqLCBpbnQgcG9ydCwgaW50IHBpcGUsCisJCSAgICAgICBib29sICplbmFibGVk LCB1bnNpZ25lZCBjaGFyICpidWYsIGludCBtYXhfYnl0ZXMpOwoKc3RydWN0IGk5MTVfYXVkaW9f Y29tcG9uZW50X2F1ZGlvX29wcwotICAgICAgIHZvaWQgKCpwaW5fZWxkX25vdGlmeSkodm9pZCAq YXVkaW9fcHRyLCBpbnQgcG9ydCk7CisgICAgICAgdm9pZCAoKnBpbl9lbGRfbm90aWZ5KSh2b2lk ICphdWRpb19wdHIsIGludCBwb3J0LCBpbnQgcGlwZSk7CgpUaGlzIHBhdGNoIG1ha2VzIGR1bW15 IGNoYW5nZXMgaW4gdGhlIGF1ZGlvIGRyaXZlcnMgKHRoYW5rcyBMaWJpbikgZm9yCmJ1aWxkIHRv IHN1Y2NlZWQuIFRoZSBhdWRpbyBzaWRlIGRyaXZlcnMgd2lsbCBzZW5kIHRoZSByaWdodCAncGlw ZScgdmFsdWVzCmZvciBNU1QgaW4gcGF0Y2hlcyB0aGF0IHdpbGwgZm9sbG93LgoKdjI6ClJlbmFt ZWQgdGhlIG5ldyBBUEkgcGFyYW1ldGVyIGZyb20gJ2Rldl9pZCcgdG8gJ3BpcGUnLiAoSmltLCBW aWxsZSkKSW5jbHVkZWQgQXNvYyBkcml2ZXIgQVBJIGNvbXBhdGliaWxpdHkgY2hhbmdlcyBmcm9t IEplZWphLgpBZGRlZCBXQVJOX09OKCkgZm9yIGludmFsaWQgcGlwZSBpbiBnZXRfc2F2ZWRfZW5j b2RlcigpLiAoVGFrYXNoaSkKQWRkZWQgY29tbWVudCBmb3IgYXZfZW5jX21hcFtdIGRlZmluaXRp b24uIChUYWthc2hpKQoKdjM6CkZpeGVkIGxvZ2ljIGVycm9yIGludHJvZHVjZWQgd2hpbGUgcmVu YW1pbmcgJ2Rldl9pZCcgYXMgJ3BpcGUnIChWaWxsZSkKUmVuYW1lZCBnZXRfc2F2ZWRfZW5jb2Rl cigpIHRvIGdldF9zYXZlZF9lbmMoKSB0byByZWR1Y2UgbGluZSBsZW5ndGgKCnY0OgpSZWJhc2Vk LgpQYXJhbWV0ZXIgY2hlY2sgZm9yIHBpcGUgPCAtMSB2YWx1ZXMgaW4gZ2V0X3NhdmVkX2VuYygp IChWaWxsZSkKU3dpdGNoZWQgdG8gZm9yX2VhY2hfcGlwZSgpIGluIGdldF9zYXZlZF9lbmMoKSAo VmlsbGUpClJlbmFtZWQgJ3BpcGUnIHRvICdkZXZfaWQnIGluIGF1ZGlvIHNpZGUgY29kZSAoVGFr YXNoaSkKCnY1OgpJbmNsdWRlZCBhIGNvbW1lbnQgZm9yIHRoZSBkZXZfaWQgYXJnLiAoTGliaW4p CgpTaWduZWQtb2ZmLWJ5OiBEaGluYWthcmFuIFBhbmRpeWFuIDxkaGluYWthcmFuLnBhbmRpeWFu QGludGVsLmNvbT4KUmV2aWV3ZWQtYnk6IFRha2FzaGkgSXdhaSA8dGl3YWlAc3VzZS5kZT4KUmV2 aWV3ZWQtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+ Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICB8ICAzICstCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9hdWRpby5jIHwgOTQgKysrKysrKysrKysrKysrKysrKysrKysr KystLS0tLS0tLS0tLS0KIGluY2x1ZGUvZHJtL2k5MTVfY29tcG9uZW50LmggICAgICAgfCAgNiAr LS0KIGluY2x1ZGUvc291bmQvaGRhX2k5MTUuaCAgICAgICAgICAgfCAxMSArKystLQogc291bmQv aGRhL2hkYWNfaTkxNS5jICAgICAgICAgICAgICB8IDE4ICsrKysrLS0tCiBzb3VuZC9wY2kvaGRh L3BhdGNoX2hkbWkuYyAgICAgICAgIHwgIDcgKy0tCiBzb3VuZC9zb2MvY29kZWNzL2hkYWNfaGRt aS5jICAgICAgIHwgIDIgKy0KIDcgZmlsZXMgY2hhbmdlZCwgOTQgaW5zZXJ0aW9ucygrKSwgNDcg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKaW5kZXggMjcwNTQzYy4uZmUxNGNj YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCkBAIC0yMDgwLDcgKzIwODAsOCBAQCBzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSB7CiAJLyogcGVyZm9ybSBQSFkgc3RhdGUgc2FuaXR5IGNoZWNrcz8g Ki8KIAlib29sIGNodl9waHlfYXNzZXJ0WzJdOwogCi0Jc3RydWN0IGludGVsX2VuY29kZXIgKmRp Z19wb3J0X21hcFtJOTE1X01BWF9QT1JUU107CisJLyogVXNlZCB0byBzYXZlIHRoZSBwaXBlLXRv LWVuY29kZXIgbWFwcGluZyBmb3IgYXVkaW8gKi8KKwlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqYXZf ZW5jX21hcFtJOTE1X01BWF9QSVBFU107CiAKIAkvKgogCSAqIE5PVEU6IFRoaXMgaXMgdGhlIGRy aTEvdW1zIGR1bmdlb24sIGRvbid0IGFkZCBzdHVmZiBoZXJlLiBZb3VyIHBhdGNoCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdWRpby5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfYXVkaW8uYwppbmRleCA0MGZiZGQ4Li45NTgzZjQzIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdWRpby5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2F1ZGlvLmMKQEAgLTQ5MSw2ICs0OTEsNyBAQCB2b2lkIGludGVsX2F1ZGlvX2Nv ZGVjX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlcikKIAlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmRldik7CiAJc3Ry dWN0IGk5MTVfYXVkaW9fY29tcG9uZW50ICphY29tcCA9IGRldl9wcml2LT5hdWRpb19jb21wb25l bnQ7CiAJZW51bSBwb3J0IHBvcnQgPSBpbnRlbF9lbmNvZGVyLT5wb3J0OworCWVudW0gcGlwZSBw aXBlID0gY3J0Yy0+cGlwZTsKIAogCWNvbm5lY3RvciA9IGRybV9zZWxlY3RfZWxkKGVuY29kZXIp OwogCWlmICghY29ubmVjdG9yKQpAQCAtNTE1LDEyICs1MTYsMTggQEAgdm9pZCBpbnRlbF9hdWRp b19jb2RlY19lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIpCiAKIAlt dXRleF9sb2NrKCZkZXZfcHJpdi0+YXZfbXV0ZXgpOwogCWludGVsX2VuY29kZXItPmF1ZGlvX2Nv bm5lY3RvciA9IGNvbm5lY3RvcjsKKwogCS8qIHJlZmVycmVkIGluIGF1ZGlvIGNhbGxiYWNrcyAq LwotCWRldl9wcml2LT5kaWdfcG9ydF9tYXBbcG9ydF0gPSBpbnRlbF9lbmNvZGVyOworCWRldl9w cml2LT5hdl9lbmNfbWFwW3BpcGVdID0gaW50ZWxfZW5jb2RlcjsKIAltdXRleF91bmxvY2soJmRl dl9wcml2LT5hdl9tdXRleCk7CiAKKwkvKiBhdWRpbyBkcml2ZXJzIGV4cGVjdCBwaXBlID0gLTEg dG8gaW5kaWNhdGUgTm9uLU1TVCBjYXNlcyAqLworCWlmIChpbnRlbF9lbmNvZGVyLT50eXBlICE9 IElOVEVMX09VVFBVVF9EUF9NU1QpCisJCXBpcGUgPSAtMTsKKwogCWlmIChhY29tcCAmJiBhY29t cC0+YXVkaW9fb3BzICYmIGFjb21wLT5hdWRpb19vcHMtPnBpbl9lbGRfbm90aWZ5KQotCQlhY29t cC0+YXVkaW9fb3BzLT5waW5fZWxkX25vdGlmeShhY29tcC0+YXVkaW9fb3BzLT5hdWRpb19wdHIs IChpbnQpIHBvcnQpOworCQlhY29tcC0+YXVkaW9fb3BzLT5waW5fZWxkX25vdGlmeShhY29tcC0+ YXVkaW9fb3BzLT5hdWRpb19wdHIsCisJCQkJCQkgKGludCkgcG9ydCwgKGludCkgcGlwZSk7CiB9 CiAKIC8qKgpAQCAtNTM2LDE3ICs1NDMsMjQgQEAgdm9pZCBpbnRlbF9hdWRpb19jb2RlY19kaXNh YmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyKQogCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+ZGV2KTsKIAlzdHJ1Y3QgaTkx NV9hdWRpb19jb21wb25lbnQgKmFjb21wID0gZGV2X3ByaXYtPmF1ZGlvX2NvbXBvbmVudDsKIAll bnVtIHBvcnQgcG9ydCA9IGludGVsX2VuY29kZXItPnBvcnQ7CisJc3RydWN0IGludGVsX2NydGMg KmNydGMgPSB0b19pbnRlbF9jcnRjKGVuY29kZXItPmNydGMpOworCWVudW0gcGlwZSBwaXBlID0g Y3J0Yy0+cGlwZTsKIAogCWlmIChkZXZfcHJpdi0+ZGlzcGxheS5hdWRpb19jb2RlY19kaXNhYmxl KQogCQlkZXZfcHJpdi0+ZGlzcGxheS5hdWRpb19jb2RlY19kaXNhYmxlKGludGVsX2VuY29kZXIp OwogCiAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmF2X211dGV4KTsKIAlpbnRlbF9lbmNvZGVyLT5h dWRpb19jb25uZWN0b3IgPSBOVUxMOwotCWRldl9wcml2LT5kaWdfcG9ydF9tYXBbcG9ydF0gPSBO VUxMOworCWRldl9wcml2LT5hdl9lbmNfbWFwW3BpcGVdID0gTlVMTDsKIAltdXRleF91bmxvY2so JmRldl9wcml2LT5hdl9tdXRleCk7CiAKKwkvKiBhdWRpbyBkcml2ZXJzIGV4cGVjdCBwaXBlID0g LTEgdG8gaW5kaWNhdGUgTm9uLU1TVCBjYXNlcyAqLworCWlmIChpbnRlbF9lbmNvZGVyLT50eXBl ICE9IElOVEVMX09VVFBVVF9EUF9NU1QpCisJCXBpcGUgPSAtMTsKKwogCWlmIChhY29tcCAmJiBh Y29tcC0+YXVkaW9fb3BzICYmIGFjb21wLT5hdWRpb19vcHMtPnBpbl9lbGRfbm90aWZ5KQotCQlh Y29tcC0+YXVkaW9fb3BzLT5waW5fZWxkX25vdGlmeShhY29tcC0+YXVkaW9fb3BzLT5hdWRpb19w dHIsIChpbnQpIHBvcnQpOworCQlhY29tcC0+YXVkaW9fb3BzLT5waW5fZWxkX25vdGlmeShhY29t cC0+YXVkaW9fb3BzLT5hdWRpb19wdHIsCisJCQkJCQkgKGludCkgcG9ydCwgKGludCkgcGlwZSk7 CiB9CiAKIC8qKgpAQCAtNjIxLDE1ICs2MzUsNDAgQEAgc3RhdGljIGludCBpOTE1X2F1ZGlvX2Nv bXBvbmVudF9nZXRfY2RjbGtfZnJlcShzdHJ1Y3QgZGV2aWNlICprZGV2KQogCXJldHVybiBkZXZf cHJpdi0+Y2RjbGtfZnJlcTsKIH0KIAotc3RhdGljIGludCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9z eW5jX2F1ZGlvX3JhdGUoc3RydWN0IGRldmljZSAqa2RldiwKLQkJCQkJCWludCBwb3J0LCBpbnQg cmF0ZSkKK3N0YXRpYyBzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZ2V0X3NhdmVkX2VuYyhzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJCQkJCSAgICAgICBpbnQgcG9ydCwgaW50IHBp cGUpCit7CisKKwlpZiAoV0FSTl9PTihwaXBlID49IEk5MTVfTUFYX1BJUEVTKSkKKwkJcmV0dXJu IE5VTEw7CisKKwkvKiBNU1QgKi8KKwlpZiAocGlwZSA+PSAwKQorCQlyZXR1cm4gZGV2X3ByaXYt PmF2X2VuY19tYXBbcGlwZV07CisKKwkvKiBOb24tTVNUICovCisJZm9yX2VhY2hfcGlwZShkZXZf cHJpdiwgcGlwZSkgeworCQlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcjsKKworCQllbmNv ZGVyID0gZGV2X3ByaXYtPmF2X2VuY19tYXBbcGlwZV07CisJCWlmIChlbmNvZGVyID09IE5VTEwp CisJCQljb250aW51ZTsKKworCQlpZiAocG9ydCA9PSBlbmNvZGVyLT5wb3J0KQorCQkJcmV0dXJu IGVuY29kZXI7CisJfQorCisJcmV0dXJuIE5VTEw7Cit9CisKK3N0YXRpYyBpbnQgaTkxNV9hdWRp b19jb21wb25lbnRfc3luY19hdWRpb19yYXRlKHN0cnVjdCBkZXZpY2UgKmtkZXYsIGludCBwb3J0 LAorCQkJCQkJaW50IHBpcGUsIGludCByYXRlKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IGtkZXZfdG9faTkxNShrZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq aW50ZWxfZW5jb2RlcjsKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YzsKIAlzdHJ1Y3QgZHJtX2Rp c3BsYXlfbW9kZSAqbW9kZTsKIAlzdHJ1Y3QgaTkxNV9hdWRpb19jb21wb25lbnQgKmFjb21wID0g ZGV2X3ByaXYtPmF1ZGlvX2NvbXBvbmVudDsKLQllbnVtIHBpcGUgcGlwZSA9IElOVkFMSURfUElQ RTsKIAl1MzIgdG1wOwogCWludCBuOwogCWludCBlcnIgPSAwOwpAQCAtNjQzLDI1ICs2ODIsMjAg QEAgc3RhdGljIGludCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9zeW5jX2F1ZGlvX3JhdGUoc3RydWN0 IGRldmljZSAqa2RldiwKIAogCWk5MTVfYXVkaW9fY29tcG9uZW50X2dldF9wb3dlcihrZGV2KTsK IAltdXRleF9sb2NrKCZkZXZfcHJpdi0+YXZfbXV0ZXgpOworCiAJLyogMS4gZ2V0IHRoZSBwaXBl ICovCi0JaW50ZWxfZW5jb2RlciA9IGRldl9wcml2LT5kaWdfcG9ydF9tYXBbcG9ydF07Ci0JLyog aW50ZWxfZW5jb2RlciBtaWdodCBiZSBOVUxMIGZvciBEUCBNU1QgKi8KKwlpbnRlbF9lbmNvZGVy ID0gZ2V0X3NhdmVkX2VuYyhkZXZfcHJpdiwgcG9ydCwgcGlwZSk7CiAJaWYgKCFpbnRlbF9lbmNv ZGVyIHx8ICFpbnRlbF9lbmNvZGVyLT5iYXNlLmNydGMgfHwKIAkgICAgaW50ZWxfZW5jb2Rlci0+ dHlwZSAhPSBJTlRFTF9PVVRQVVRfSERNSSkgewotCQlEUk1fREVCVUdfS01TKCJubyB2YWxpZCBw b3J0ICVjXG4iLCBwb3J0X25hbWUocG9ydCkpOworCQlEUk1fREVCVUdfS01TKCJOb3QgdmFsaWQg Zm9yIHBvcnQgJWNcbiIsIHBvcnRfbmFtZShwb3J0KSk7CiAJCWVyciA9IC1FTk9ERVY7CiAJCWdv dG8gdW5sb2NrOwogCX0KKworCS8qIHBpcGUgcGFzc2VkIGZyb20gdGhlIGF1ZGlvIGRyaXZlciB3 aWxsIGJlIC0xIGZvciBOb24tTVNUIGNhc2UgKi8KIAljcnRjID0gdG9faW50ZWxfY3J0YyhpbnRl bF9lbmNvZGVyLT5iYXNlLmNydGMpOwogCXBpcGUgPSBjcnRjLT5waXBlOwotCWlmIChwaXBlID09 IElOVkFMSURfUElQRSkgewotCQlEUk1fREVCVUdfS01TKCJubyBwaXBlIGZvciB0aGUgcG9ydCAl Y1xuIiwgcG9ydF9uYW1lKHBvcnQpKTsKLQkJZXJyID0gLUVOT0RFVjsKLQkJZ290byB1bmxvY2s7 Ci0JfQogCi0JRFJNX0RFQlVHX0tNUygicGlwZSAlYyBjb25uZWN0cyBwb3J0ICVjXG4iLAotCQkJ CSAgcGlwZV9uYW1lKHBpcGUpLCBwb3J0X25hbWUocG9ydCkpOwogCW1vZGUgPSAmY3J0Yy0+Y29u ZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7CiAKIAkvKiBwb3J0IG11c3QgYmUgdmFsaWQgbm93LCBv dGhlcndpc2UgdGhlIHBpcGUgd2lsbCBiZSBpbnZhbGlkICovCkBAIC02OTcsNyArNzMxLDcgQEAg c3RhdGljIGludCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9zeW5jX2F1ZGlvX3JhdGUoc3RydWN0IGRl dmljZSAqa2RldiwKIH0KIAogc3RhdGljIGludCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9nZXRfZWxk KHN0cnVjdCBkZXZpY2UgKmtkZXYsIGludCBwb3J0LAotCQkJCQlib29sICplbmFibGVkLAorCQkJ CQlpbnQgcGlwZSwgYm9vbCAqZW5hYmxlZCwKIAkJCQkJdW5zaWduZWQgY2hhciAqYnVmLCBpbnQg bWF4X2J5dGVzKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGtkZXZf dG9faTkxNShrZGV2KTsKQEAgLTcwNiwxNiArNzQwLDIwIEBAIHN0YXRpYyBpbnQgaTkxNV9hdWRp b19jb21wb25lbnRfZ2V0X2VsZChzdHJ1Y3QgZGV2aWNlICprZGV2LCBpbnQgcG9ydCwKIAlpbnQg cmV0ID0gLUVJTlZBTDsKIAogCW11dGV4X2xvY2soJmRldl9wcml2LT5hdl9tdXRleCk7Ci0JaW50 ZWxfZW5jb2RlciA9IGRldl9wcml2LT5kaWdfcG9ydF9tYXBbcG9ydF07Ci0JLyogaW50ZWxfZW5j b2RlciBtaWdodCBiZSBOVUxMIGZvciBEUCBNU1QgKi8KLQlpZiAoaW50ZWxfZW5jb2Rlcikgewot CQlyZXQgPSAwOwotCQkqZW5hYmxlZCA9IGludGVsX2VuY29kZXItPmF1ZGlvX2Nvbm5lY3RvciAh PSBOVUxMOwotCQlpZiAoKmVuYWJsZWQpIHsKLQkJCWVsZCA9IGludGVsX2VuY29kZXItPmF1ZGlv X2Nvbm5lY3Rvci0+ZWxkOwotCQkJcmV0ID0gZHJtX2VsZF9zaXplKGVsZCk7Ci0JCQltZW1jcHko YnVmLCBlbGQsIG1pbihtYXhfYnl0ZXMsIHJldCkpOwotCQl9CisKKwlpbnRlbF9lbmNvZGVyID0g Z2V0X3NhdmVkX2VuYyhkZXZfcHJpdiwgcG9ydCwgcGlwZSk7CisJaWYgKCFpbnRlbF9lbmNvZGVy KSB7CisJCURSTV9ERUJVR19LTVMoIk5vdCB2YWxpZCBmb3IgcG9ydCAlY1xuIiwgcG9ydF9uYW1l KHBvcnQpKTsKKwkJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+YXZfbXV0ZXgpOworCQlyZXR1cm4g cmV0OworCX0KKworCXJldCA9IDA7CisJKmVuYWJsZWQgPSBpbnRlbF9lbmNvZGVyLT5hdWRpb19j b25uZWN0b3IgIT0gTlVMTDsKKwlpZiAoKmVuYWJsZWQpIHsKKwkJZWxkID0gaW50ZWxfZW5jb2Rl ci0+YXVkaW9fY29ubmVjdG9yLT5lbGQ7CisJCXJldCA9IGRybV9lbGRfc2l6ZShlbGQpOworCQlt ZW1jcHkoYnVmLCBlbGQsIG1pbihtYXhfYnl0ZXMsIHJldCkpOwogCX0KIAogCW11dGV4X3VubG9j aygmZGV2X3ByaXYtPmF2X211dGV4KTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2k5MTVfY29t cG9uZW50LmggYi9pbmNsdWRlL2RybS9pOTE1X2NvbXBvbmVudC5oCmluZGV4IGI0NmZhMGUuLjU0 NWM2ZTAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2k5MTVfY29tcG9uZW50LmgKKysrIGIvaW5j bHVkZS9kcm0vaTkxNV9jb21wb25lbnQuaApAQCAtNjQsNyArNjQsNyBAQCBzdHJ1Y3QgaTkxNV9h dWRpb19jb21wb25lbnRfb3BzIHsKIAkgKiBDYWxsZWQgZnJvbSBhdWRpbyBkcml2ZXIuIEFmdGVy IGF1ZGlvIGRyaXZlciBzZXRzIHRoZQogCSAqIHNhbXBsZSByYXRlLCBpdCB3aWxsIGNhbGwgdGhp cyBmdW5jdGlvbiB0byBzZXQgbi9jdHMKIAkgKi8KLQlpbnQgKCpzeW5jX2F1ZGlvX3JhdGUpKHN0 cnVjdCBkZXZpY2UgKiwgaW50IHBvcnQsIGludCByYXRlKTsKKwlpbnQgKCpzeW5jX2F1ZGlvX3Jh dGUpKHN0cnVjdCBkZXZpY2UgKiwgaW50IHBvcnQsIGludCBwaXBlLCBpbnQgcmF0ZSk7CiAJLyoq CiAJICogQGdldF9lbGQ6IGZpbGwgdGhlIGF1ZGlvIHN0YXRlIGFuZCBFTEQgYnl0ZXMgZm9yIHRo ZSBnaXZlbiBwb3J0CiAJICoKQEAgLTc3LDcgKzc3LDcgQEAgc3RydWN0IGk5MTVfYXVkaW9fY29t cG9uZW50X29wcyB7CiAJICogTm90ZSB0aGF0IHRoZSByZXR1cm5lZCBzaXplIG1heSBiZSBvdmVy IEBtYXhfYnl0ZXMuICBUaGVuIGl0CiAJICogaW1wbGllcyB0aGF0IG9ubHkgYSBwYXJ0IG9mIEVM RCBoYXMgYmVlbiBjb3BpZWQgdG8gdGhlIGJ1ZmZlci4KIAkgKi8KLQlpbnQgKCpnZXRfZWxkKShz dHJ1Y3QgZGV2aWNlICosIGludCBwb3J0LCBib29sICplbmFibGVkLAorCWludCAoKmdldF9lbGQp KHN0cnVjdCBkZXZpY2UgKiwgaW50IHBvcnQsIGludCBwaXBlLCBib29sICplbmFibGVkLAogCQkg ICAgICAgdW5zaWduZWQgY2hhciAqYnVmLCBpbnQgbWF4X2J5dGVzKTsKIH07CiAKQEAgLTk3LDcg Kzk3LDcgQEAgc3RydWN0IGk5MTVfYXVkaW9fY29tcG9uZW50X2F1ZGlvX29wcyB7CiAJICogc3Rh dHVzIGFjY29yZGluZ2x5IChldmVuIHdoZW4gdGhlIEhEQSBjb250cm9sbGVyIGlzIGluIHBvd2Vy IHNhdmUKIAkgKiBtb2RlKS4KIAkgKi8KLQl2b2lkICgqcGluX2VsZF9ub3RpZnkpKHZvaWQgKmF1 ZGlvX3B0ciwgaW50IHBvcnQpOworCXZvaWQgKCpwaW5fZWxkX25vdGlmeSkodm9pZCAqYXVkaW9f cHRyLCBpbnQgcG9ydCwgaW50IHBpcGUpOwogfTsKIAogLyoqCmRpZmYgLS1naXQgYS9pbmNsdWRl L3NvdW5kL2hkYV9pOTE1LmggYi9pbmNsdWRlL3NvdW5kL2hkYV9pOTE1LmgKaW5kZXggNzk2Y2Fi Zi4uNWFiOTcyZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9zb3VuZC9oZGFfaTkxNS5oCisrKyBiL2lu Y2x1ZGUvc291bmQvaGRhX2k5MTUuaApAQCAtMTAsOCArMTAsOSBAQAogaW50IHNuZF9oZGFjX3Nl dF9jb2RlY193YWtldXAoc3RydWN0IGhkYWNfYnVzICpidXMsIGJvb2wgZW5hYmxlKTsKIGludCBz bmRfaGRhY19kaXNwbGF5X3Bvd2VyKHN0cnVjdCBoZGFjX2J1cyAqYnVzLCBib29sIGVuYWJsZSk7 CiB2b2lkIHNuZF9oZGFjX2k5MTVfc2V0X2JjbGsoc3RydWN0IGhkYWNfYnVzICpidXMpOwotaW50 IHNuZF9oZGFjX3N5bmNfYXVkaW9fcmF0ZShzdHJ1Y3QgaGRhY19kZXZpY2UgKmNvZGVjLCBoZGFf bmlkX3QgbmlkLCBpbnQgcmF0ZSk7Ci1pbnQgc25kX2hkYWNfYWNvbXBfZ2V0X2VsZChzdHJ1Y3Qg aGRhY19kZXZpY2UgKmNvZGVjLCBoZGFfbmlkX3QgbmlkLAoraW50IHNuZF9oZGFjX3N5bmNfYXVk aW9fcmF0ZShzdHJ1Y3QgaGRhY19kZXZpY2UgKmNvZGVjLCBoZGFfbmlkX3QgbmlkLAorCQkJICAg ICBpbnQgZGV2X2lkLCBpbnQgcmF0ZSk7CitpbnQgc25kX2hkYWNfYWNvbXBfZ2V0X2VsZChzdHJ1 Y3QgaGRhY19kZXZpY2UgKmNvZGVjLCBoZGFfbmlkX3QgbmlkLCBpbnQgZGV2X2lkLAogCQkJICAg Ym9vbCAqYXVkaW9fZW5hYmxlZCwgY2hhciAqYnVmZmVyLCBpbnQgbWF4X2J5dGVzKTsKIGludCBz bmRfaGRhY19pOTE1X2luaXQoc3RydWN0IGhkYWNfYnVzICpidXMpOwogaW50IHNuZF9oZGFjX2k5 MTVfZXhpdChzdHJ1Y3QgaGRhY19idXMgKmJ1cyk7CkBAIC0yOSwxMyArMzAsMTMgQEAgc3RhdGlj IGlubGluZSB2b2lkIHNuZF9oZGFjX2k5MTVfc2V0X2JjbGsoc3RydWN0IGhkYWNfYnVzICpidXMp CiB7CiB9CiBzdGF0aWMgaW5saW5lIGludCBzbmRfaGRhY19zeW5jX2F1ZGlvX3JhdGUoc3RydWN0 IGhkYWNfZGV2aWNlICpjb2RlYywKLQkJCQkJICAgaGRhX25pZF90IG5pZCwgaW50IHJhdGUpCisJ CQkJCSAgIGhkYV9uaWRfdCBuaWQsIGludCBkZXZfaWQsIGludCByYXRlKQogewogCXJldHVybiAw OwogfQogc3RhdGljIGlubGluZSBpbnQgc25kX2hkYWNfYWNvbXBfZ2V0X2VsZChzdHJ1Y3QgaGRh Y19kZXZpY2UgKmNvZGVjLCBoZGFfbmlkX3QgbmlkLAotCQkJCQkgYm9vbCAqYXVkaW9fZW5hYmxl ZCwgY2hhciAqYnVmZmVyLAotCQkJCQkgaW50IG1heF9ieXRlcykKKwkJCQkJIGludCBkZXZfaWQs IGJvb2wgKmF1ZGlvX2VuYWJsZWQsCisJCQkJCSBjaGFyICpidWZmZXIsIGludCBtYXhfYnl0ZXMp CiB7CiAJcmV0dXJuIC1FTk9ERVY7CiB9CmRpZmYgLS1naXQgYS9zb3VuZC9oZGEvaGRhY19pOTE1 LmMgYi9zb3VuZC9oZGEvaGRhY19pOTE1LmMKaW5kZXggYzlhZjAyMi4uMDY1OWJmMyAxMDA2NDQK LS0tIGEvc291bmQvaGRhL2hkYWNfaTkxNS5jCisrKyBiL3NvdW5kL2hkYS9oZGFjX2k5MTUuYwpA QCAtMTkzLDYgKzE5Myw3IEBAIHN0YXRpYyBpbnQgcGluMnBvcnQoc3RydWN0IGhkYWNfZGV2aWNl ICpjb2RlYywgaGRhX25pZF90IHBpbl9uaWQpCiAgKiBzbmRfaGRhY19zeW5jX2F1ZGlvX3JhdGUg LSBTZXQgTi9DVFMgYmFzZWQgb24gdGhlIHNhbXBsZSByYXRlCiAgKiBAY29kZWM6IEhEQSBjb2Rl YwogICogQG5pZDogdGhlIHBpbiB3aWRnZXQgTklECisgKiBAZGV2X2lkOiBkZXZpY2UgaWRlbnRp ZmllcgogICogQHJhdGU6IHRoZSBzYW1wbGUgcmF0ZSB0byBzZXQKICAqCiAgKiBUaGlzIGZ1bmN0 aW9uIGlzIHN1cHBvc2VkIHRvIGJlIHVzZWQgb25seSBieSBhIEhELWF1ZGlvIGNvbnRyb2xsZXIK QEAgLTIwMSwxOCArMjAyLDIwIEBAIHN0YXRpYyBpbnQgcGluMnBvcnQoc3RydWN0IGhkYWNfZGV2 aWNlICpjb2RlYywgaGRhX25pZF90IHBpbl9uaWQpCiAgKiBUaGlzIGZ1bmN0aW9uIHNldHMgTi9D VFMgdmFsdWUgYmFzZWQgb24gdGhlIGdpdmVuIHNhbXBsZSByYXRlLgogICogUmV0dXJucyB6ZXJv IGZvciBzdWNjZXNzLCBvciBhIG5lZ2F0aXZlIGVycm9yIGNvZGUuCiAgKi8KLWludCBzbmRfaGRh Y19zeW5jX2F1ZGlvX3JhdGUoc3RydWN0IGhkYWNfZGV2aWNlICpjb2RlYywgaGRhX25pZF90IG5p ZCwgaW50IHJhdGUpCitpbnQgc25kX2hkYWNfc3luY19hdWRpb19yYXRlKHN0cnVjdCBoZGFjX2Rl dmljZSAqY29kZWMsIGhkYV9uaWRfdCBuaWQsCisJCQkgICAgIGludCBkZXZfaWQsIGludCByYXRl KQogewogCXN0cnVjdCBoZGFjX2J1cyAqYnVzID0gY29kZWMtPmJ1czsKIAlzdHJ1Y3QgaTkxNV9h dWRpb19jb21wb25lbnQgKmFjb21wID0gYnVzLT5hdWRpb19jb21wb25lbnQ7Ci0JaW50IHBvcnQ7 CisJaW50IHBvcnQsIHBpcGU7CiAKIAlpZiAoIWFjb21wIHx8ICFhY29tcC0+b3BzIHx8ICFhY29t cC0+b3BzLT5zeW5jX2F1ZGlvX3JhdGUpCiAJCXJldHVybiAtRU5PREVWOwogCXBvcnQgPSBwaW4y cG9ydChjb2RlYywgbmlkKTsKIAlpZiAocG9ydCA8IDApCiAJCXJldHVybiAtRUlOVkFMOwotCXJl dHVybiBhY29tcC0+b3BzLT5zeW5jX2F1ZGlvX3JhdGUoYWNvbXAtPmRldiwgcG9ydCwgcmF0ZSk7 CisJcGlwZSA9IGRldl9pZDsKKwlyZXR1cm4gYWNvbXAtPm9wcy0+c3luY19hdWRpb19yYXRlKGFj b21wLT5kZXYsIHBvcnQsIHBpcGUsIHJhdGUpOwogfQogRVhQT1JUX1NZTUJPTF9HUEwoc25kX2hk YWNfc3luY19hdWRpb19yYXRlKTsKIApAQCAtMjIwLDYgKzIyMyw3IEBAIEVYUE9SVF9TWU1CT0xf R1BMKHNuZF9oZGFjX3N5bmNfYXVkaW9fcmF0ZSk7CiAgKiBzbmRfaGRhY19hY29tcF9nZXRfZWxk IC0gR2V0IHRoZSBhdWRpbyBzdGF0ZSBhbmQgRUxEIHZpYSBjb21wb25lbnQKICAqIEBjb2RlYzog SERBIGNvZGVjCiAgKiBAbmlkOiB0aGUgcGluIHdpZGdldCBOSUQKKyAqIEBkZXZfaWQ6IGRldmlj ZSBpZGVudGlmaWVyCiAgKiBAYXVkaW9fZW5hYmxlZDogdGhlIHBvaW50ZXIgdG8gc3RvcmUgdGhl IGN1cnJlbnQgYXVkaW8gc3RhdGUKICAqIEBidWZmZXI6IHRoZSBidWZmZXIgcG9pbnRlciB0byBz dG9yZSBFTEQgYnl0ZXMKICAqIEBtYXhfYnl0ZXM6IHRoZSBtYXggYnl0ZXMgdG8gYmUgc3RvcmVk IG9uIEBidWZmZXIKQEAgLTIzNiwxMiArMjQwLDEyIEBAIEVYUE9SVF9TWU1CT0xfR1BMKHNuZF9o ZGFjX3N5bmNfYXVkaW9fcmF0ZSk7CiAgKiB0aHVzIGl0IG1heSBiZSBvdmVyIEBtYXhfYnl0ZXMu ICBJZiBpdCdzIG92ZXIgQG1heF9ieXRlcywgaXQgaW1wbGllcwogICogdGhhdCBvbmx5IGEgcGFy dCBvZiBFTEQgYnl0ZXMgaGF2ZSBiZWVuIGZldGNoZWQuCiAgKi8KLWludCBzbmRfaGRhY19hY29t cF9nZXRfZWxkKHN0cnVjdCBoZGFjX2RldmljZSAqY29kZWMsIGhkYV9uaWRfdCBuaWQsCitpbnQg c25kX2hkYWNfYWNvbXBfZ2V0X2VsZChzdHJ1Y3QgaGRhY19kZXZpY2UgKmNvZGVjLCBoZGFfbmlk X3QgbmlkLCBpbnQgZGV2X2lkLAogCQkJICAgYm9vbCAqYXVkaW9fZW5hYmxlZCwgY2hhciAqYnVm ZmVyLCBpbnQgbWF4X2J5dGVzKQogewogCXN0cnVjdCBoZGFjX2J1cyAqYnVzID0gY29kZWMtPmJ1 czsKIAlzdHJ1Y3QgaTkxNV9hdWRpb19jb21wb25lbnQgKmFjb21wID0gYnVzLT5hdWRpb19jb21w b25lbnQ7Ci0JaW50IHBvcnQ7CisJaW50IHBvcnQsIHBpcGU7CiAKIAlpZiAoIWFjb21wIHx8ICFh Y29tcC0+b3BzIHx8ICFhY29tcC0+b3BzLT5nZXRfZWxkKQogCQlyZXR1cm4gLUVOT0RFVjsKQEAg LTI0OSw3ICsyNTMsOSBAQCBpbnQgc25kX2hkYWNfYWNvbXBfZ2V0X2VsZChzdHJ1Y3QgaGRhY19k ZXZpY2UgKmNvZGVjLCBoZGFfbmlkX3QgbmlkLAogCXBvcnQgPSBwaW4ycG9ydChjb2RlYywgbmlk KTsKIAlpZiAocG9ydCA8IDApCiAJCXJldHVybiAtRUlOVkFMOwotCXJldHVybiBhY29tcC0+b3Bz LT5nZXRfZWxkKGFjb21wLT5kZXYsIHBvcnQsIGF1ZGlvX2VuYWJsZWQsCisKKwlwaXBlID0gZGV2 X2lkOworCXJldHVybiBhY29tcC0+b3BzLT5nZXRfZWxkKGFjb21wLT5kZXYsIHBvcnQsIHBpcGUs IGF1ZGlvX2VuYWJsZWQsCiAJCQkJICAgYnVmZmVyLCBtYXhfYnl0ZXMpOwogfQogRVhQT1JUX1NZ TUJPTF9HUEwoc25kX2hkYWNfYWNvbXBfZ2V0X2VsZCk7CmRpZmYgLS1naXQgYS9zb3VuZC9wY2kv aGRhL3BhdGNoX2hkbWkuYyBiL3NvdW5kL3BjaS9oZGEvcGF0Y2hfaGRtaS5jCmluZGV4IDU2ZTUy MDQuLmNmOWJjMDQyIDEwMDY0NAotLS0gYS9zb3VuZC9wY2kvaGRhL3BhdGNoX2hkbWkuYworKysg Yi9zb3VuZC9wY2kvaGRhL3BhdGNoX2hkbWkuYwpAQCAtMTQ4NSw3ICsxNDg1LDcgQEAgc3RhdGlj IHZvaWQgc3luY19lbGRfdmlhX2Fjb21wKHN0cnVjdCBoZGFfY29kZWMgKmNvZGVjLAogCiAJbXV0 ZXhfbG9jaygmcGVyX3Bpbi0+bG9jayk7CiAJZWxkLT5tb25pdG9yX3ByZXNlbnQgPSBmYWxzZTsK LQlzaXplID0gc25kX2hkYWNfYWNvbXBfZ2V0X2VsZCgmY29kZWMtPmNvcmUsIHBlcl9waW4tPnBp bl9uaWQsCisJc2l6ZSA9IHNuZF9oZGFjX2Fjb21wX2dldF9lbGQoJmNvZGVjLT5jb3JlLCBwZXJf cGluLT5waW5fbmlkLCAtMSwKIAkJCQkgICAgICAmZWxkLT5tb25pdG9yX3ByZXNlbnQsIGVsZC0+ ZWxkX2J1ZmZlciwKIAkJCQkgICAgICBFTERfTUFYX1NJWkUpOwogCWlmIChzaXplID4gMCkgewpA QCAtMTc0NCw3ICsxNzQ0LDggQEAgc3RhdGljIGludCBnZW5lcmljX2hkbWlfcGxheWJhY2tfcGNt X3ByZXBhcmUoc3RydWN0IGhkYV9wY21fc3RyZWFtICpoaW5mbywKIAkvKiBDYWxsIHN5bmNfYXVk aW9fcmF0ZSB0byBzZXQgdGhlIE4vQ1RTL00gbWFudWFsbHkgaWYgbmVjZXNzYXJ5ICovCiAJLyog VG9kbzogYWRkIERQMS4yIE1TVCBhdWRpbyBzdXBwb3J0IGxhdGVyICovCiAJaWYgKGNvZGVjX2hh c19hY29tcChjb2RlYykpCi0JCXNuZF9oZGFjX3N5bmNfYXVkaW9fcmF0ZSgmY29kZWMtPmNvcmUs IHBpbl9uaWQsIHJ1bnRpbWUtPnJhdGUpOworCQlzbmRfaGRhY19zeW5jX2F1ZGlvX3JhdGUoJmNv ZGVjLT5jb3JlLCBwaW5fbmlkLCAtMSwKKwkJCQkJIHJ1bnRpbWUtPnJhdGUpOwogCiAJbm9uX3Bj bSA9IGNoZWNrX25vbl9wY21fcGVyX2N2dChjb2RlYywgY3Z0X25pZCk7CiAJbXV0ZXhfbG9jaygm cGVyX3Bpbi0+bG9jayk7CkBAIC0yMjkwLDcgKzIyOTEsNyBAQCBzdGF0aWMgdm9pZCBoYXN3ZWxs X3NldF9wb3dlcl9zdGF0ZShzdHJ1Y3QgaGRhX2NvZGVjICpjb2RlYywgaGRhX25pZF90IGZnLAog CXNuZF9oZGFfY29kZWNfc2V0X3Bvd2VyX3RvX2FsbChjb2RlYywgZmcsIHBvd2VyX3N0YXRlKTsK IH0KIAotc3RhdGljIHZvaWQgaW50ZWxfcGluX2VsZF9ub3RpZnkodm9pZCAqYXVkaW9fcHRyLCBp bnQgcG9ydCkKK3N0YXRpYyB2b2lkIGludGVsX3Bpbl9lbGRfbm90aWZ5KHZvaWQgKmF1ZGlvX3B0 ciwgaW50IHBvcnQsIGludCBwaXBlKQogewogCXN0cnVjdCBoZGFfY29kZWMgKmNvZGVjID0gYXVk aW9fcHRyOwogCWludCBwaW5fbmlkOwpkaWZmIC0tZ2l0IGEvc291bmQvc29jL2NvZGVjcy9oZGFj X2hkbWkuYyBiL3NvdW5kL3NvYy9jb2RlY3MvaGRhY19oZG1pLmMKaW5kZXggNGUxODFiMi4uZGMw MTI5YiAxMDA2NDQKLS0tIGEvc291bmQvc29jL2NvZGVjcy9oZGFjX2hkbWkuYworKysgYi9zb3Vu ZC9zb2MvY29kZWNzL2hkYWNfaGRtaS5jCkBAIC0xMzY4LDcgKzEzNjgsNyBAQCBzdGF0aWMgaW50 IGhkYWNfaGRtaV9wYXJzZV9hbmRfbWFwX25pZChzdHJ1Y3QgaGRhY19leHRfZGV2aWNlICplZGV2 LAogCXJldHVybiBoZGFjX2hkbWlfaW5pdF9kYWlfbWFwKGVkZXYpOwogfQogCi1zdGF0aWMgdm9p ZCBoZGFjX2hkbWlfZWxkX25vdGlmeV9jYih2b2lkICphcHRyLCBpbnQgcG9ydCkKK3N0YXRpYyB2 b2lkIGhkYWNfaGRtaV9lbGRfbm90aWZ5X2NiKHZvaWQgKmFwdHIsIGludCBwb3J0LCBpbnQgcGlw ZSkKIHsKIAlzdHJ1Y3QgaGRhY19leHRfZGV2aWNlICplZGV2ID0gYXB0cjsKIAlzdHJ1Y3QgaGRh Y19oZG1pX3ByaXYgKmhkbWkgPSBlZGV2LT5wcml2YXRlX2RhdGE7Ci0tIAoyLjUuMAoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxp bmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==