From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Deucher Subject: [PATCH 3/3] drm/radeon: add audio support for DCE6/8 GPUs (v9) Date: Wed, 14 Aug 2013 12:08:15 -0400 Message-ID: <1376496495-8574-3-git-send-email-alexander.deucher@amd.com> References: <1376496495-8574-1-git-send-email-alexander.deucher@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-vb0-f45.google.com (mail-vb0-f45.google.com [209.85.212.45]) by gabe.freedesktop.org (Postfix) with ESMTP id 65719E5C26 for ; Wed, 14 Aug 2013 09:08:26 -0700 (PDT) Received: by mail-vb0-f45.google.com with SMTP id e15so7805518vbg.32 for ; Wed, 14 Aug 2013 09:08:26 -0700 (PDT) In-Reply-To: <1376496495-8574-1-git-send-email-alexander.deucher@amd.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org Errors-To: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org To: dri-devel@lists.freedesktop.org Cc: Alex Deucher , =?UTF-8?q?Christian=20K=C3=B6nig?= List-Id: dri-devel@lists.freedesktop.org U2ltaWxhciB0byBEQ0U0LzUsIGJ1dCBzdXBwb3J0cyBtdWx0aXBsZSBhdWRpbyBwaW5zCndoaWNo IGNhbiBiZSBhc3NpZ25lZCBwZXIgYWZtdCBibG9jay4KCnYyOiByZXdvcmsgdGhlIGRyaXZlciB0 byBoYW5kbGUgbW9yZSB0aGFuIG9uZSBhdWRpbwpwaW4uCnYzOiB0cnkgZGlmZmVyZW50IGR0byBy ZWcKdjQ6IHByb3Blcmx5IHByb2dyYW0gZHRvCnY1IChjayk6IGNoYW5nZSBkdG8gcHJvZ3JhbW1p bmcgb3JkZXIKdjY6IHByb2dyYW0gc3BlYWtlciBhbGxvY2F0aW9uIGJsb2NrCnY3OiByZWJhc2UK djg6IHJlYmFzZSBvbiBSYWZhxYIncyBjaGFuZ2VzCnY5OiBpbnRlZ3JhdGVkIFJhZmHFgidzIGNv bW1lbnRzLCB1cGRhdGUgdG8gbGF0ZXN0CiAgICBkcm1fZWRpZF90b19zcGVha2VyX2FsbG9jYXRp b24gQVBJCgpTaWduZWQtb2ZmLWJ5OiBBbGV4IERldWNoZXIgPGFsZXhhbmRlci5kZXVjaGVyQGFt ZC5jb20+ClNpZ25lZC1vZmYtYnk6IENocmlzdGlhbiBLw7ZuaWcgPGNocmlzdGlhbi5rb2VuaWdA YW1kLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL01ha2VmaWxlICAgICAgICAgICAg fCAgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vYXRvbWJpb3NfZW5jb2RlcnMuYyB8ICAx MSArLQogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9jaWsuYyAgICAgICAgICAgICAgIHwgICA1ICsK IGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vZGNlNl9hZm10LmMgICAgICAgICB8IDI1MCArKysrKysr KysrKysrKysrKysrKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9ldmVyZ3JlZW5f aGRtaS5jICAgIHwgIDU0ICsrKysrLS0KIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vbmkuYyAgICAg ICAgICAgICAgICB8ICAxNyArLQogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yNjAwX2F1ZGlvLmMg ICAgICAgIHwgIDU4ICsrKystLS0KIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjYwMF9oZG1pLmMg ICAgICAgICB8ICAgNyArLQogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb24uaCAgICAgICAg ICAgIHwgIDE4ICsrLQogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fYXNpYy5jICAgICAg IHwgICA4ICsKIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2FzaWMuaCAgICAgICB8ICAg NCArLQogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZGlzcGxheS5jICAgIHwgIDEzICst CiBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9tb2RlLmggICAgICAgfCAgIDMgKy0KIGRy aXZlcnMvZ3B1L2RybS9yYWRlb24vc2kuYyAgICAgICAgICAgICAgICB8ICAgNSArCiBkcml2ZXJz L2dwdS9kcm0vcmFkZW9uL3NpZC5oICAgICAgICAgICAgICAgfCAgNTkgKysrKysrKwogMTUgZmls ZXMgY2hhbmdlZCwgNDUyIGluc2VydGlvbnMoKyksIDYyIGRlbGV0aW9ucygtKQogY3JlYXRlIG1v ZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vZGNlNl9hZm10LmMKCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVv bi9NYWtlZmlsZQppbmRleCBkYTJhOGU5Li4zMDYzNjRhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vcmFkZW9uL01ha2VmaWxlCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vTWFrZWZp bGUKQEAgLTgwLDcgKzgwLDcgQEAgcmFkZW9uLXkgKz0gcmFkZW9uX2RldmljZS5vIHJhZGVvbl9h c2ljLm8gcmFkZW9uX2ttcy5vIFwKIAlyNjAwX2RwbS5vIHJzNzgwX2RwbS5vIHJ2Nnh4X2RwbS5v IHJ2NzcwX2RwbS5vIHJ2NzMwX2RwbS5vIHJ2NzQwX2RwbS5vIFwKIAlydjc3MF9zbWMubyBjeXBy ZXNzX2RwbS5vIGJ0Y19kcG0ubyBzdW1vX2RwbS5vIHN1bW9fc21jLm8gdHJpbml0eV9kcG0ubyBc CiAJdHJpbml0eV9zbWMubyBuaV9kcG0ubyBzaV9zbWMubyBzaV9kcG0ubyBrdl9zbWMubyBrdl9k cG0ubyBjaV9zbWMubyBcCi0JY2lfZHBtLm8KKwljaV9kcG0ubyBkY2U2X2FmbXQubwogCiAjIGFk ZCBhc3luYyBETUEgYmxvY2sKIHJhZGVvbi15ICs9IFwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9yYWRlb24vYXRvbWJpb3NfZW5jb2RlcnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24v YXRvbWJpb3NfZW5jb2RlcnMuYwppbmRleCAwOTIyNzVkLi5kZmFjNzk2IDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vcmFkZW9uL2F0b21iaW9zX2VuY29kZXJzLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL3JhZGVvbi9hdG9tYmlvc19lbmNvZGVycy5jCkBAIC02ODIsOCArNjgyLDYgQEAgYXRv bWJpb3NfZGlnaXRhbF9zZXR1cChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsIGludCBhY3Rp b24pCiBpbnQKIGF0b21iaW9zX2dldF9lbmNvZGVyX21vZGUoc3RydWN0IGRybV9lbmNvZGVyICpl bmNvZGVyKQogewotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBlbmNvZGVyLT5kZXY7Ci0Jc3Ry dWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYgPSBkZXYtPmRldl9wcml2YXRlOwogCXN0cnVjdCByYWRl b25fZW5jb2RlciAqcmFkZW9uX2VuY29kZXIgPSB0b19yYWRlb25fZW5jb2RlcihlbmNvZGVyKTsK IAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yOwogCXN0cnVjdCByYWRlb25fY29ubmVj dG9yICpyYWRlb25fY29ubmVjdG9yOwpAQCAtNzEwLDggKzcwOCw3IEBAIGF0b21iaW9zX2dldF9l bmNvZGVyX21vZGUoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQogCWNhc2UgRFJNX01PREVf Q09OTkVDVE9SX0RWSUk6CiAJY2FzZSBEUk1fTU9ERV9DT05ORUNUT1JfSERNSUI6IC8qIEhETUkt QiBpcyBiYXNpY2FsbHkgREwtRFZJOyBhbmFsb2cgd29ya3MgZmluZSAqLwogCQlpZiAoZHJtX2Rl dGVjdF9oZG1pX21vbml0b3IocmFkZW9uX2Nvbm5lY3Rvci0+ZWRpZCkgJiYKLQkJICAgIHJhZGVv bl9hdWRpbyAmJgotCQkgICAgIUFTSUNfSVNfRENFNihyZGV2KSkgLyogcmVtb3ZlIG9uY2Ugd2Ug c3VwcG9ydCBEQ0U2ICovCisJCSAgICByYWRlb25fYXVkaW8pCiAJCQlyZXR1cm4gQVRPTV9FTkNP REVSX01PREVfSERNSTsKIAkJZWxzZSBpZiAocmFkZW9uX2Nvbm5lY3Rvci0+dXNlX2RpZ2l0YWwp CiAJCQlyZXR1cm4gQVRPTV9FTkNPREVSX01PREVfRFZJOwpAQCAtNzIyLDggKzcxOSw3IEBAIGF0 b21iaW9zX2dldF9lbmNvZGVyX21vZGUoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQogCWNh c2UgRFJNX01PREVfQ09OTkVDVE9SX0hETUlBOgogCWRlZmF1bHQ6CiAJCWlmIChkcm1fZGV0ZWN0 X2hkbWlfbW9uaXRvcihyYWRlb25fY29ubmVjdG9yLT5lZGlkKSAmJgotCQkgICAgcmFkZW9uX2F1 ZGlvICYmCi0JCSAgICAhQVNJQ19JU19EQ0U2KHJkZXYpKSAvKiByZW1vdmUgb25jZSB3ZSBzdXBw b3J0IERDRTYgKi8KKwkJICAgIHJhZGVvbl9hdWRpbykKIAkJCXJldHVybiBBVE9NX0VOQ09ERVJf TU9ERV9IRE1JOwogCQllbHNlCiAJCQlyZXR1cm4gQVRPTV9FTkNPREVSX01PREVfRFZJOwpAQCAt NzM3LDggKzczMyw3IEBAIGF0b21iaW9zX2dldF9lbmNvZGVyX21vZGUoc3RydWN0IGRybV9lbmNv ZGVyICplbmNvZGVyKQogCQkgICAgKGRpZ19jb25uZWN0b3ItPmRwX3NpbmtfdHlwZSA9PSBDT05O RUNUT1JfT0JKRUNUX0lEX2VEUCkpCiAJCQlyZXR1cm4gQVRPTV9FTkNPREVSX01PREVfRFA7CiAJ CWVsc2UgaWYgKGRybV9kZXRlY3RfaGRtaV9tb25pdG9yKHJhZGVvbl9jb25uZWN0b3ItPmVkaWQp ICYmCi0JCQkgcmFkZW9uX2F1ZGlvICYmCi0JCQkgIUFTSUNfSVNfRENFNihyZGV2KSkgLyogcmVt b3ZlIG9uY2Ugd2Ugc3VwcG9ydCBEQ0U2ICovCisJCQkgcmFkZW9uX2F1ZGlvKQogCQkJcmV0dXJu IEFUT01fRU5DT0RFUl9NT0RFX0hETUk7CiAJCWVsc2UKIAkJCXJldHVybiBBVE9NX0VOQ09ERVJf TU9ERV9EVkk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2Npay5jIGIvZHJp dmVycy9ncHUvZHJtL3JhZGVvbi9jaWsuYwppbmRleCAwMWZkODg2Li5jMmY3OGRjIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2Npay5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9y YWRlb24vY2lrLmMKQEAgLTcwOTMsNiArNzA5MywxMCBAQCBzdGF0aWMgaW50IGNpa19zdGFydHVw KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQogCQlyZXR1cm4gcjsKIAl9CiAKKwlyID0gZGNl Nl9hdWRpb19pbml0KHJkZXYpOworCWlmIChyKQorCQlyZXR1cm4gcjsKKwogCXJldHVybiAwOwog fQogCkBAIC03MTM4LDYgKzcxNDIsNyBAQCBpbnQgY2lrX3Jlc3VtZShzdHJ1Y3QgcmFkZW9uX2Rl dmljZSAqcmRldikKICAqLwogaW50IGNpa19zdXNwZW5kKHN0cnVjdCByYWRlb25fZGV2aWNlICpy ZGV2KQogeworCWRjZTZfYXVkaW9fZmluaShyZGV2KTsKIAlyYWRlb25fdm1fbWFuYWdlcl9maW5p KHJkZXYpOwogCWNpa19jcF9lbmFibGUocmRldiwgZmFsc2UpOwogCWNpa19zZG1hX2VuYWJsZShy ZGV2LCBmYWxzZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2RjZTZfYWZt dC5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9kY2U2X2FmbXQuYwpuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi5lZTgyMmQ5Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9n cHUvZHJtL3JhZGVvbi9kY2U2X2FmbXQuYwpAQCAtMCwwICsxLDI1MCBAQAorLyoKKyAqIENvcHly aWdodCAyMDEzIEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4KKyAqCisgKiBQZXJtaXNzaW9u IGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5p bmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRp b24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdp dGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSBy aWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBz dWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRv IHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8g ZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBh Ym92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJl IGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRo ZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lU SE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVE SU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFks CisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5U LiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIE9SIEFVVEhP UihTKSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgorICogT1RIRVIgTElBQklM SVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0Us CisgKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRX QVJFIE9SIFRIRSBVU0UgT1IKKyAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAq CisgKi8KKyNpbmNsdWRlIDxsaW51eC9oZG1pLmg+CisjaW5jbHVkZSA8ZHJtL2RybVAuaD4KKyNp bmNsdWRlICJyYWRlb24uaCIKKyNpbmNsdWRlICJzaWQuaCIKKworc3RhdGljIHUzMiBkY2U2X2Vu ZHBvaW50X3JyZWcoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCisJCQkgICAgICB1MzIgYmxv Y2tfb2Zmc2V0LCB1MzIgcmVnKQoreworCXUzMiByOworCisJV1JFRzMyKEFaX0YwX0NPREVDX0VO RFBPSU5UX0lOREVYICsgYmxvY2tfb2Zmc2V0LCByZWcpOworCXIgPSBSUkVHMzIoQVpfRjBfQ09E RUNfRU5EUE9JTlRfREFUQSArIGJsb2NrX29mZnNldCk7CisJcmV0dXJuIHI7Cit9CisKK3N0YXRp YyB2b2lkIGRjZTZfZW5kcG9pbnRfd3JlZyhzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwKKwkJ CSAgICAgICB1MzIgYmxvY2tfb2Zmc2V0LCB1MzIgcmVnLCB1MzIgdikKK3sKKwlpZiAoQVNJQ19J U19EQ0U4KHJkZXYpKQorCQlXUkVHMzIoQVpfRjBfQ09ERUNfRU5EUE9JTlRfSU5ERVggKyBibG9j a19vZmZzZXQsIHJlZyk7CisJZWxzZQorCQlXUkVHMzIoQVpfRjBfQ09ERUNfRU5EUE9JTlRfSU5E RVggKyBibG9ja19vZmZzZXQsCisJCSAgICAgICBBWl9FTkRQT0lOVF9SRUdfV1JJVEVfRU4gfCBB Wl9FTkRQT0lOVF9SRUdfSU5ERVgocmVnKSk7CisJV1JFRzMyKEFaX0YwX0NPREVDX0VORFBPSU5U X0RBVEEgKyBibG9ja19vZmZzZXQsIHYpOworfQorCisjZGVmaW5lIFJSRUczMl9FTkRQT0lOVChi bG9jaywgcmVnKSBkY2U2X2VuZHBvaW50X3JyZWcocmRldiwgKGJsb2NrKSwgKHJlZykpCisjZGVm aW5lIFdSRUczMl9FTkRQT0lOVChibG9jaywgcmVnLCB2KSBkY2U2X2VuZHBvaW50X3dyZWcocmRl diwgKGJsb2NrKSwgKHJlZyksICh2KSkKKworCitzdGF0aWMgdm9pZCBkY2U2X2FmbXRfZ2V0X2Nv bm5lY3RlZF9waW5zKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQoreworCWludCBpOworCXUz MiBvZmZzZXQsIHRtcDsKKworCWZvciAoaSA9IDA7IGkgPCByZGV2LT5hdWRpby5udW1fcGluczsg aSsrKSB7CisJCW9mZnNldCA9IHJkZXYtPmF1ZGlvLnBpbltpXS5vZmZzZXQ7CisJCXRtcCA9IFJS RUczMl9FTkRQT0lOVChvZmZzZXQsCisJCQkJICAgICAgQVpfRjBfQ09ERUNfUElOX0NPTlRST0xf UkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUKTsKKwkJaWYgKCgodG1wICYgUE9SVF9DT05O RUNUSVZJVFlfTUFTSykgPj4gUE9SVF9DT05ORUNUSVZJVFlfU0hJRlQpID09IDEpCisJCQlyZGV2 LT5hdWRpby5waW5baV0uY29ubmVjdGVkID0gZmFsc2U7CisJCWVsc2UKKwkJCXJkZXYtPmF1ZGlv LnBpbltpXS5jb25uZWN0ZWQgPSB0cnVlOworCX0KK30KKworc3RydWN0IHI2MDBfYXVkaW9fcGlu ICpkY2U2X2F1ZGlvX2dldF9waW4oc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCit7CisJaW50 IGk7CisKKwlkY2U2X2FmbXRfZ2V0X2Nvbm5lY3RlZF9waW5zKHJkZXYpOworCisJZm9yIChpID0g MDsgaSA8IHJkZXYtPmF1ZGlvLm51bV9waW5zOyBpKyspIHsKKwkJaWYgKHJkZXYtPmF1ZGlvLnBp bltpXS5jb25uZWN0ZWQpCisJCQlyZXR1cm4gJnJkZXYtPmF1ZGlvLnBpbltpXTsKKwl9CisJRFJN X0VSUk9SKCJObyBjb25uZWN0ZWQgYXVkaW8gcGlucyBmb3VuZCEiKTsKKwlyZXR1cm4gTlVMTDsK K30KKwordm9pZCBkY2U2X2FmbXRfc2VsZWN0X3BpbihzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29k ZXIpCit7CisJc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYgPSBlbmNvZGVyLT5kZXYtPmRldl9w cml2YXRlOworCXN0cnVjdCByYWRlb25fZW5jb2RlciAqcmFkZW9uX2VuY29kZXIgPSB0b19yYWRl b25fZW5jb2RlcihlbmNvZGVyKTsKKwlzdHJ1Y3QgcmFkZW9uX2VuY29kZXJfYXRvbV9kaWcgKmRp ZyA9IHJhZGVvbl9lbmNvZGVyLT5lbmNfcHJpdjsKKwl1MzIgb2Zmc2V0ID0gZGlnLT5hZm10LT5v ZmZzZXQ7CisJdTMyIGlkID0gZGlnLT5hZm10LT5waW4tPmlkOworCisJaWYgKCFkaWctPmFmbXQt PnBpbikKKwkJcmV0dXJuOworCisJV1JFRzMyKEFGTVRfQVVESU9fU1JDX0NPTlRST0wgKyBvZmZz ZXQsIEFGTVRfQVVESU9fU1JDX1NFTEVDVChpZCkpOworfQorCit2b2lkIGRjZTZfYWZtdF93cml0 ZV9zYWRfcmVncyhzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCit7CisJc3RydWN0IHJhZGVv bl9kZXZpY2UgKnJkZXYgPSBlbmNvZGVyLT5kZXYtPmRldl9wcml2YXRlOworCXN0cnVjdCByYWRl b25fZW5jb2RlciAqcmFkZW9uX2VuY29kZXIgPSB0b19yYWRlb25fZW5jb2RlcihlbmNvZGVyKTsK KwlzdHJ1Y3QgcmFkZW9uX2VuY29kZXJfYXRvbV9kaWcgKmRpZyA9IHJhZGVvbl9lbmNvZGVyLT5l bmNfcHJpdjsKKwl1MzIgb2Zmc2V0LCB0bXA7CisJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5l Y3RvcjsKKwlzdHJ1Y3QgcmFkZW9uX2Nvbm5lY3RvciAqcmFkZW9uX2Nvbm5lY3RvciA9IE5VTEw7 CisJc3RydWN0IGNlYV9zYWQgKnNhZHM7CisJaW50IGksIHNhZF9jb3VudCwgc2FkYl9jb3VudDsK Kwl1OCAqc2FkYjsKKworCXN0YXRpYyBjb25zdCB1MTYgZWxkX3JlZ190b190eXBlW11bMl0gPSB7 CisJCXsgQVpfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjAsIEhETUlfQVVE SU9fQ09ESU5HX1RZUEVfUENNIH0sCisJCXsgQVpfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9f REVTQ1JJUFRPUjEsIEhETUlfQVVESU9fQ09ESU5HX1RZUEVfQUMzIH0sCisJCXsgQVpfRjBfQ09E RUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjIsIEhETUlfQVVESU9fQ09ESU5HX1RZUEVf TVBFRzEgfSwKKwkJeyBBWl9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMywg SERNSV9BVURJT19DT0RJTkdfVFlQRV9NUDMgfSwKKwkJeyBBWl9GMF9DT0RFQ19QSU5fQ09OVFJP TF9BVURJT19ERVNDUklQVE9SNCwgSERNSV9BVURJT19DT0RJTkdfVFlQRV9NUEVHMiB9LAorCQl7 IEFaX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I1LCBIRE1JX0FVRElPX0NP RElOR19UWVBFX0FBQ19MQyB9LAorCQl7IEFaX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RF U0NSSVBUT1I2LCBIRE1JX0FVRElPX0NPRElOR19UWVBFX0RUUyB9LAorCQl7IEFaX0YwX0NPREVD X1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I3LCBIRE1JX0FVRElPX0NPRElOR19UWVBFX0FU UkFDIH0sCisJCXsgQVpfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjksIEhE TUlfQVVESU9fQ09ESU5HX1RZUEVfRUFDMyB9LAorCQl7IEFaX0YwX0NPREVDX1BJTl9DT05UUk9M X0FVRElPX0RFU0NSSVBUT1IxMCwgSERNSV9BVURJT19DT0RJTkdfVFlQRV9EVFNfSEQgfSwKKwkJ eyBBWl9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTEsIEhETUlfQVVESU9f Q09ESU5HX1RZUEVfTUxQIH0sCisJCXsgQVpfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVT Q1JJUFRPUjEzLCBIRE1JX0FVRElPX0NPRElOR19UWVBFX1dNQV9QUk8gfSwKKwl9OworCisJaWYg KCFkaWctPmFmbXQtPnBpbikKKwkJcmV0dXJuOworCisJb2Zmc2V0ID0gZGlnLT5hZm10LT5waW4t Pm9mZnNldDsKKworCWxpc3RfZm9yX2VhY2hfZW50cnkoY29ubmVjdG9yLCAmZW5jb2Rlci0+ZGV2 LT5tb2RlX2NvbmZpZy5jb25uZWN0b3JfbGlzdCwgaGVhZCkgeworCQlpZiAoY29ubmVjdG9yLT5l bmNvZGVyID09IGVuY29kZXIpCisJCQlyYWRlb25fY29ubmVjdG9yID0gdG9fcmFkZW9uX2Nvbm5l Y3Rvcihjb25uZWN0b3IpOworCX0KKworCWlmICghcmFkZW9uX2Nvbm5lY3RvcikgeworCQlEUk1f RVJST1IoIkNvdWxkbid0IGZpbmQgZW5jb2RlcidzIGNvbm5lY3RvclxuIik7CisJCXJldHVybjsK Kwl9CisKKwlzYWRfY291bnQgPSBkcm1fZWRpZF90b19zYWQocmFkZW9uX2Nvbm5lY3Rvci0+ZWRp ZCwgJnNhZHMpOworCWlmIChzYWRfY291bnQgPCAwKSB7CisJCURSTV9FUlJPUigiQ291bGRuJ3Qg cmVhZCBTQURzOiAlZFxuIiwgc2FkX2NvdW50KTsKKwkJcmV0dXJuOworCX0KKwlCVUdfT04oIXNh ZHMpOworCisJc2FkYl9jb3VudCA9IGRybV9lZGlkX3RvX3NwZWFrZXJfYWxsb2NhdGlvbihyYWRl b25fY29ubmVjdG9yLT5lZGlkLCAmc2FkYik7CisJaWYgKHNhZGJfY291bnQgPCAwKSB7CisJCURS TV9FUlJPUigiQ291bGRuJ3QgcmVhZCBTcGVha2VyIEFsbG9jYXRpb24gRGF0YSBCbG9jazogJWRc biIsIHNhZGJfY291bnQpOworCQlyZXR1cm47CisJfQorCisJLyogcHJvZ3JhbSB0aGUgc3BlYWtl ciBhbGxvY2F0aW9uICovCisJdG1wID0gUlJFRzMyX0VORFBPSU5UKG9mZnNldCwgQVpfRjBfQ09E RUNfUElOX0NPTlRST0xfQ0hBTk5FTF9TUEVBS0VSKTsKKwl0bXAgJj0gfihEUF9DT05ORUNUSU9O IHwgU1BFQUtFUl9BTExPQ0FUSU9OX01BU0spOworCS8qIHNldCBIRE1JIG1vZGUgKi8KKwl0bXAg fD0gSERNSV9DT05ORUNUSU9OOworCWlmIChzYWRiX2NvdW50KQorCQl0bXAgfD0gU1BFQUtFUl9B TExPQ0FUSU9OKHNhZGJbMF0pOworCWVsc2UKKwkJdG1wIHw9IFNQRUFLRVJfQUxMT0NBVElPTig1 KTsgLyogc3RlcmVvICovCisJV1JFRzMyX0VORFBPSU5UKG9mZnNldCwgQVpfRjBfQ09ERUNfUElO X0NPTlRST0xfQ0hBTk5FTF9TUEVBS0VSLCB0bXApOworCisJZm9yIChpID0gMDsgaSA8IEFSUkFZ X1NJWkUoZWxkX3JlZ190b190eXBlKTsgaSsrKSB7CisJCXUzMiB2YWx1ZSA9IDA7CisJCWludCBq OworCisJCWZvciAoaiA9IDA7IGogPCBzYWRfY291bnQ7IGorKykgeworCQkJc3RydWN0IGNlYV9z YWQgKnNhZCA9ICZzYWRzW2pdOworCisJCQlpZiAoc2FkLT5mb3JtYXQgPT0gZWxkX3JlZ190b190 eXBlW2ldWzFdKSB7CisJCQkJdmFsdWUgPSBNQVhfQ0hBTk5FTFMoc2FkLT5jaGFubmVscykgfAor CQkJCQlERVNDUklQVE9SX0JZVEVfMihzYWQtPmJ5dGUyKSB8CisJCQkJCVNVUFBPUlRFRF9GUkVR VUVOQ0lFUyhzYWQtPmZyZXEpOworCQkJCWlmIChzYWQtPmZvcm1hdCA9PSBIRE1JX0FVRElPX0NP RElOR19UWVBFX1BDTSkKKwkJCQkJdmFsdWUgfD0gU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX1NURVJF TyhzYWQtPmZyZXEpOworCQkJCWJyZWFrOworCQkJfQorCQl9CisJCVdSRUczMl9FTkRQT0lOVChv ZmZzZXQsIGVsZF9yZWdfdG9fdHlwZVtpXVswXSwgdmFsdWUpOworCX0KKworCWtmcmVlKHNhZHMp OworCWtmcmVlKHNhZGIpOworfQorCitzdGF0aWMgaW50IGRjZTZfYXVkaW9fY2hpcHNldF9zdXBw b3J0ZWQoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCit7CisJcmV0dXJuICFBU0lDX0lTX05P RENFKHJkZXYpOworfQorCitzdGF0aWMgdm9pZCBkY2U2X2F1ZGlvX2VuYWJsZShzdHJ1Y3QgcmFk ZW9uX2RldmljZSAqcmRldiwKKwkJCSAgICAgIHN0cnVjdCByNjAwX2F1ZGlvX3BpbiAqcGluLAor CQkJICAgICAgYm9vbCBlbmFibGUpCit7CisJV1JFRzMyX0VORFBPSU5UKHBpbi0+b2Zmc2V0LCBB Wl9GMF9DT0RFQ19QSU5fQ09OVFJPTF9IT1RQTFVHX0NPTlRST0wsCisJCQlBVURJT19FTkFCTEVE KTsKK30KKworc3RhdGljIGNvbnN0IHUzMiBwaW5fb2Zmc2V0c1s3XSA9Cit7CisJKDB4NWUwMCAt IDB4NWUwMCksCisJKDB4NWUxOCAtIDB4NWUwMCksCisJKDB4NWUzMCAtIDB4NWUwMCksCisJKDB4 NWU0OCAtIDB4NWUwMCksCisJKDB4NWU2MCAtIDB4NWUwMCksCisJKDB4NWU3OCAtIDB4NWUwMCks CisJKDB4NWU5MCAtIDB4NWUwMCksCit9OworCitpbnQgZGNlNl9hdWRpb19pbml0KHN0cnVjdCBy YWRlb25fZGV2aWNlICpyZGV2KQoreworCWludCBpOworCisJaWYgKCFyYWRlb25fYXVkaW8gfHwg IWRjZTZfYXVkaW9fY2hpcHNldF9zdXBwb3J0ZWQocmRldikpCisJCXJldHVybiAwOworCisJcmRl di0+YXVkaW8uZW5hYmxlZCA9IHRydWU7CisKKwlpZiAoQVNJQ19JU19EQ0U4KHJkZXYpKQorCQly ZGV2LT5hdWRpby5udW1fcGlucyA9IDc7CisJZWxzZQorCQlyZGV2LT5hdWRpby5udW1fcGlucyA9 IDY7CisKKwlmb3IgKGkgPSAwOyBpIDwgcmRldi0+YXVkaW8ubnVtX3BpbnM7IGkrKykgeworCQly ZGV2LT5hdWRpby5waW5baV0uY2hhbm5lbHMgPSAtMTsKKwkJcmRldi0+YXVkaW8ucGluW2ldLnJh dGUgPSAtMTsKKwkJcmRldi0+YXVkaW8ucGluW2ldLmJpdHNfcGVyX3NhbXBsZSA9IC0xOworCQly ZGV2LT5hdWRpby5waW5baV0uc3RhdHVzX2JpdHMgPSAwOworCQlyZGV2LT5hdWRpby5waW5baV0u Y2F0ZWdvcnlfY29kZSA9IDA7CisJCXJkZXYtPmF1ZGlvLnBpbltpXS5jb25uZWN0ZWQgPSBmYWxz ZTsKKwkJcmRldi0+YXVkaW8ucGluW2ldLm9mZnNldCA9IHBpbl9vZmZzZXRzW2ldOworCQlyZGV2 LT5hdWRpby5waW5baV0uaWQgPSBpOworCQlkY2U2X2F1ZGlvX2VuYWJsZShyZGV2LCAmcmRldi0+ YXVkaW8ucGluW2ldLCB0cnVlKTsKKwl9CisKKwlyZXR1cm4gMDsKK30KKwordm9pZCBkY2U2X2F1 ZGlvX2Zpbmkoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCit7CisJaW50IGk7CisKKwlpZiAo IXJkZXYtPmF1ZGlvLmVuYWJsZWQpCisJCXJldHVybjsKKworCWZvciAoaSA9IDA7IGkgPCByZGV2 LT5hdWRpby5udW1fcGluczsgaSsrKQorCQlkY2U2X2F1ZGlvX2VuYWJsZShyZGV2LCAmcmRldi0+ YXVkaW8ucGluW2ldLCBmYWxzZSk7CisKKwlyZGV2LT5hdWRpby5lbmFibGVkID0gZmFsc2U7Cit9 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2V2ZXJncmVlbl9oZG1pLmMgYi9k cml2ZXJzL2dwdS9kcm0vcmFkZW9uL2V2ZXJncmVlbl9oZG1pLmMKaW5kZXggYjBlMjgwMC4uYzVh Y2RmMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9ldmVyZ3JlZW5faGRtaS5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vZXZlcmdyZWVuX2hkbWkuYwpAQCAtMzIsNiAr MzIsOSBAQAogI2luY2x1ZGUgImV2ZXJncmVlbmQuaCIKICNpbmNsdWRlICJhdG9tLmgiCiAKK2V4 dGVybiB2b2lkIGRjZTZfYWZtdF93cml0ZV9zYWRfcmVncyhzdHJ1Y3QgZHJtX2VuY29kZXIgKmVu Y29kZXIpOworZXh0ZXJuIHZvaWQgZGNlNl9hZm10X3NlbGVjdF9waW4oc3RydWN0IGRybV9lbmNv ZGVyICplbmNvZGVyKTsKKwogLyoKICAqIHVwZGF0ZSB0aGUgTiBhbmQgQ1RTIHBhcmFtZXRlcnMg Zm9yIGEgZ2l2ZW4gcGl4ZWwgY2xvY2sgcmF0ZQogICovCkBAIC0xNTcsMjIgKzE2MCwyNiBAQCBz dGF0aWMgdm9pZCBldmVyZ3JlZW5fYXVkaW9fc2V0X2R0byhzdHJ1Y3QgZHJtX2VuY29kZXIgKmVu Y29kZXIsIHUzMiBjbG9jaykKIAlpZiAoIWRpZyB8fCAhZGlnLT5hZm10KQogCQlyZXR1cm47CiAK LQlpZiAobWF4X3JhdGlvID49IDgpIHsKLQkJZHRvX3BoYXNlID0gMTkyICogMTAwMDsKLQkJd2Fs bGNsb2NrX3JhdGlvID0gMzsKLQl9IGVsc2UgaWYgKG1heF9yYXRpbyA+PSA0KSB7Ci0JCWR0b19w aGFzZSA9IDk2ICogMTAwMDsKLQkJd2FsbGNsb2NrX3JhdGlvID0gMjsKLQl9IGVsc2UgaWYgKG1h eF9yYXRpbyA+PSAyKSB7Ci0JCWR0b19waGFzZSA9IDQ4ICogMTAwMDsKLQkJd2FsbGNsb2NrX3Jh dGlvID0gMTsKLQl9IGVsc2UgeworCWlmIChBU0lDX0lTX0RDRTYocmRldikpIHsKIAkJZHRvX3Bo YXNlID0gMjQgKiAxMDAwOwotCQl3YWxsY2xvY2tfcmF0aW8gPSAwOworCX0gZWxzZSB7CisJCWlm IChtYXhfcmF0aW8gPj0gOCkgeworCQkJZHRvX3BoYXNlID0gMTkyICogMTAwMDsKKwkJCXdhbGxj bG9ja19yYXRpbyA9IDM7CisJCX0gZWxzZSBpZiAobWF4X3JhdGlvID49IDQpIHsKKwkJCWR0b19w aGFzZSA9IDk2ICogMTAwMDsKKwkJCXdhbGxjbG9ja19yYXRpbyA9IDI7CisJCX0gZWxzZSBpZiAo bWF4X3JhdGlvID49IDIpIHsKKwkJCWR0b19waGFzZSA9IDQ4ICogMTAwMDsKKwkJCXdhbGxjbG9j a19yYXRpbyA9IDE7CisJCX0gZWxzZSB7CisJCQlkdG9fcGhhc2UgPSAyNCAqIDEwMDA7CisJCQl3 YWxsY2xvY2tfcmF0aW8gPSAwOworCQl9CisJCWR0b19jbnRsID0gUlJFRzMyKERDQ0dfQVVESU9f RFRPMF9DTlRMKSAmIH5EQ0NHX0FVRElPX0RUT19XQUxMQ0xPQ0tfUkFUSU9fTUFTSzsKKwkJZHRv X2NudGwgfD0gRENDR19BVURJT19EVE9fV0FMTENMT0NLX1JBVElPKHdhbGxjbG9ja19yYXRpbyk7 CisJCVdSRUczMihEQ0NHX0FVRElPX0RUTzBfQ05UTCwgZHRvX2NudGwpOwogCX0KLQlkdG9fY250 bCA9IFJSRUczMihEQ0NHX0FVRElPX0RUTzBfQ05UTCkgJiB+RENDR19BVURJT19EVE9fV0FMTENM T0NLX1JBVElPX01BU0s7Ci0JZHRvX2NudGwgfD0gRENDR19BVURJT19EVE9fV0FMTENMT0NLX1JB VElPKHdhbGxjbG9ja19yYXRpbyk7Ci0JV1JFRzMyKERDQ0dfQVVESU9fRFRPMF9DTlRMLCBkdG9f Y250bCk7CiAKIAkvKiBYWFggdHdvIGR0b3M7IGdlbmVyYWxseSB1c2UgZHRvMCBmb3IgaGRtaSAq LwogCS8qIEV4cHJlc3MgWzI0TUh6IC8gdGFyZ2V0IHBpeGVsIGNsb2NrXSBhcyBhbiBleGFjdCBy YXRpb25hbApAQCAtMjY2LDcgKzI3MywxMyBAQCB2b2lkIGV2ZXJncmVlbl9oZG1pX3NldG1vZGUo c3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZQogCSAg ICAgICBBRk1UX0FVRElPX0NIQU5ORUxfRU5BQkxFKDB4ZmYpKTsKIAogCS8qIGZnbHJ4IHNldHMg MHg0MCBpbiAweDVmODAgaGVyZSAqLwotCWV2ZXJncmVlbl9oZG1pX3dyaXRlX3NhZF9yZWdzKGVu Y29kZXIpOworCisJaWYgKEFTSUNfSVNfRENFNihyZGV2KSkgeworCQlkY2U2X2FmbXRfc2VsZWN0 X3BpbihlbmNvZGVyKTsKKwkJZGNlNl9hZm10X3dyaXRlX3NhZF9yZWdzKGVuY29kZXIpOworCX0g ZWxzZSB7CisJCWV2ZXJncmVlbl9oZG1pX3dyaXRlX3NhZF9yZWdzKGVuY29kZXIpOworCX0KIAog CWVyciA9IGRybV9oZG1pX2F2aV9pbmZvZnJhbWVfZnJvbV9kaXNwbGF5X21vZGUoJmZyYW1lLCBt b2RlKTsKIAlpZiAoZXJyIDwgMCkgewpAQCAtMzAyLDYgKzMxNSw4IEBAIHZvaWQgZXZlcmdyZWVu X2hkbWlfc2V0bW9kZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsIHN0cnVjdCBkcm1fZGlz cGxheV9tb2RlCiAKIHZvaWQgZXZlcmdyZWVuX2hkbWlfZW5hYmxlKHN0cnVjdCBkcm1fZW5jb2Rl ciAqZW5jb2RlciwgYm9vbCBlbmFibGUpCiB7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGVu Y29kZXItPmRldjsKKwlzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiA9IGRldi0+ZGV2X3ByaXZh dGU7CiAJc3RydWN0IHJhZGVvbl9lbmNvZGVyICpyYWRlb25fZW5jb2RlciA9IHRvX3JhZGVvbl9l bmNvZGVyKGVuY29kZXIpOwogCXN0cnVjdCByYWRlb25fZW5jb2Rlcl9hdG9tX2RpZyAqZGlnID0g cmFkZW9uX2VuY29kZXItPmVuY19wcml2OwogCkBAIC0zMTQsNiArMzI5LDE1IEBAIHZvaWQgZXZl cmdyZWVuX2hkbWlfZW5hYmxlKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwgYm9vbCBlbmFi bGUpCiAJaWYgKCFlbmFibGUgJiYgIWRpZy0+YWZtdC0+ZW5hYmxlZCkKIAkJcmV0dXJuOwogCisJ aWYgKGVuYWJsZSkgeworCQlpZiAoQVNJQ19JU19EQ0U2KHJkZXYpKQorCQkJZGlnLT5hZm10LT5w aW4gPSBkY2U2X2F1ZGlvX2dldF9waW4ocmRldik7CisJCWVsc2UKKwkJCWRpZy0+YWZtdC0+cGlu ID0gcjYwMF9hdWRpb19nZXRfcGluKHJkZXYpOworCX0gZWxzZSB7CisJCWRpZy0+YWZtdC0+cGlu ID0gTlVMTDsKKwl9CisKIAlkaWctPmFmbXQtPmVuYWJsZWQgPSBlbmFibGU7CiAKIAlEUk1fREVC VUcoIiVzYWJsaW5nIEhETUkgaW50ZXJmYWNlIEAgMHglMDRYIGZvciBlbmNvZGVyIDB4JXhcbiIs CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL25pLmMgYi9kcml2ZXJzL2dwdS9k cm0vcmFkZW9uL25pLmMKaW5kZXggMmRiOGNlMC4uNjk0OTlmZiAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL3JhZGVvbi9uaS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vbmkuYwpA QCAtMjAyNyw5ICsyMDI3LDE1IEBAIHN0YXRpYyBpbnQgY2F5bWFuX3N0YXJ0dXAoc3RydWN0IHJh ZGVvbl9kZXZpY2UgKnJkZXYpCiAJCXJldHVybiByOwogCX0KIAotCXIgPSByNjAwX2F1ZGlvX2lu aXQocmRldik7Ci0JaWYgKHIpCi0JCXJldHVybiByOworCWlmIChBU0lDX0lTX0RDRTYocmRldikp IHsKKwkJciA9IGRjZTZfYXVkaW9faW5pdChyZGV2KTsKKwkJaWYgKHIpCisJCQlyZXR1cm4gcjsK Kwl9IGVsc2UgeworCQlyID0gcjYwMF9hdWRpb19pbml0KHJkZXYpOworCQlpZiAocikKKwkJCXJl dHVybiByOworCX0KIAogCXJldHVybiAwOwogfQpAQCAtMjA2MCw3ICsyMDY2LDEwIEBAIGludCBj YXltYW5fcmVzdW1lKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQogCiBpbnQgY2F5bWFuX3N1 c3BlbmQoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCiB7Ci0JcjYwMF9hdWRpb19maW5pKHJk ZXYpOworCWlmIChBU0lDX0lTX0RDRTYocmRldikpCisJCWRjZTZfYXVkaW9fZmluaShyZGV2KTsK KwllbHNlCisJCXI2MDBfYXVkaW9fZmluaShyZGV2KTsKIAlyYWRlb25fdm1fbWFuYWdlcl9maW5p KHJkZXYpOwogCWNheW1hbl9jcF9lbmFibGUocmRldiwgZmFsc2UpOwogCWNheW1hbl9kbWFfc3Rv cChyZGV2KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjYwMF9hdWRpby5j IGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yNjAwX2F1ZGlvLmMKaW5kZXggYzkyZWI4Ni4uYmIw MzJiMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yNjAwX2F1ZGlvLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yNjAwX2F1ZGlvLmMKQEAgLTU3LDEyICs1NywxMiBA QCBzdGF0aWMgYm9vbCByYWRlb25fZGlnX2VuY29kZXIoc3RydWN0IGRybV9lbmNvZGVyICplbmNv ZGVyKQogICovCiBzdGF0aWMgaW50IHI2MDBfYXVkaW9fY2hpcHNldF9zdXBwb3J0ZWQoc3RydWN0 IHJhZGVvbl9kZXZpY2UgKnJkZXYpCiB7Ci0JcmV0dXJuIEFTSUNfSVNfRENFMihyZGV2KSAmJiAh QVNJQ19JU19EQ0U2KHJkZXYpOworCXJldHVybiBBU0lDX0lTX0RDRTIocmRldikgJiYgIUFTSUNf SVNfTk9EQ0UocmRldik7CiB9CiAKLXN0cnVjdCByNjAwX2F1ZGlvIHI2MDBfYXVkaW9fc3RhdHVz KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQorc3RydWN0IHI2MDBfYXVkaW9fcGluIHI2MDBf YXVkaW9fc3RhdHVzKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQogewotCXN0cnVjdCByNjAw X2F1ZGlvIHN0YXR1czsKKwlzdHJ1Y3QgcjYwMF9hdWRpb19waW4gc3RhdHVzOwogCXVpbnQzMl90 IHZhbHVlOwogCiAJdmFsdWUgPSBSUkVHMzIoUjYwMF9BVURJT19SQVRFX0JQU19DSEFOTkVMKTsK QEAgLTEyMCwxNiArMTIwLDE2IEBAIHZvaWQgcjYwMF9hdWRpb191cGRhdGVfaGRtaShzdHJ1Y3Qg d29ya19zdHJ1Y3QgKndvcmspCiAJc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYgPSBjb250YWlu ZXJfb2Yod29yaywgc3RydWN0IHJhZGVvbl9kZXZpY2UsCiAJCQkJCQkgIGF1ZGlvX3dvcmspOwog CXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSByZGV2LT5kZGV2OwotCXN0cnVjdCByNjAwX2F1ZGlv IGF1ZGlvX3N0YXR1cyA9IHI2MDBfYXVkaW9fc3RhdHVzKHJkZXYpOworCXN0cnVjdCByNjAwX2F1 ZGlvX3BpbiBhdWRpb19zdGF0dXMgPSByNjAwX2F1ZGlvX3N0YXR1cyhyZGV2KTsKIAlzdHJ1Y3Qg ZHJtX2VuY29kZXIgKmVuY29kZXI7CiAJYm9vbCBjaGFuZ2VkID0gZmFsc2U7CiAKLQlpZiAocmRl di0+YXVkaW9fc3RhdHVzLmNoYW5uZWxzICE9IGF1ZGlvX3N0YXR1cy5jaGFubmVscyB8fAotCSAg ICByZGV2LT5hdWRpb19zdGF0dXMucmF0ZSAhPSBhdWRpb19zdGF0dXMucmF0ZSB8fAotCSAgICBy ZGV2LT5hdWRpb19zdGF0dXMuYml0c19wZXJfc2FtcGxlICE9IGF1ZGlvX3N0YXR1cy5iaXRzX3Bl cl9zYW1wbGUgfHwKLQkgICAgcmRldi0+YXVkaW9fc3RhdHVzLnN0YXR1c19iaXRzICE9IGF1ZGlv X3N0YXR1cy5zdGF0dXNfYml0cyB8fAotCSAgICByZGV2LT5hdWRpb19zdGF0dXMuY2F0ZWdvcnlf Y29kZSAhPSBhdWRpb19zdGF0dXMuY2F0ZWdvcnlfY29kZSkgewotCQlyZGV2LT5hdWRpb19zdGF0 dXMgPSBhdWRpb19zdGF0dXM7CisJaWYgKHJkZXYtPmF1ZGlvLnBpblswXS5jaGFubmVscyAhPSBh dWRpb19zdGF0dXMuY2hhbm5lbHMgfHwKKwkgICAgcmRldi0+YXVkaW8ucGluWzBdLnJhdGUgIT0g YXVkaW9fc3RhdHVzLnJhdGUgfHwKKwkgICAgcmRldi0+YXVkaW8ucGluWzBdLmJpdHNfcGVyX3Nh bXBsZSAhPSBhdWRpb19zdGF0dXMuYml0c19wZXJfc2FtcGxlIHx8CisJICAgIHJkZXYtPmF1ZGlv LnBpblswXS5zdGF0dXNfYml0cyAhPSBhdWRpb19zdGF0dXMuc3RhdHVzX2JpdHMgfHwKKwkgICAg cmRldi0+YXVkaW8ucGluWzBdLmNhdGVnb3J5X2NvZGUgIT0gYXVkaW9fc3RhdHVzLmNhdGVnb3J5 X2NvZGUpIHsKKwkJcmRldi0+YXVkaW8ucGluWzBdID0gYXVkaW9fc3RhdHVzOwogCQljaGFuZ2Vk ID0gdHJ1ZTsKIAl9CiAKQEAgLTE0MSwxMyArMTQxLDEzIEBAIHZvaWQgcjYwMF9hdWRpb191cGRh dGVfaGRtaShzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJfQogfQogCi0vKgotICogdHVybiBv bi9vZmYgYXVkaW8gZW5naW5lCi0gKi8KLXN0YXRpYyB2b2lkIHI2MDBfYXVkaW9fZW5naW5lX2Vu YWJsZShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgYm9vbCBlbmFibGUpCisvKiBlbmFibGUg dGhlIGF1ZGlvIHN0cmVhbSAqLworc3RhdGljIHZvaWQgcjYwMF9hdWRpb19lbmFibGUoc3RydWN0 IHJhZGVvbl9kZXZpY2UgKnJkZXYsCisJCQkgICAgICBzdHJ1Y3QgcjYwMF9hdWRpb19waW4gKnBp biwKKwkJCSAgICAgIGJvb2wgZW5hYmxlKQogewogCXUzMiB2YWx1ZSA9IDA7Ci0JRFJNX0lORk8o IiVzIGF1ZGlvIHN1cHBvcnRcbiIsIGVuYWJsZSA/ICJFbmFibGluZyIgOiAiRGlzYWJsaW5nIik7 CisKIAlpZiAoQVNJQ19JU19EQ0U0KHJkZXYpKSB7CiAJCWlmIChlbmFibGUpIHsKIAkJCXZhbHVl IHw9IDB4ODEwMDAwMDA7IC8qIFJlcXVpcmVkIHRvIGVuYWJsZSBhdWRpbyAqLwpAQCAtMTU4LDcg KzE1OCw2IEBAIHN0YXRpYyB2b2lkIHI2MDBfYXVkaW9fZW5naW5lX2VuYWJsZShzdHJ1Y3QgcmFk ZW9uX2RldmljZSAqcmRldiwgYm9vbCBlbmFibGUpCiAJCVdSRUczMl9QKFI2MDBfQVVESU9fRU5B QkxFLAogCQkJIGVuYWJsZSA/IDB4ODEwMDAwMDAgOiAweDAsIH4weDgxMDAwMDAwKTsKIAl9Ci0J cmRldi0+YXVkaW9fZW5hYmxlZCA9IGVuYWJsZTsKIH0KIAogLyoKQEAgLTE2OSwxMyArMTY4LDE2 IEBAIGludCByNjAwX2F1ZGlvX2luaXQoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCiAJaWYg KCFyYWRlb25fYXVkaW8gfHwgIXI2MDBfYXVkaW9fY2hpcHNldF9zdXBwb3J0ZWQocmRldikpCiAJ CXJldHVybiAwOwogCi0JcjYwMF9hdWRpb19lbmdpbmVfZW5hYmxlKHJkZXYsIHRydWUpOworCXJk ZXYtPmF1ZGlvLmVuYWJsZWQgPSB0cnVlOworCisJcmRldi0+YXVkaW8ubnVtX3BpbnMgPSAxOwor CXJkZXYtPmF1ZGlvLnBpblswXS5jaGFubmVscyA9IC0xOworCXJkZXYtPmF1ZGlvLnBpblswXS5y YXRlID0gLTE7CisJcmRldi0+YXVkaW8ucGluWzBdLmJpdHNfcGVyX3NhbXBsZSA9IC0xOworCXJk ZXYtPmF1ZGlvLnBpblswXS5zdGF0dXNfYml0cyA9IDA7CisJcmRldi0+YXVkaW8ucGluWzBdLmNh dGVnb3J5X2NvZGUgPSAwOwogCi0JcmRldi0+YXVkaW9fc3RhdHVzLmNoYW5uZWxzID0gLTE7Ci0J cmRldi0+YXVkaW9fc3RhdHVzLnJhdGUgPSAtMTsKLQlyZGV2LT5hdWRpb19zdGF0dXMuYml0c19w ZXJfc2FtcGxlID0gLTE7Ci0JcmRldi0+YXVkaW9fc3RhdHVzLnN0YXR1c19iaXRzID0gMDsKLQly ZGV2LT5hdWRpb19zdGF0dXMuY2F0ZWdvcnlfY29kZSA9IDA7CisJcjYwMF9hdWRpb19lbmFibGUo cmRldiwgJnJkZXYtPmF1ZGlvLnBpblswXSwgZmFsc2UpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0x ODYsOCArMTg4LDE2IEBAIGludCByNjAwX2F1ZGlvX2luaXQoc3RydWN0IHJhZGVvbl9kZXZpY2Ug KnJkZXYpCiAgKi8KIHZvaWQgcjYwMF9hdWRpb19maW5pKHN0cnVjdCByYWRlb25fZGV2aWNlICpy ZGV2KQogewotCWlmICghcmRldi0+YXVkaW9fZW5hYmxlZCkKKwlpZiAoIXJkZXYtPmF1ZGlvLmVu YWJsZWQpCiAJCXJldHVybjsKIAotCXI2MDBfYXVkaW9fZW5naW5lX2VuYWJsZShyZGV2LCBmYWxz ZSk7CisJcjYwMF9hdWRpb19lbmFibGUocmRldiwgJnJkZXYtPmF1ZGlvLnBpblswXSwgZmFsc2Up OworCisJcmRldi0+YXVkaW8uZW5hYmxlZCA9IGZhbHNlOworfQorCitzdHJ1Y3QgcjYwMF9hdWRp b19waW4gKnI2MDBfYXVkaW9fZ2V0X3BpbihzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldikKK3sK KwkvKiBvbmx5IG9uZSBwaW4gb24gNnh4LU5JICovCisJcmV0dXJuICZyZGV2LT5hdWRpby5waW5b MF07CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3I2MDBfaGRtaS5jIGIv ZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yNjAwX2hkbWkuYwppbmRleCBmMjY0ZGY1Li5lMWRlYzEz IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3I2MDBfaGRtaS5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9yYWRlb24vcjYwMF9oZG1pLmMKQEAgLTM4Miw3ICszODIsNyBAQCB2b2lk IHI2MDBfaGRtaV91cGRhdGVfYXVkaW9fc2V0dGluZ3Moc3RydWN0IGRybV9lbmNvZGVyICplbmNv ZGVyKQogCXN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlz dHJ1Y3QgcmFkZW9uX2VuY29kZXIgKnJhZGVvbl9lbmNvZGVyID0gdG9fcmFkZW9uX2VuY29kZXIo ZW5jb2Rlcik7CiAJc3RydWN0IHJhZGVvbl9lbmNvZGVyX2F0b21fZGlnICpkaWcgPSByYWRlb25f ZW5jb2Rlci0+ZW5jX3ByaXY7Ci0Jc3RydWN0IHI2MDBfYXVkaW8gYXVkaW8gPSByNjAwX2F1ZGlv X3N0YXR1cyhyZGV2KTsKKwlzdHJ1Y3QgcjYwMF9hdWRpb19waW4gYXVkaW8gPSByNjAwX2F1ZGlv X3N0YXR1cyhyZGV2KTsKIAl1aW50OF90IGJ1ZmZlcltIRE1JX0lORk9GUkFNRV9IRUFERVJfU0la RSArIEhETUlfQVVESU9fSU5GT0ZSQU1FX1NJWkVdOwogCXN0cnVjdCBoZG1pX2F1ZGlvX2luZm9m cmFtZSBmcmFtZTsKIAl1aW50MzJfdCBvZmZzZXQ7CkBAIC00OTEsNiArNDkxLDExIEBAIHZvaWQg cjYwMF9oZG1pX2VuYWJsZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsIGJvb2wgZW5hYmxl KQogCWlmICghZW5hYmxlICYmICFkaWctPmFmbXQtPmVuYWJsZWQpCiAJCXJldHVybjsKIAorCWlm IChlbmFibGUpCisJCWRpZy0+YWZtdC0+cGluID0gcjYwMF9hdWRpb19nZXRfcGluKHJkZXYpOwor CWVsc2UKKwkJZGlnLT5hZm10LT5waW4gPSBOVUxMOworCiAJLyogT2xkZXIgY2hpcHNldHMgcmVx dWlyZSBzZXR0aW5nIEhETUkgYW5kIHJvdXRpbmcgbWFudWFsbHkgKi8KIAlpZiAoIUFTSUNfSVNf RENFMyhyZGV2KSkgewogCQlpZiAoZW5hYmxlKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L3JhZGVvbi9yYWRlb24uaCBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uLmgKaW5kZXgg OTNiZWYyMy4uOWZjOWU3MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRl b24uaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbi5oCkBAIC03MjgsNyArNzI4 LDcgQEAgdW5pb24gcmFkZW9uX2lycV9zdGF0X3JlZ3MgewogCiAjZGVmaW5lIFJBREVPTl9NQVhf SFBEX1BJTlMgNgogI2RlZmluZSBSQURFT05fTUFYX0NSVENTIDYKLSNkZWZpbmUgUkFERU9OX01B WF9BRk1UX0JMT0NLUyA2CisjZGVmaW5lIFJBREVPTl9NQVhfQUZNVF9CTE9DS1MgNwogCiBzdHJ1 Y3QgcmFkZW9uX2lycSB7CiAJYm9vbAkJCQlpbnN0YWxsZWQ7CkBAIC0xNTY5LDEyICsxNTY5LDIx IEBAIGludCByYWRlb25fdXZkX2NhbGNfdXBsbF9kaXZpZGVycyhzdHJ1Y3QgcmFkZW9uX2Rldmlj ZSAqcmRldiwKIGludCByYWRlb25fdXZkX3NlbmRfdXBsbF9jdGxyZXEoc3RydWN0IHJhZGVvbl9k ZXZpY2UgKnJkZXYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNn X3VwbGxfZnVuY19jbnRsKTsKIAotc3RydWN0IHI2MDBfYXVkaW8geworc3RydWN0IHI2MDBfYXVk aW9fcGluIHsKIAlpbnQJCQljaGFubmVsczsKIAlpbnQJCQlyYXRlOwogCWludAkJCWJpdHNfcGVy X3NhbXBsZTsKIAl1OAkJCXN0YXR1c19iaXRzOwogCXU4CQkJY2F0ZWdvcnlfY29kZTsKKwl1MzIJ CQlvZmZzZXQ7CisJYm9vbAkJCWNvbm5lY3RlZDsKKwl1MzIJCQlpZDsKK307CisKK3N0cnVjdCBy NjAwX2F1ZGlvIHsKKwlib29sIGVuYWJsZWQ7CisJc3RydWN0IHI2MDBfYXVkaW9fcGluIHBpbltS QURFT05fTUFYX0FGTVRfQkxPQ0tTXTsKKwlpbnQgbnVtX3BpbnM7CiB9OwogCiAvKgpAQCAtMjE2 MCw5ICsyMTY5LDggQEAgc3RydWN0IHJhZGVvbl9kZXZpY2UgewogCXN0cnVjdCB3b3JrX3N0cnVj dCByZXNldF93b3JrOwogCWludCBudW1fY3J0YzsgLyogbnVtYmVyIG9mIGNydGNzICovCiAJc3Ry dWN0IG11dGV4IGRjX2h3X2kyY19tdXRleDsgLyogZGlzcGxheSBjb250cm9sbGVyIGh3IGkyYyBt dXRleCAqLwotCWJvb2wgYXVkaW9fZW5hYmxlZDsKIAlib29sIGhhc191dmQ7Ci0Jc3RydWN0IHI2 MDBfYXVkaW8gYXVkaW9fc3RhdHVzOyAvKiBhdWRpbyBzdHVmZiAqLworCXN0cnVjdCByNjAwX2F1 ZGlvIGF1ZGlvOyAvKiBhdWRpbyBzdHVmZiAqLwogCXN0cnVjdCBub3RpZmllcl9ibG9jayBhY3Bp X25iOwogCS8qIG9ubHkgb25lIHVzZXJzcGFjZSBjYW4gdXNlIEh5cGVyeiBmZWF0dXJlcyBvciBD TUFTSyBhdCBhIHRpbWUgKi8KIAlzdHJ1Y3QgZHJtX2ZpbGUgKmh5cGVyel9maWxwOwpAQCAtMjYy OSw2ICsyNjM3LDggQEAgaW50IHJhZGVvbl92bV9ib19ybXYoc3RydWN0IHJhZGVvbl9kZXZpY2Ug KnJkZXYsCiAKIC8qIGF1ZGlvICovCiB2b2lkIHI2MDBfYXVkaW9fdXBkYXRlX2hkbWkoc3RydWN0 IHdvcmtfc3RydWN0ICp3b3JrKTsKK3N0cnVjdCByNjAwX2F1ZGlvX3BpbiAqcjYwMF9hdWRpb19n ZXRfcGluKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KTsKK3N0cnVjdCByNjAwX2F1ZGlvX3Bp biAqZGNlNl9hdWRpb19nZXRfcGluKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KTsKIAogLyoK ICAqIFI2MDAgdnJhbSBzY3JhdGNoIGZ1bmN0aW9ucwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL3JhZGVvbi9yYWRlb25fYXNpYy5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25f YXNpYy5jCmluZGV4IDQxZTlmMzIuLjE4YTY1YTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9yYWRlb24vcmFkZW9uX2FzaWMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVv bl9hc2ljLmMKQEAgLTE3MzksNiArMTczOSw4IEBAIHN0YXRpYyBzdHJ1Y3QgcmFkZW9uX2FzaWMg dHJpbml0eV9hc2ljID0gewogCQkud2FpdF9mb3JfdmJsYW5rID0gJmRjZTRfd2FpdF9mb3JfdmJs YW5rLAogCQkuc2V0X2JhY2tsaWdodF9sZXZlbCA9ICZhdG9tYmlvc19zZXRfYmFja2xpZ2h0X2xl dmVsLAogCQkuZ2V0X2JhY2tsaWdodF9sZXZlbCA9ICZhdG9tYmlvc19nZXRfYmFja2xpZ2h0X2xl dmVsLAorCQkuaGRtaV9lbmFibGUgPSAmZXZlcmdyZWVuX2hkbWlfZW5hYmxlLAorCQkuaGRtaV9z ZXRtb2RlID0gJmV2ZXJncmVlbl9oZG1pX3NldG1vZGUsCiAJfSwKIAkuY29weSA9IHsKIAkJLmJs aXQgPSAmcjYwMF9jb3B5X2NwZG1hLApAQCAtMTg2Nyw2ICsxODY5LDggQEAgc3RhdGljIHN0cnVj dCByYWRlb25fYXNpYyBzaV9hc2ljID0gewogCQkud2FpdF9mb3JfdmJsYW5rID0gJmRjZTRfd2Fp dF9mb3JfdmJsYW5rLAogCQkuc2V0X2JhY2tsaWdodF9sZXZlbCA9ICZhdG9tYmlvc19zZXRfYmFj a2xpZ2h0X2xldmVsLAogCQkuZ2V0X2JhY2tsaWdodF9sZXZlbCA9ICZhdG9tYmlvc19nZXRfYmFj a2xpZ2h0X2xldmVsLAorCQkuaGRtaV9lbmFibGUgPSAmZXZlcmdyZWVuX2hkbWlfZW5hYmxlLAor CQkuaGRtaV9zZXRtb2RlID0gJmV2ZXJncmVlbl9oZG1pX3NldG1vZGUsCiAJfSwKIAkuY29weSA9 IHsKIAkJLmJsaXQgPSBOVUxMLApAQCAtMjAwOSw2ICsyMDEzLDggQEAgc3RhdGljIHN0cnVjdCBy YWRlb25fYXNpYyBjaV9hc2ljID0gewogCQkuYmFuZHdpZHRoX3VwZGF0ZSA9ICZkY2U4X2JhbmR3 aWR0aF91cGRhdGUsCiAJCS5nZXRfdmJsYW5rX2NvdW50ZXIgPSAmZXZlcmdyZWVuX2dldF92Ymxh bmtfY291bnRlciwKIAkJLndhaXRfZm9yX3ZibGFuayA9ICZkY2U0X3dhaXRfZm9yX3ZibGFuaywK KwkJLmhkbWlfZW5hYmxlID0gJmV2ZXJncmVlbl9oZG1pX2VuYWJsZSwKKwkJLmhkbWlfc2V0bW9k ZSA9ICZldmVyZ3JlZW5faGRtaV9zZXRtb2RlLAogCX0sCiAJLmNvcHkgPSB7CiAJCS5ibGl0ID0g TlVMTCwKQEAgLTIxMDcsNiArMjExMyw4IEBAIHN0YXRpYyBzdHJ1Y3QgcmFkZW9uX2FzaWMga3Zf YXNpYyA9IHsKIAkJLmJhbmR3aWR0aF91cGRhdGUgPSAmZGNlOF9iYW5kd2lkdGhfdXBkYXRlLAog CQkuZ2V0X3ZibGFua19jb3VudGVyID0gJmV2ZXJncmVlbl9nZXRfdmJsYW5rX2NvdW50ZXIsCiAJ CS53YWl0X2Zvcl92YmxhbmsgPSAmZGNlNF93YWl0X2Zvcl92YmxhbmssCisJCS5oZG1pX2VuYWJs ZSA9ICZldmVyZ3JlZW5faGRtaV9lbmFibGUsCisJCS5oZG1pX3NldG1vZGUgPSAmZXZlcmdyZWVu X2hkbWlfc2V0bW9kZSwKIAl9LAogCS5jb3B5ID0gewogCQkuYmxpdCA9IE5VTEwsCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9hc2ljLmggYi9kcml2ZXJzL2dwdS9k cm0vcmFkZW9uL3JhZGVvbl9hc2ljLmgKaW5kZXggZTY5ZjAwYS4uODE4YmJlNiAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fYXNpYy5oCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9yYWRlb24vcmFkZW9uX2FzaWMuaApAQCAtMzc5LDcgKzM3OSw3IEBAIHZvaWQgcjYwMF9k aXNhYmxlX2ludGVycnVwdHMoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpOwogdm9pZCByNjAw X3JsY19zdG9wKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KTsKIC8qIHI2MDAgYXVkaW8gKi8K IGludCByNjAwX2F1ZGlvX2luaXQoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpOwotc3RydWN0 IHI2MDBfYXVkaW8gcjYwMF9hdWRpb19zdGF0dXMoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYp Oworc3RydWN0IHI2MDBfYXVkaW9fcGluIHI2MDBfYXVkaW9fc3RhdHVzKHN0cnVjdCByYWRlb25f ZGV2aWNlICpyZGV2KTsKIHZvaWQgcjYwMF9hdWRpb19maW5pKHN0cnVjdCByYWRlb25fZGV2aWNl ICpyZGV2KTsKIGludCByNjAwX2hkbWlfYnVmZmVyX3N0YXR1c19jaGFuZ2VkKHN0cnVjdCBkcm1f ZW5jb2RlciAqZW5jb2Rlcik7CiB2b2lkIHI2MDBfaGRtaV91cGRhdGVfYXVkaW9fc2V0dGluZ3Mo c3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKTsKQEAgLTYyOCw2ICs2MjgsOCBAQCBpbnQgdHJp bml0eV9kcG1fZm9yY2VfcGVyZm9ybWFuY2VfbGV2ZWwoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJk ZXYsCiAKIC8qIERDRTYgLSBTSSAqLwogdm9pZCBkY2U2X2JhbmR3aWR0aF91cGRhdGUoc3RydWN0 IHJhZGVvbl9kZXZpY2UgKnJkZXYpOworaW50IGRjZTZfYXVkaW9faW5pdChzdHJ1Y3QgcmFkZW9u X2RldmljZSAqcmRldik7Cit2b2lkIGRjZTZfYXVkaW9fZmluaShzdHJ1Y3QgcmFkZW9uX2Rldmlj ZSAqcmRldik7CiAKIC8qCiAgKiBzaQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVv bi9yYWRlb25fZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZGlzcGxh eS5jCmluZGV4IDMxZDlmYmUuLmFmOWNkNmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9y YWRlb24vcmFkZW9uX2Rpc3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVv bl9kaXNwbGF5LmMKQEAgLTEyNTQsOCArMTI1NCw4IEBAIHN0YXRpYyB2b2lkIHJhZGVvbl9hZm10 X2luaXQoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCiAJZm9yIChpID0gMDsgaSA8IFJBREVP Tl9NQVhfQUZNVF9CTE9DS1M7IGkrKykKIAkJcmRldi0+bW9kZV9pbmZvLmFmbXRbaV0gPSBOVUxM OwogCi0JaWYgKEFTSUNfSVNfRENFNihyZGV2KSkgewotCQkvKiB0b2RvICovCisJaWYgKEFTSUNf SVNfTk9EQ0UocmRldikpIHsKKwkJLyogbm90aGluZyB0byBkbyAqLwogCX0gZWxzZSBpZiAoQVNJ Q19JU19EQ0U0KHJkZXYpKSB7CiAJCXN0YXRpYyB1aW50MzJfdCBlZ19vZmZzZXRzW10gPSB7CiAJ CQlFVkVSR1JFRU5fQ1JUQzBfUkVHSVNURVJfT0ZGU0VULApAQCAtMTI2NCwxMiArMTI2NCwxOSBA QCBzdGF0aWMgdm9pZCByYWRlb25fYWZtdF9pbml0KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2 KQogCQkJRVZFUkdSRUVOX0NSVEMzX1JFR0lTVEVSX09GRlNFVCwKIAkJCUVWRVJHUkVFTl9DUlRD NF9SRUdJU1RFUl9PRkZTRVQsCiAJCQlFVkVSR1JFRU5fQ1JUQzVfUkVHSVNURVJfT0ZGU0VULAor CQkJMHgxMzgzMCAtIDB4NzAzMCwKIAkJfTsKIAkJaW50IG51bV9hZm10OwogCisJCS8qIERDRTgg aGFzIDcgYXVkaW8gYmxvY2tzIHRpZWQgdG8gRElHIGVuY29kZXJzICovCisJCS8qIERDRTYgaGFz IDYgYXVkaW8gYmxvY2tzIHRpZWQgdG8gRElHIGVuY29kZXJzICovCiAJCS8qIERDRTQvNSBoYXMg NiBhdWRpbyBibG9ja3MgdGllZCB0byBESUcgZW5jb2RlcnMgKi8KIAkJLyogRENFNC4xIGhhcyAy IGF1ZGlvIGJsb2NrcyB0aWVkIHRvIERJRyBlbmNvZGVycyAqLwotCQlpZiAoQVNJQ19JU19EQ0U1 KHJkZXYpKQorCQlpZiAoQVNJQ19JU19EQ0U4KHJkZXYpKQorCQkJbnVtX2FmbXQgPSA3OworCQll bHNlIGlmIChBU0lDX0lTX0RDRTYocmRldikpCisJCQludW1fYWZtdCA9IDY7CisJCWVsc2UgaWYg KEFTSUNfSVNfRENFNShyZGV2KSkKIAkJCW51bV9hZm10ID0gNjsKIAkJZWxzZSBpZiAoQVNJQ19J U19EQ0U0MShyZGV2KSkKIAkJCW51bV9hZm10ID0gMjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9yYWRlb24vcmFkZW9uX21vZGUuaCBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9u X21vZGUuaAppbmRleCA4Mjk2NjMyLi5kOTA4ZDhkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vcmFkZW9uL3JhZGVvbl9tb2RlLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRl b25fbW9kZS5oCkBAIC0yMjUsNiArMjI1LDcgQEAgc3RydWN0IHJhZGVvbl9hZm10IHsKIAlpbnQg b2Zmc2V0OwogCWJvb2wgbGFzdF9idWZmZXJfZmlsbGVkX3N0YXR1czsKIAlpbnQgaWQ7CisJc3Ry dWN0IHI2MDBfYXVkaW9fcGluICpwaW47CiB9OwogCiBzdHJ1Y3QgcmFkZW9uX21vZGVfaW5mbyB7 CkBAIC0yMzMsNyArMjM0LDcgQEAgc3RydWN0IHJhZGVvbl9tb2RlX2luZm8gewogCWVudW0gcmFk ZW9uX2Nvbm5lY3Rvcl90YWJsZSBjb25uZWN0b3JfdGFibGU7CiAJYm9vbCBtb2RlX2NvbmZpZ19p bml0aWFsaXplZDsKIAlzdHJ1Y3QgcmFkZW9uX2NydGMgKmNydGNzWzZdOwotCXN0cnVjdCByYWRl b25fYWZtdCAqYWZtdFs2XTsKKwlzdHJ1Y3QgcmFkZW9uX2FmbXQgKmFmbXRbN107CiAJLyogRFZJ LUkgcHJvcGVydGllcyAqLwogCXN0cnVjdCBkcm1fcHJvcGVydHkgKmNvaGVyZW50X21vZGVfcHJv cGVydHk7CiAJLyogREFDIGVuYWJsZSBsb2FkIGRldGVjdCAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL3JhZGVvbi9zaS5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9zaS5jCmluZGV4 IGNhMzdhYTEuLjIxOWNhMzUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vc2ku YworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3NpLmMKQEAgLTYzNjEsNiArNjM2MSwxMCBA QCBzdGF0aWMgaW50IHNpX3N0YXJ0dXAoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCiAJCXJl dHVybiByOwogCX0KIAorCXIgPSBkY2U2X2F1ZGlvX2luaXQocmRldik7CisJaWYgKHIpCisJCXJl dHVybiByOworCiAJcmV0dXJuIDA7CiB9CiAKQEAgLTYzOTIsNiArNjM5Niw3IEBAIGludCBzaV9y ZXN1bWUoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCiAKIGludCBzaV9zdXNwZW5kKHN0cnVj dCByYWRlb25fZGV2aWNlICpyZGV2KQogeworCWRjZTZfYXVkaW9fZmluaShyZGV2KTsKIAlyYWRl b25fdm1fbWFuYWdlcl9maW5pKHJkZXYpOwogCXNpX2NwX2VuYWJsZShyZGV2LCBmYWxzZSk7CiAJ Y2F5bWFuX2RtYV9zdG9wKHJkZXYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVv bi9zaWQuaCBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vc2lkLmgKaW5kZXggMmM4ZGEyNy4uOTY4 Y2Y2OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9zaWQuaAorKysgYi9kcml2 ZXJzL2dwdS9kcm0vcmFkZW9uL3NpZC5oCkBAIC02MzUsNiArNjM1LDU0IEBACiAKICNkZWZpbmUg SERQX1JFR19DT0hFUkVOQ1lfRkxVU0hfQ05UTAkJCTB4NTRBMAogCisvKiBEQ0U2IEVMRCBhdWRp byBpbnRlcmZhY2UgKi8KKyNkZWZpbmUgQVpfRjBfQ09ERUNfRU5EUE9JTlRfSU5ERVggICAgICAg ICAgICAgICAgICAgICAgIDB4NUUwMAorIyAgICAgICBkZWZpbmUgQVpfRU5EUE9JTlRfUkVHX0lO REVYKHgpICAgICAgICAgICAgICAgICAgKCgoeCkgJiAweGZmKSA8PCAwKQorIyAgICAgICBkZWZp bmUgQVpfRU5EUE9JTlRfUkVHX1dSSVRFX0VOICAgICAgICAgICAgICAgICAgKDEgPDwgOCkKKyNk ZWZpbmUgQVpfRjBfQ09ERUNfRU5EUE9JTlRfREFUQSAgICAgICAgICAgICAgICAgICAgICAgIDB4 NUUwNAorCisjZGVmaW5lIEFaX0YwX0NPREVDX1BJTl9DT05UUk9MX0NIQU5ORUxfU1BFQUtFUiAg ICAgICAgICAweDI1CisjZGVmaW5lCQlTUEVBS0VSX0FMTE9DQVRJT04oeCkJCQkoKCh4KSAmIDB4 N2YpIDw8IDApCisjZGVmaW5lCQlTUEVBS0VSX0FMTE9DQVRJT05fTUFTSwkJCSgweDdmIDw8IDAp CisjZGVmaW5lCQlTUEVBS0VSX0FMTE9DQVRJT05fU0hJRlQJCTAKKyNkZWZpbmUJCUhETUlfQ09O TkVDVElPTgkJCQkoMSA8PCAxNikKKyNkZWZpbmUJCURQX0NPTk5FQ1RJT04JCQkJKDEgPDwgMTcp CisKKyNkZWZpbmUgQVpfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjAgICAg ICAgIDB4MjggLyogTFBDTSAqLworI2RlZmluZSBBWl9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJ T19ERVNDUklQVE9SMSAgICAgICAgMHgyOSAvKiBBQzMgKi8KKyNkZWZpbmUgQVpfRjBfQ09ERUNf UElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjIgICAgICAgIDB4MkEgLyogTVBFRzEgKi8KKyNk ZWZpbmUgQVpfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjMgICAgICAgIDB4 MkIgLyogTVAzICovCisjZGVmaW5lIEFaX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NS SVBUT1I0ICAgICAgICAweDJDIC8qIE1QRUcyICovCisjZGVmaW5lIEFaX0YwX0NPREVDX1BJTl9D T05UUk9MX0FVRElPX0RFU0NSSVBUT1I1ICAgICAgICAweDJEIC8qIEFBQyAqLworI2RlZmluZSBB Wl9GMF9DT0RFQ19QSU5fQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNiAgICAgICAgMHgyRSAvKiBE VFMgKi8KKyNkZWZpbmUgQVpfRjBfQ09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjcg ICAgICAgIDB4MkYgLyogQVRSQUMgKi8KKyNkZWZpbmUgQVpfRjBfQ09ERUNfUElOX0NPTlRST0xf QVVESU9fREVTQ1JJUFRPUjggICAgICAgIDB4MzAgLyogb25lIGJpdCBhdWRpbyAtIGxlYXZlIGF0 IDAgKGRlZmF1bHQpICovCisjZGVmaW5lIEFaX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RF U0NSSVBUT1I5ICAgICAgICAweDMxIC8qIERvbGJ5IERpZ2l0YWwgKi8KKyNkZWZpbmUgQVpfRjBf Q09ERUNfUElOX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEwICAgICAgIDB4MzIgLyogRFRTLUhE ICovCisjZGVmaW5lIEFaX0YwX0NPREVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMSAg ICAgICAweDMzIC8qIE1BVC1NTFAgKi8KKyNkZWZpbmUgQVpfRjBfQ09ERUNfUElOX0NPTlRST0xf QVVESU9fREVTQ1JJUFRPUjEyICAgICAgIDB4MzQgLyogRFRTICovCisjZGVmaW5lIEFaX0YwX0NP REVDX1BJTl9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMyAgICAgICAweDM1IC8qIFdNQSBQcm8g Ki8KKyMgICAgICAgZGVmaW5lIE1BWF9DSEFOTkVMUyh4KSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoKCh4KSAmIDB4NykgPDwgMCkKKy8qIG1heCBjaGFubmVscyBtaW51cyBvbmUuICA3ID0g OCBjaGFubmVscyAqLworIyAgICAgICBkZWZpbmUgU1VQUE9SVEVEX0ZSRVFVRU5DSUVTKHgpICAg ICAgICAgICAgICAgICAgICgoKHgpICYgMHhmZikgPDwgOCkKKyMgICAgICAgZGVmaW5lIERFU0NS SVBUT1JfQllURV8yKHgpICAgICAgICAgICAgICAgICAgICAgICAoKCh4KSAmIDB4ZmYpIDw8IDE2 KQorIyAgICAgICBkZWZpbmUgU1VQUE9SVEVEX0ZSRVFVRU5DSUVTX1NURVJFTyh4KSAgICAgICAg ICAgICgoKHgpICYgMHhmZikgPDwgMjQpIC8qIExQQ00gb25seSAqLworLyogU1VQUE9SVEVEX0ZS RVFVRU5DSUVTLCBTVVBQT1JURURfRlJFUVVFTkNJRVNfU1RFUkVPCisgKiBiaXQwID0gMzIga0h6 CisgKiBiaXQxID0gNDQuMSBrSHoKKyAqIGJpdDIgPSA0OCBrSHoKKyAqIGJpdDMgPSA4OC4yIGtI egorICogYml0NCA9IDk2IGtIegorICogYml0NSA9IDE3Ni40IGtIegorICogYml0NiA9IDE5MiBr SHoKKyAqLworI2RlZmluZSBBWl9GMF9DT0RFQ19QSU5fQ09OVFJPTF9IT1RQTFVHX0NPTlRST0wg ICAgICAgICAgMHg1NAorIyAgICAgICBkZWZpbmUgQVVESU9fRU5BQkxFRCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKDEgPDwgMzEpCisKKyNkZWZpbmUgQVpfRjBfQ09ERUNfUElOX0NPTlRS T0xfUkVTUE9OU0VfQ09ORklHVVJBVElPTl9ERUZBVUxUICAweDU2CisjZGVmaW5lCQlQT1JUX0NP Tk5FQ1RJVklUWV9NQVNLCQkJCSgzIDw8IDMwKQorI2RlZmluZQkJUE9SVF9DT05ORUNUSVZJVFlf U0hJRlQJCQkJMzAKKwogI2RlZmluZQlEQ19MQl9NRU1PUllfU1BMSVQJCQkJCTB4NmIwYwogI2Rl ZmluZQkJRENfTEJfTUVNT1JZX0NPTkZJRyh4KQkJCQkoKHgpIDw8IDIwKQogCkBAIC03NTUsNiAr ODAzLDE3IEBACiAvKiAweDZlOTgsIDB4N2E5OCwgMHgxMDY5OCwgMHgxMTI5OCwgMHgxMWU5OCwg MHgxMmE5OCAqLwogI2RlZmluZSBDUlRDX1NUQVRVU19GUkFNRV9DT1VOVCAgICAgICAgICAgICAg ICAgICAgICAgICAweDZlOTgKIAorI2RlZmluZSBBRk1UX0FVRElPX1NSQ19DT05UUk9MICAgICAg ICAgICAgICAgICAgICAgICAgICAweDcxM2MKKyNkZWZpbmUJCUFGTVRfQVVESU9fU1JDX1NFTEVD VCh4KQkJKCgoeCkgJiA3KSA8PCAwKQorLyogQUZNVF9BVURJT19TUkNfU0VMRUNUCisgKiAwID0g c3RyZWFtMAorICogMSA9IHN0cmVhbTEKKyAqIDIgPSBzdHJlYW0yCisgKiAzID0gc3RyZWFtMwor ICogNCA9IHN0cmVhbTQKKyAqIDUgPSBzdHJlYW01CisgKi8KKwogI2RlZmluZQlHUkJNX0NOVEwJ CQkJCTB4ODAwMAogI2RlZmluZQkJR1JCTV9SRUFEX1RJTUVPVVQoeCkJCQkJKCh4KSA8PCAwKQog Ci0tIAoxLjguMy4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZl bAo=