From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= Subject: [deathsimple/drm-next-3.16][PATCH V4 1/4] drm/radeon/hdmi: use separated file for DCE 3.1/3.2 code Date: Fri, 16 May 2014 11:36:24 +0200 Message-ID: <1400232984-6009-1-git-send-email-zajec5@gmail.com> References: <1400231431-4844-1-git-send-email-zajec5@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-ee0-f44.google.com (mail-ee0-f44.google.com [74.125.83.44]) by gabe.freedesktop.org (Postfix) with ESMTP id ECCCA6E881 for ; Fri, 16 May 2014 02:36:37 -0700 (PDT) Received: by mail-ee0-f44.google.com with SMTP id c41so1348853eek.17 for ; Fri, 16 May 2014 02:36:36 -0700 (PDT) In-Reply-To: <1400231431-4844-1-git-send-email-zajec5@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org, =?UTF-8?q?Christian=20K=C3=B6nig?= List-Id: dri-devel@lists.freedesktop.org RENFIDMuMSBhbmQgMy4yIHNob3VsZCBiZSBwcm9ncmFtbWVkIGluIGEgZGlmZmVyZW50IHdheSB0 aGFuIERDRSAyIGFuZApEQ0UgMy4gVGhlIG9yZGVyIG9mIHNldHRpbmcgcmVnaXN0ZXJzIGFuZCBz ZXRzIG9mIHJlZ2lzdGVycyBhcmUKZGlmZmVyZW50LgpJdCdzIHN0aWxsIHVuc3VyZSBob3cgd2Ug d2lsbCBoYW5kbGUgRENFIDMuMSB2cy4gRENFIDMuMiwgc2luY2UgdGhleQpoYXZlIGZldyBkaWZm ZXJlbmNlcyBhcyB3ZWxsLgpGb3Igbm93IHNlcGFyYXRlIERDRSAyIGFuZCBEQ0UgMyBwYXRoLCBz byB3ZSBjYW4gd29yayBvbiBpdCB3aXRob3V0IGEKcmlzayBvZiBicmVha2luZyBEQ0UgMy4xKy4K ClRoaXMgaGFzIGJlZW4gdGVzdGVkIGZvciBwb3NzaWJsZSByZWdyZXNzaW9ucyBvbiBEQ0UzMiBI RDQ1NTAgKFJWNzEwKS4KClNpZ25lZC1vZmYtYnk6IFJhZmHFgiBNacWCZWNraSA8emFqZWM1QGdt YWlsLmNvbT4KLS0tClY0OiBBZGQgQ29weXJpZ2h0IGhlYWRlci4gQWxleCBpcyBhbiBhdXRob3Ig b2YKICAgIGRjZTNfMl9hZm10X3dyaXRlX3NwZWFrZXJfYWxsb2NhdGlvbgogICAgZGNlM18yX2Fm bXRfd3JpdGVfc2FkX3JlZ3MKICAgIGFuZCBJJ20gcHJldHR5IG11Y2ggYW4gYXV0aG9yIG9mCiAg ICBkY2UzXzFfaGRtaV9zZXRtb2RlCi0tLQogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9NYWtlZmls ZSAgICAgIHwgICAyICstCiBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2RjZTNfMV9hZm10LmMgfCAy NDQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9y YWRlb24vcjYwMF9oZG1pLmMgICB8IDE0OSArKy0tLS0tLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMv Z3B1L2RybS9yYWRlb24vcmFkZW9uX2FzaWMuYyB8ICAgMiArLQogZHJpdmVycy9ncHUvZHJtL3Jh ZGVvbi9yYWRlb25fYXNpYy5oIHwgICA3ICsKIDUgZmlsZXMgY2hhbmdlZCwgMjYzIGluc2VydGlv bnMoKyksIDE0MSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9k cm0vcmFkZW9uL2RjZTNfMV9hZm10LmMKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFk ZW9uL01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9NYWtlZmlsZQppbmRleCAwOTQz MzUzLi5kYmNiZmU4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL01ha2VmaWxl CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vTWFrZWZpbGUKQEAgLTcyLDcgKzcyLDcgQEAg cmFkZW9uLXkgKz0gcmFkZW9uX2RldmljZS5vIHJhZGVvbl9hc2ljLm8gcmFkZW9uX2ttcy5vIFwK IAlyYWRlb25fY3MubyByYWRlb25fYmlvcy5vIHJhZGVvbl9iZW5jaG1hcmsubyByMTAwLm8gcjMw MC5vIHI0MjAubyBcCiAJcnM0MDAubyByczYwMC5vIHJzNjkwLm8gcnY1MTUubyByNTIwLm8gcjYw MC5vIHJ2NzcwLm8gcmFkZW9uX3Rlc3QubyBcCiAJcjIwMC5vIHJhZGVvbl9sZWdhY3lfdHYubyBy NjAwX2NzLm8gcjYwMF9ibGl0X3NoYWRlcnMubyBcCi0JcmFkZW9uX3BtLm8gYXRvbWJpb3NfZHAu byByNjAwX2F1ZGlvLm8gcjYwMF9oZG1pLm8gXAorCXJhZGVvbl9wbS5vIGF0b21iaW9zX2RwLm8g cjYwMF9hdWRpby5vIHI2MDBfaGRtaS5vIGRjZTNfMV9hZm10Lm8gXAogCWV2ZXJncmVlbi5vIGV2 ZXJncmVlbl9jcy5vIGV2ZXJncmVlbl9ibGl0X3NoYWRlcnMubyBcCiAJZXZlcmdyZWVuX2hkbWku byByYWRlb25fdHJhY2VfcG9pbnRzLm8gbmkubyBjYXltYW5fYmxpdF9zaGFkZXJzLm8gXAogCWF0 b21iaW9zX2VuY29kZXJzLm8gcmFkZW9uX3NlbWFwaG9yZS5vIHJhZGVvbl9zYS5vIGF0b21iaW9z X2kyYy5vIHNpLm8gXApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9kY2UzXzFf YWZtdC5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9kY2UzXzFfYWZtdC5jCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUxODAwZTMKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2 ZXJzL2dwdS9kcm0vcmFkZW9uL2RjZTNfMV9hZm10LmMKQEAgLTAsMCArMSwyNDQgQEAKKy8qCisg KiBDb3B5cmlnaHQgMjAxMyBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuCisgKiBDb3B5cmln aHQgMjAxNCBSYWZhxYIgTWnFgmVja2kKKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFu dGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBv ZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAi U29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rp b24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBj b3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICog YW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25z IHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3Qg dG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQg bm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisg KiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAq CisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBP RiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElN SVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZP UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQg U0hBTEwKKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIE9SIEFVVEhPUihTKSBCRSBMSUFCTEUg Rk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgorICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElO IEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCisgKiBBUklTSU5HIEZS T00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0Ug T1IKKyAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqLworI2luY2x1ZGUgPGxp bnV4L2hkbWkuaD4KKyNpbmNsdWRlIDxkcm0vZHJtUC5oPgorI2luY2x1ZGUgInJhZGVvbi5oIgor I2luY2x1ZGUgInJhZGVvbl9hc2ljLmgiCisjaW5jbHVkZSAicjYwMGQuaCIKKworc3RhdGljIHZv aWQgZGNlM18yX2FmbXRfd3JpdGVfc3BlYWtlcl9hbGxvY2F0aW9uKHN0cnVjdCBkcm1fZW5jb2Rl ciAqZW5jb2RlcikKK3sKKwlzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiA9IGVuY29kZXItPmRl di0+ZGV2X3ByaXZhdGU7CisJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcjsKKwlzdHJ1 Y3QgcmFkZW9uX2Nvbm5lY3RvciAqcmFkZW9uX2Nvbm5lY3RvciA9IE5VTEw7CisJdTMyIHRtcDsK Kwl1OCAqc2FkYjsKKwlpbnQgc2FkX2NvdW50OworCisJbGlzdF9mb3JfZWFjaF9lbnRyeShjb25u ZWN0b3IsICZlbmNvZGVyLT5kZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rvcl9saXN0LCBoZWFkKSB7 CisJCWlmIChjb25uZWN0b3ItPmVuY29kZXIgPT0gZW5jb2RlcikgeworCQkJcmFkZW9uX2Nvbm5l Y3RvciA9IHRvX3JhZGVvbl9jb25uZWN0b3IoY29ubmVjdG9yKTsKKwkJCWJyZWFrOworCQl9CisJ fQorCisJaWYgKCFyYWRlb25fY29ubmVjdG9yKSB7CisJCURSTV9FUlJPUigiQ291bGRuJ3QgZmlu ZCBlbmNvZGVyJ3MgY29ubmVjdG9yXG4iKTsKKwkJcmV0dXJuOworCX0KKworCXNhZF9jb3VudCA9 IGRybV9lZGlkX3RvX3NwZWFrZXJfYWxsb2NhdGlvbihyYWRlb25fY29ubmVjdG9yLT5lZGlkLCAm c2FkYik7CisJaWYgKHNhZF9jb3VudCA8IDApIHsKKwkJRFJNX0VSUk9SKCJDb3VsZG4ndCByZWFk IFNwZWFrZXIgQWxsb2NhdGlvbiBEYXRhIEJsb2NrOiAlZFxuIiwgc2FkX2NvdW50KTsKKwkJcmV0 dXJuOworCX0KKworCS8qIHByb2dyYW0gdGhlIHNwZWFrZXIgYWxsb2NhdGlvbiAqLworCXRtcCA9 IFJSRUczMihBWl9GMF9DT0RFQ19QSU4wX0NPTlRST0xfQ0hBTk5FTF9TUEVBS0VSKTsKKwl0bXAg Jj0gfihEUF9DT05ORUNUSU9OIHwgU1BFQUtFUl9BTExPQ0FUSU9OX01BU0spOworCS8qIHNldCBI RE1JIG1vZGUgKi8KKwl0bXAgfD0gSERNSV9DT05ORUNUSU9OOworCWlmIChzYWRfY291bnQpCisJ CXRtcCB8PSBTUEVBS0VSX0FMTE9DQVRJT04oc2FkYlswXSk7CisJZWxzZQorCQl0bXAgfD0gU1BF QUtFUl9BTExPQ0FUSU9OKDUpOyAvKiBzdGVyZW8gKi8KKwlXUkVHMzIoQVpfRjBfQ09ERUNfUElO MF9DT05UUk9MX0NIQU5ORUxfU1BFQUtFUiwgdG1wKTsKKworCWtmcmVlKHNhZGIpOworfQorCitz dGF0aWMgdm9pZCBkY2UzXzJfYWZtdF93cml0ZV9zYWRfcmVncyhzdHJ1Y3QgZHJtX2VuY29kZXIg KmVuY29kZXIpCit7CisJc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYgPSBlbmNvZGVyLT5kZXYt PmRldl9wcml2YXRlOworCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3I7CisJc3RydWN0 IHJhZGVvbl9jb25uZWN0b3IgKnJhZGVvbl9jb25uZWN0b3IgPSBOVUxMOworCXN0cnVjdCBjZWFf c2FkICpzYWRzOworCWludCBpLCBzYWRfY291bnQ7CisKKwlzdGF0aWMgY29uc3QgdTE2IGVsZF9y ZWdfdG9fdHlwZVtdWzJdID0geworCQl7IEFaX0YwX0NPREVDX1BJTjBfQ09OVFJPTF9BVURJT19E RVNDUklQVE9SMCwgSERNSV9BVURJT19DT0RJTkdfVFlQRV9QQ00gfSwKKwkJeyBBWl9GMF9DT0RF Q19QSU4wX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEsIEhETUlfQVVESU9fQ09ESU5HX1RZUEVf QUMzIH0sCisJCXsgQVpfRjBfQ09ERUNfUElOMF9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IyLCBI RE1JX0FVRElPX0NPRElOR19UWVBFX01QRUcxIH0sCisJCXsgQVpfRjBfQ09ERUNfUElOMF9DT05U Uk9MX0FVRElPX0RFU0NSSVBUT1IzLCBIRE1JX0FVRElPX0NPRElOR19UWVBFX01QMyB9LAorCQl7 IEFaX0YwX0NPREVDX1BJTjBfQ09OVFJPTF9BVURJT19ERVNDUklQVE9SNCwgSERNSV9BVURJT19D T0RJTkdfVFlQRV9NUEVHMiB9LAorCQl7IEFaX0YwX0NPREVDX1BJTjBfQ09OVFJPTF9BVURJT19E RVNDUklQVE9SNSwgSERNSV9BVURJT19DT0RJTkdfVFlQRV9BQUNfTEMgfSwKKwkJeyBBWl9GMF9D T0RFQ19QSU4wX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjYsIEhETUlfQVVESU9fQ09ESU5HX1RZ UEVfRFRTIH0sCisJCXsgQVpfRjBfQ09ERUNfUElOMF9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I3 LCBIRE1JX0FVRElPX0NPRElOR19UWVBFX0FUUkFDIH0sCisJCXsgQVpfRjBfQ09ERUNfUElOMF9D T05UUk9MX0FVRElPX0RFU0NSSVBUT1I5LCBIRE1JX0FVRElPX0NPRElOR19UWVBFX0VBQzMgfSwK KwkJeyBBWl9GMF9DT0RFQ19QSU4wX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEwLCBIRE1JX0FV RElPX0NPRElOR19UWVBFX0RUU19IRCB9LAorCQl7IEFaX0YwX0NPREVDX1BJTjBfQ09OVFJPTF9B VURJT19ERVNDUklQVE9SMTEsIEhETUlfQVVESU9fQ09ESU5HX1RZUEVfTUxQIH0sCisJCXsgQVpf RjBfQ09ERUNfUElOMF9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxMywgSERNSV9BVURJT19DT0RJ TkdfVFlQRV9XTUFfUFJPIH0sCisJfTsKKworCWxpc3RfZm9yX2VhY2hfZW50cnkoY29ubmVjdG9y LCAmZW5jb2Rlci0+ZGV2LT5tb2RlX2NvbmZpZy5jb25uZWN0b3JfbGlzdCwgaGVhZCkgeworCQlp ZiAoY29ubmVjdG9yLT5lbmNvZGVyID09IGVuY29kZXIpIHsKKwkJCXJhZGVvbl9jb25uZWN0b3Ig PSB0b19yYWRlb25fY29ubmVjdG9yKGNvbm5lY3Rvcik7CisJCQlicmVhazsKKwkJfQorCX0KKwor CWlmICghcmFkZW9uX2Nvbm5lY3RvcikgeworCQlEUk1fRVJST1IoIkNvdWxkbid0IGZpbmQgZW5j b2RlcidzIGNvbm5lY3RvclxuIik7CisJCXJldHVybjsKKwl9CisKKwlzYWRfY291bnQgPSBkcm1f ZWRpZF90b19zYWQocmFkZW9uX2Nvbm5lY3Rvci0+ZWRpZCwgJnNhZHMpOworCWlmIChzYWRfY291 bnQgPCAwKSB7CisJCURSTV9FUlJPUigiQ291bGRuJ3QgcmVhZCBTQURzOiAlZFxuIiwgc2FkX2Nv dW50KTsKKwkJcmV0dXJuOworCX0KKwlCVUdfT04oIXNhZHMpOworCisJZm9yIChpID0gMDsgaSA8 IEFSUkFZX1NJWkUoZWxkX3JlZ190b190eXBlKTsgaSsrKSB7CisJCXUzMiB2YWx1ZSA9IDA7CisJ CXU4IHN0ZXJlb19mcmVxcyA9IDA7CisJCWludCBtYXhfY2hhbm5lbHMgPSAtMTsKKwkJaW50IGo7 CisKKwkJZm9yIChqID0gMDsgaiA8IHNhZF9jb3VudDsgaisrKSB7CisJCQlzdHJ1Y3QgY2VhX3Nh ZCAqc2FkID0gJnNhZHNbal07CisKKwkJCWlmIChzYWQtPmZvcm1hdCA9PSBlbGRfcmVnX3RvX3R5 cGVbaV1bMV0pIHsKKwkJCQlpZiAoc2FkLT5jaGFubmVscyA+IG1heF9jaGFubmVscykgeworCQkJ CQl2YWx1ZSA9IE1BWF9DSEFOTkVMUyhzYWQtPmNoYW5uZWxzKSB8CisJCQkJCQlERVNDUklQVE9S X0JZVEVfMihzYWQtPmJ5dGUyKSB8CisJCQkJCQlTVVBQT1JURURfRlJFUVVFTkNJRVMoc2FkLT5m cmVxKTsKKwkJCQkJbWF4X2NoYW5uZWxzID0gc2FkLT5jaGFubmVsczsKKwkJCQl9CisKKwkJCQlp ZiAoc2FkLT5mb3JtYXQgPT0gSERNSV9BVURJT19DT0RJTkdfVFlQRV9QQ00pCisJCQkJCXN0ZXJl b19mcmVxcyB8PSBzYWQtPmZyZXE7CisJCQkJZWxzZQorCQkJCQlicmVhazsKKwkJCX0KKwkJfQor CisJCXZhbHVlIHw9IFNVUFBPUlRFRF9GUkVRVUVOQ0lFU19TVEVSRU8oc3RlcmVvX2ZyZXFzKTsK KworCQlXUkVHMzIoZWxkX3JlZ190b190eXBlW2ldWzBdLCB2YWx1ZSk7CisJfQorCisJa2ZyZWUo c2Fkcyk7Cit9CisKKy8qCisgKiB1cGRhdGUgdGhlIGluZm8gZnJhbWVzIHdpdGggdGhlIGRhdGEg ZnJvbSB0aGUgY3VycmVudCBkaXNwbGF5IG1vZGUKKyAqLwordm9pZCBkY2UzXzFfaGRtaV9zZXRt b2RlKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rlciwgc3RydWN0IGRybV9kaXNwbGF5X21vZGUg Km1vZGUpCit7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmRldjsKKwlzdHJ1 Y3QgcmFkZW9uX2RldmljZSAqcmRldiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJc3RydWN0IHJhZGVv bl9lbmNvZGVyICpyYWRlb25fZW5jb2RlciA9IHRvX3JhZGVvbl9lbmNvZGVyKGVuY29kZXIpOwor CXN0cnVjdCByYWRlb25fZW5jb2Rlcl9hdG9tX2RpZyAqZGlnID0gcmFkZW9uX2VuY29kZXItPmVu Y19wcml2OworCXU4IGJ1ZmZlcltIRE1JX0lORk9GUkFNRV9IRUFERVJfU0laRSArIEhETUlfQVZJ X0lORk9GUkFNRV9TSVpFXTsKKwlzdHJ1Y3QgaGRtaV9hdmlfaW5mb2ZyYW1lIGZyYW1lOworCXVp bnQzMl90IG9mZnNldDsKKwlzc2l6ZV90IGVycjsKKworCWlmICghZGlnIHx8ICFkaWctPmFmbXQp CisJCXJldHVybjsKKworCS8qIFNpbGVudCwgcjYwMF9oZG1pX2VuYWJsZSB3aWxsIHJhaXNlIFdB Uk4gZm9yIHVzICovCisJaWYgKCFkaWctPmFmbXQtPmVuYWJsZWQpCisJCXJldHVybjsKKwlvZmZz ZXQgPSBkaWctPmFmbXQtPm9mZnNldDsKKworCS8qIGRpc2FibGUgYXVkaW8gcHJpb3IgdG8gc2V0 dGluZyB1cCBodyAqLworCWRpZy0+YWZtdC0+cGluID0gcjYwMF9hdWRpb19nZXRfcGluKHJkZXYp OworCXI2MDBfYXVkaW9fZW5hYmxlKHJkZXYsIGRpZy0+YWZtdC0+cGluLCBmYWxzZSk7CisKKwly NjAwX2F1ZGlvX3NldF9kdG8oZW5jb2RlciwgbW9kZS0+Y2xvY2spOworCisJV1JFRzMyKEhETUkw X1ZCSV9QQUNLRVRfQ09OVFJPTCArIG9mZnNldCwKKwkgICAgICAgSERNSTBfTlVMTF9TRU5EKTsg Lyogc2VuZCBudWxsIHBhY2tldHMgd2hlbiByZXF1aXJlZCAqLworCisJV1JFRzMyKEhETUkwX0FV RElPX0NSQ19DT05UUk9MICsgb2Zmc2V0LCAweDEwMDApOworCisJaWYgKEFTSUNfSVNfRENFMzIo cmRldikpIHsKKwkJV1JFRzMyKEhETUkwX0FVRElPX1BBQ0tFVF9DT05UUk9MICsgb2Zmc2V0LAor CQkgICAgICAgSERNSTBfQVVESU9fREVMQVlfRU4oMSkgfCAvKiBkZWZhdWx0IGF1ZGlvIGRlbGF5 ICovCisJCSAgICAgICBIRE1JMF9BVURJT19QQUNLRVRTX1BFUl9MSU5FKDMpKTsgLyogc2hvdWxk IGJlIHN1ZmZpZW50IGZvciBhbGwgYXVkaW8gbW9kZXMgYW5kIHNtYWxsIGVub3VnaCBmb3IgYWxs IGhibGFua3MgKi8KKwkJV1JFRzMyKEFGTVRfQVVESU9fUEFDS0VUX0NPTlRST0wgKyBvZmZzZXQs CisJCSAgICAgICBBRk1UX0FVRElPX1NBTVBMRV9TRU5EIHwgLyogc2VuZCBhdWRpbyBwYWNrZXRz ICovCisJCSAgICAgICBBRk1UXzYwOTU4X0NTX1VQREFURSk7IC8qIGFsbG93IDYwOTU4IGNoYW5u ZWwgc3RhdHVzIGZpZWxkcyB0byBiZSB1cGRhdGVkICovCisJfSBlbHNlIHsKKwkJV1JFRzMyKEhE TUkwX0FVRElPX1BBQ0tFVF9DT05UUk9MICsgb2Zmc2V0LAorCQkgICAgICAgSERNSTBfQVVESU9f U0FNUExFX1NFTkQgfCAvKiBzZW5kIGF1ZGlvIHBhY2tldHMgKi8KKwkJICAgICAgIEhETUkwX0FV RElPX0RFTEFZX0VOKDEpIHwgLyogZGVmYXVsdCBhdWRpbyBkZWxheSAqLworCQkgICAgICAgSERN STBfQVVESU9fUEFDS0VUU19QRVJfTElORSgzKSB8IC8qIHNob3VsZCBiZSBzdWZmaWVudCBmb3Ig YWxsIGF1ZGlvIG1vZGVzIGFuZCBzbWFsbCBlbm91Z2ggZm9yIGFsbCBoYmxhbmtzICovCisJCSAg ICAgICBIRE1JMF82MDk1OF9DU19VUERBVEUpOyAvKiBhbGxvdyA2MDk1OCBjaGFubmVsIHN0YXR1 cyBmaWVsZHMgdG8gYmUgdXBkYXRlZCAqLworCX0KKworCWlmIChBU0lDX0lTX0RDRTMyKHJkZXYp KSB7CisJCWRjZTNfMl9hZm10X3dyaXRlX3NwZWFrZXJfYWxsb2NhdGlvbihlbmNvZGVyKTsKKwkJ ZGNlM18yX2FmbXRfd3JpdGVfc2FkX3JlZ3MoZW5jb2Rlcik7CisJfQorCisJV1JFRzMyKEhETUkw X0FDUl9QQUNLRVRfQ09OVFJPTCArIG9mZnNldCwKKwkgICAgICAgSERNSTBfQUNSX1NPVVJDRSB8 IC8qIHNlbGVjdCBTVyBDVFMgdmFsdWUgLSBYWFggdmVyaWZ5IHRoYXQgaHcgQ1RTIHdvcmtzIG9u IGFsbCBmYW1pbGllcyAqLworCSAgICAgICBIRE1JMF9BQ1JfQVVUT19TRU5EKTsgLyogYWxsb3cg aHcgdG8gc2VudCBBQ1IgcGFja2V0cyB3aGVuIHJlcXVpcmVkICovCisKKwlXUkVHMzIoSERNSTBf VkJJX1BBQ0tFVF9DT05UUk9MICsgb2Zmc2V0LAorCSAgICAgICBIRE1JMF9OVUxMX1NFTkQgfCAv KiBzZW5kIG51bGwgcGFja2V0cyB3aGVuIHJlcXVpcmVkICovCisJICAgICAgIEhETUkwX0dDX1NF TkQgfCAvKiBzZW5kIGdlbmVyYWwgY29udHJvbCBwYWNrZXRzICovCisJICAgICAgIEhETUkwX0dD X0NPTlQpOyAvKiBzZW5kIGdlbmVyYWwgY29udHJvbCBwYWNrZXRzIGV2ZXJ5IGZyYW1lICovCisK KwkvKiBUT0RPOiBIRE1JMF9BVURJT19JTkZPX1VQREFURSAqLworCVdSRUczMihIRE1JMF9JTkZP RlJBTUVfQ09OVFJPTDAgKyBvZmZzZXQsCisJICAgICAgIEhETUkwX0FWSV9JTkZPX1NFTkQgfCAv KiBlbmFibGUgQVZJIGluZm8gZnJhbWVzICovCisJICAgICAgIEhETUkwX0FWSV9JTkZPX0NPTlQg fCAvKiBzZW5kIEFWSSBpbmZvIGZyYW1lcyBldmVyeSBmcmFtZS9maWVsZCAqLworCSAgICAgICBI RE1JMF9BVURJT19JTkZPX1NFTkQgfCAvKiBlbmFibGUgYXVkaW8gaW5mbyBmcmFtZXMgKGZyYW1l cyB3b24ndCBiZSBzZXQgdW50aWwgYXVkaW8gaXMgZW5hYmxlZCkgKi8KKwkgICAgICAgSERNSTBf QVVESU9fSU5GT19DT05UKTsgLyogc2VuZCBhdWRpbyBpbmZvIGZyYW1lcyBldmVyeSBmcmFtZS9m aWVsZCAqLworCisJV1JFRzMyKEhETUkwX0lORk9GUkFNRV9DT05UUk9MMSArIG9mZnNldCwKKwkg ICAgICAgSERNSTBfQVZJX0lORk9fTElORSgyKSB8IC8qIGFueXRoaW5nIG90aGVyIHRoYW4gMCAq LworCSAgICAgICBIRE1JMF9BVURJT19JTkZPX0xJTkUoMikpOyAvKiBhbnl0aGluZyBvdGhlciB0 aGFuIDAgKi8KKworCVdSRUczMihIRE1JMF9HQyArIG9mZnNldCwgMCk7IC8qIHVuc2V0IEhETUkw X0dDX0FWTVVURSAqLworCisJZXJyID0gZHJtX2hkbWlfYXZpX2luZm9mcmFtZV9mcm9tX2Rpc3Bs YXlfbW9kZSgmZnJhbWUsIG1vZGUpOworCWlmIChlcnIgPCAwKSB7CisJCURSTV9FUlJPUigiZmFp bGVkIHRvIHNldHVwIEFWSSBpbmZvZnJhbWU6ICV6ZFxuIiwgZXJyKTsKKwkJcmV0dXJuOworCX0K KworCWVyciA9IGhkbWlfYXZpX2luZm9mcmFtZV9wYWNrKCZmcmFtZSwgYnVmZmVyLCBzaXplb2Yo YnVmZmVyKSk7CisJaWYgKGVyciA8IDApIHsKKwkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gcGFjayBB VkkgaW5mb2ZyYW1lOiAlemRcbiIsIGVycik7CisJCXJldHVybjsKKwl9CisKKwlyNjAwX2hkbWlf dXBkYXRlX2F2aV9pbmZvZnJhbWUoZW5jb2RlciwgYnVmZmVyLCBzaXplb2YoYnVmZmVyKSk7CisJ cjYwMF9oZG1pX3VwZGF0ZV9BQ1IoZW5jb2RlciwgbW9kZS0+Y2xvY2spOworCisJLyogaXQncyB1 bmtub3duIHdoYXQgdGhlc2UgYml0cyBkbyBleGNhdGx5LCBidXQgaXQncyBpbmRlZWQgcXVpdGUg dXNlZnVsIGZvciBkZWJ1Z2dpbmcgKi8KKwlXUkVHMzIoSERNSTBfUkFNUF9DT05UUk9MMCArIG9m ZnNldCwgMHgwMEZGRkZGRik7CisJV1JFRzMyKEhETUkwX1JBTVBfQ09OVFJPTDEgKyBvZmZzZXQs IDB4MDA3RkZGRkYpOworCVdSRUczMihIRE1JMF9SQU1QX0NPTlRST0wyICsgb2Zmc2V0LCAweDAw MDAwMDAxKTsKKwlXUkVHMzIoSERNSTBfUkFNUF9DT05UUk9MMyArIG9mZnNldCwgMHgwMDAwMDAw MSk7CisKKwlyNjAwX2hkbWlfYXVkaW9fd29ya2Fyb3VuZChlbmNvZGVyKTsKKworCS8qIGVuYWJs ZSBhdWRpbyBhZnRlciB0byBzZXR0aW5nIHVwIGh3ICovCisJcjYwMF9hdWRpb19lbmFibGUocmRl diwgZGlnLT5hZm10LT5waW4sIHRydWUpOworfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L3JhZGVvbi9yNjAwX2hkbWkuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjYwMF9oZG1pLmMK aW5kZXggODVhMmJiMi4uYjhiMmVmYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVv bi9yNjAwX2hkbWkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3I2MDBfaGRtaS5jCkBA IC0xMzMsNyArMTMzLDcgQEAgc3RydWN0IHJhZGVvbl9oZG1pX2FjciByNjAwX2hkbWlfYWNyKHVp bnQzMl90IGNsb2NrKQogLyoKICAqIHVwZGF0ZSB0aGUgTiBhbmQgQ1RTIHBhcmFtZXRlcnMgZm9y IGEgZ2l2ZW4gcGl4ZWwgY2xvY2sgcmF0ZQogICovCi1zdGF0aWMgdm9pZCByNjAwX2hkbWlfdXBk YXRlX0FDUihzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsIHVpbnQzMl90IGNsb2NrKQordm9p ZCByNjAwX2hkbWlfdXBkYXRlX0FDUihzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsIHVpbnQz Ml90IGNsb2NrKQogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBlbmNvZGVyLT5kZXY7CiAJ c3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYgPSBkZXYtPmRldl9wcml2YXRlOwpAQCAtMTU1LDgg KzE1NSw4IEBAIHN0YXRpYyB2b2lkIHI2MDBfaGRtaV91cGRhdGVfQUNSKHN0cnVjdCBkcm1fZW5j b2RlciAqZW5jb2RlciwgdWludDMyX3QgY2xvY2spCiAvKgogICogYnVpbGQgYSBIRE1JIFZpZGVv IEluZm8gRnJhbWUKICAqLwotc3RhdGljIHZvaWQgcjYwMF9oZG1pX3VwZGF0ZV9hdmlfaW5mb2Zy YW1lKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKLQkJCQkJICAgdm9pZCAqYnVmZmVyLCBz aXplX3Qgc2l6ZSkKK3ZvaWQgcjYwMF9oZG1pX3VwZGF0ZV9hdmlfaW5mb2ZyYW1lKHN0cnVjdCBk cm1fZW5jb2RlciAqZW5jb2Rlciwgdm9pZCAqYnVmZmVyLAorCQkJCSAgICBzaXplX3Qgc2l6ZSkK IHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+ZGV2OwogCXN0cnVjdCByYWRl b25fZGV2aWNlICpyZGV2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKQEAgLTIzMSw3ICsyMzEsNyBAQCBp bnQgcjYwMF9oZG1pX2J1ZmZlcl9zdGF0dXNfY2hhbmdlZChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVu Y29kZXIpCiAvKgogICogd3JpdGUgdGhlIGF1ZGlvIHdvcmthcm91bmQgc3RhdHVzIHRvIHRoZSBo YXJkd2FyZQogICovCi1zdGF0aWMgdm9pZCByNjAwX2hkbWlfYXVkaW9fd29ya2Fyb3VuZChzdHJ1 Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCit2b2lkIHI2MDBfaGRtaV9hdWRpb193b3JrYXJvdW5k KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gZW5jb2Rlci0+ZGV2OwogCXN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2ID0gZGV2LT5kZXZf cHJpdmF0ZTsKQEAgLTI1MCw3ICsyNTAsNyBAQCBzdGF0aWMgdm9pZCByNjAwX2hkbWlfYXVkaW9f d29ya2Fyb3VuZChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCiAJCSB2YWx1ZSwgfkhETUkw X0FVRElPX1RFU1RfRU4pOwogfQogCi1zdGF0aWMgdm9pZCByNjAwX2F1ZGlvX3NldF9kdG8oc3Ry dWN0IGRybV9lbmNvZGVyICplbmNvZGVyLCB1MzIgY2xvY2spCit2b2lkIHI2MDBfYXVkaW9fc2V0 X2R0byhzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsIHUzMiBjbG9jaykKIHsKIAlzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+ZGV2OwogCXN0cnVjdCByYWRlb25fZGV2aWNlICpy ZGV2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKQEAgLTMyMCwxMjEgKzMyMCw2IEBAIHN0YXRpYyB2b2lk IHI2MDBfYXVkaW9fc2V0X2R0byhzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsIHUzMiBjbG9j aykKIAl9CiB9CiAKLXN0YXRpYyB2b2lkIGRjZTNfMl9hZm10X3dyaXRlX3NwZWFrZXJfYWxsb2Nh dGlvbihzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCi17Ci0Jc3RydWN0IHJhZGVvbl9kZXZp Y2UgKnJkZXYgPSBlbmNvZGVyLT5kZXYtPmRldl9wcml2YXRlOwotCXN0cnVjdCBkcm1fY29ubmVj dG9yICpjb25uZWN0b3I7Ci0Jc3RydWN0IHJhZGVvbl9jb25uZWN0b3IgKnJhZGVvbl9jb25uZWN0 b3IgPSBOVUxMOwotCXUzMiB0bXA7Ci0JdTggKnNhZGI7Ci0JaW50IHNhZF9jb3VudDsKLQotCWxp c3RfZm9yX2VhY2hfZW50cnkoY29ubmVjdG9yLCAmZW5jb2Rlci0+ZGV2LT5tb2RlX2NvbmZpZy5j b25uZWN0b3JfbGlzdCwgaGVhZCkgewotCQlpZiAoY29ubmVjdG9yLT5lbmNvZGVyID09IGVuY29k ZXIpIHsKLQkJCXJhZGVvbl9jb25uZWN0b3IgPSB0b19yYWRlb25fY29ubmVjdG9yKGNvbm5lY3Rv cik7Ci0JCQlicmVhazsKLQkJfQotCX0KLQotCWlmICghcmFkZW9uX2Nvbm5lY3RvcikgewotCQlE Uk1fRVJST1IoIkNvdWxkbid0IGZpbmQgZW5jb2RlcidzIGNvbm5lY3RvclxuIik7Ci0JCXJldHVy bjsKLQl9Ci0KLQlzYWRfY291bnQgPSBkcm1fZWRpZF90b19zcGVha2VyX2FsbG9jYXRpb24ocmFk ZW9uX2Nvbm5lY3Rvci0+ZWRpZCwgJnNhZGIpOwotCWlmIChzYWRfY291bnQgPCAwKSB7Ci0JCURS TV9FUlJPUigiQ291bGRuJ3QgcmVhZCBTcGVha2VyIEFsbG9jYXRpb24gRGF0YSBCbG9jazogJWRc biIsIHNhZF9jb3VudCk7Ci0JCXJldHVybjsKLQl9Ci0KLQkvKiBwcm9ncmFtIHRoZSBzcGVha2Vy IGFsbG9jYXRpb24gKi8KLQl0bXAgPSBSUkVHMzIoQVpfRjBfQ09ERUNfUElOMF9DT05UUk9MX0NI QU5ORUxfU1BFQUtFUik7Ci0JdG1wICY9IH4oRFBfQ09OTkVDVElPTiB8IFNQRUFLRVJfQUxMT0NB VElPTl9NQVNLKTsKLQkvKiBzZXQgSERNSSBtb2RlICovCi0JdG1wIHw9IEhETUlfQ09OTkVDVElP TjsKLQlpZiAoc2FkX2NvdW50KQotCQl0bXAgfD0gU1BFQUtFUl9BTExPQ0FUSU9OKHNhZGJbMF0p OwotCWVsc2UKLQkJdG1wIHw9IFNQRUFLRVJfQUxMT0NBVElPTig1KTsgLyogc3RlcmVvICovCi0J V1JFRzMyKEFaX0YwX0NPREVDX1BJTjBfQ09OVFJPTF9DSEFOTkVMX1NQRUFLRVIsIHRtcCk7Ci0K LQlrZnJlZShzYWRiKTsKLX0KLQotc3RhdGljIHZvaWQgZGNlM18yX2FmbXRfd3JpdGVfc2FkX3Jl Z3Moc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQotewotCXN0cnVjdCByYWRlb25fZGV2aWNl ICpyZGV2ID0gZW5jb2Rlci0+ZGV2LT5kZXZfcHJpdmF0ZTsKLQlzdHJ1Y3QgZHJtX2Nvbm5lY3Rv ciAqY29ubmVjdG9yOwotCXN0cnVjdCByYWRlb25fY29ubmVjdG9yICpyYWRlb25fY29ubmVjdG9y ID0gTlVMTDsKLQlzdHJ1Y3QgY2VhX3NhZCAqc2FkczsKLQlpbnQgaSwgc2FkX2NvdW50OwotCi0J c3RhdGljIGNvbnN0IHUxNiBlbGRfcmVnX3RvX3R5cGVbXVsyXSA9IHsKLQkJeyBBWl9GMF9DT0RF Q19QSU4wX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjAsIEhETUlfQVVESU9fQ09ESU5HX1RZUEVf UENNIH0sCi0JCXsgQVpfRjBfQ09ERUNfUElOMF9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IxLCBI RE1JX0FVRElPX0NPRElOR19UWVBFX0FDMyB9LAotCQl7IEFaX0YwX0NPREVDX1BJTjBfQ09OVFJP TF9BVURJT19ERVNDUklQVE9SMiwgSERNSV9BVURJT19DT0RJTkdfVFlQRV9NUEVHMSB9LAotCQl7 IEFaX0YwX0NPREVDX1BJTjBfQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMywgSERNSV9BVURJT19D T0RJTkdfVFlQRV9NUDMgfSwKLQkJeyBBWl9GMF9DT0RFQ19QSU4wX0NPTlRST0xfQVVESU9fREVT Q1JJUFRPUjQsIEhETUlfQVVESU9fQ09ESU5HX1RZUEVfTVBFRzIgfSwKLQkJeyBBWl9GMF9DT0RF Q19QSU4wX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjUsIEhETUlfQVVESU9fQ09ESU5HX1RZUEVf QUFDX0xDIH0sCi0JCXsgQVpfRjBfQ09ERUNfUElOMF9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1I2 LCBIRE1JX0FVRElPX0NPRElOR19UWVBFX0RUUyB9LAotCQl7IEFaX0YwX0NPREVDX1BJTjBfQ09O VFJPTF9BVURJT19ERVNDUklQVE9SNywgSERNSV9BVURJT19DT0RJTkdfVFlQRV9BVFJBQyB9LAot CQl7IEFaX0YwX0NPREVDX1BJTjBfQ09OVFJPTF9BVURJT19ERVNDUklQVE9SOSwgSERNSV9BVURJ T19DT0RJTkdfVFlQRV9FQUMzIH0sCi0JCXsgQVpfRjBfQ09ERUNfUElOMF9DT05UUk9MX0FVRElP X0RFU0NSSVBUT1IxMCwgSERNSV9BVURJT19DT0RJTkdfVFlQRV9EVFNfSEQgfSwKLQkJeyBBWl9G MF9DT0RFQ19QSU4wX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjExLCBIRE1JX0FVRElPX0NPRElO R19UWVBFX01MUCB9LAotCQl7IEFaX0YwX0NPREVDX1BJTjBfQ09OVFJPTF9BVURJT19ERVNDUklQ VE9SMTMsIEhETUlfQVVESU9fQ09ESU5HX1RZUEVfV01BX1BSTyB9LAotCX07Ci0KLQlsaXN0X2Zv cl9lYWNoX2VudHJ5KGNvbm5lY3RvciwgJmVuY29kZXItPmRldi0+bW9kZV9jb25maWcuY29ubmVj dG9yX2xpc3QsIGhlYWQpIHsKLQkJaWYgKGNvbm5lY3Rvci0+ZW5jb2RlciA9PSBlbmNvZGVyKSB7 Ci0JCQlyYWRlb25fY29ubmVjdG9yID0gdG9fcmFkZW9uX2Nvbm5lY3Rvcihjb25uZWN0b3IpOwot CQkJYnJlYWs7Ci0JCX0KLQl9Ci0KLQlpZiAoIXJhZGVvbl9jb25uZWN0b3IpIHsKLQkJRFJNX0VS Uk9SKCJDb3VsZG4ndCBmaW5kIGVuY29kZXIncyBjb25uZWN0b3JcbiIpOwotCQlyZXR1cm47Ci0J fQotCi0Jc2FkX2NvdW50ID0gZHJtX2VkaWRfdG9fc2FkKHJhZGVvbl9jb25uZWN0b3ItPmVkaWQs ICZzYWRzKTsKLQlpZiAoc2FkX2NvdW50IDwgMCkgewotCQlEUk1fRVJST1IoIkNvdWxkbid0IHJl YWQgU0FEczogJWRcbiIsIHNhZF9jb3VudCk7Ci0JCXJldHVybjsKLQl9Ci0JQlVHX09OKCFzYWRz KTsKLQotCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGVsZF9yZWdfdG9fdHlwZSk7IGkrKykg ewotCQl1MzIgdmFsdWUgPSAwOwotCQl1OCBzdGVyZW9fZnJlcXMgPSAwOwotCQlpbnQgbWF4X2No YW5uZWxzID0gLTE7Ci0JCWludCBqOwotCi0JCWZvciAoaiA9IDA7IGogPCBzYWRfY291bnQ7IGor KykgewotCQkJc3RydWN0IGNlYV9zYWQgKnNhZCA9ICZzYWRzW2pdOwotCi0JCQlpZiAoc2FkLT5m b3JtYXQgPT0gZWxkX3JlZ190b190eXBlW2ldWzFdKSB7Ci0JCQkJaWYgKHNhZC0+Y2hhbm5lbHMg PiBtYXhfY2hhbm5lbHMpIHsKLQkJCQkJdmFsdWUgPSBNQVhfQ0hBTk5FTFMoc2FkLT5jaGFubmVs cykgfAotCQkJCQkJREVTQ1JJUFRPUl9CWVRFXzIoc2FkLT5ieXRlMikgfAotCQkJCQkJU1VQUE9S VEVEX0ZSRVFVRU5DSUVTKHNhZC0+ZnJlcSk7Ci0JCQkJCW1heF9jaGFubmVscyA9IHNhZC0+Y2hh bm5lbHM7Ci0JCQkJfQotCi0JCQkJaWYgKHNhZC0+Zm9ybWF0ID09IEhETUlfQVVESU9fQ09ESU5H X1RZUEVfUENNKQotCQkJCQlzdGVyZW9fZnJlcXMgfD0gc2FkLT5mcmVxOwotCQkJCWVsc2UKLQkJ CQkJYnJlYWs7Ci0JCQl9Ci0JCX0KLQotCQl2YWx1ZSB8PSBTVVBQT1JURURfRlJFUVVFTkNJRVNf U1RFUkVPKHN0ZXJlb19mcmVxcyk7Ci0KLQkJV1JFRzMyKGVsZF9yZWdfdG9fdHlwZVtpXVswXSwg dmFsdWUpOwotCX0KLQotCWtmcmVlKHNhZHMpOwotfQotCiAvKgogICogdXBkYXRlIHRoZSBpbmZv IGZyYW1lcyB3aXRoIHRoZSBkYXRhIGZyb20gdGhlIGN1cnJlbnQgZGlzcGxheSBtb2RlCiAgKi8K QEAgLTQ2OCwyNSArMzUzLDExIEBAIHZvaWQgcjYwMF9oZG1pX3NldG1vZGUoc3RydWN0IGRybV9l bmNvZGVyICplbmNvZGVyLCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kCiAKIAlXUkVHMzIo SERNSTBfQVVESU9fQ1JDX0NPTlRST0wgKyBvZmZzZXQsIDB4MTAwMCk7CiAKLQlpZiAoQVNJQ19J U19EQ0UzMihyZGV2KSkgewotCQlXUkVHMzIoSERNSTBfQVVESU9fUEFDS0VUX0NPTlRST0wgKyBv ZmZzZXQsCi0JCSAgICAgICBIRE1JMF9BVURJT19ERUxBWV9FTigxKSB8IC8qIGRlZmF1bHQgYXVk aW8gZGVsYXkgKi8KLQkJICAgICAgIEhETUkwX0FVRElPX1BBQ0tFVFNfUEVSX0xJTkUoMykpOyAv KiBzaG91bGQgYmUgc3VmZmllbnQgZm9yIGFsbCBhdWRpbyBtb2RlcyBhbmQgc21hbGwgZW5vdWdo IGZvciBhbGwgaGJsYW5rcyAqLwotCQlXUkVHMzIoQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTCAr IG9mZnNldCwKLQkJICAgICAgIEFGTVRfQVVESU9fU0FNUExFX1NFTkQgfCAvKiBzZW5kIGF1ZGlv IHBhY2tldHMgKi8KLQkJICAgICAgIEFGTVRfNjA5NThfQ1NfVVBEQVRFKTsgLyogYWxsb3cgNjA5 NTggY2hhbm5lbCBzdGF0dXMgZmllbGRzIHRvIGJlIHVwZGF0ZWQgKi8KLQl9IGVsc2UgewotCQlX UkVHMzIoSERNSTBfQVVESU9fUEFDS0VUX0NPTlRST0wgKyBvZmZzZXQsCi0JCSAgICAgICBIRE1J MF9BVURJT19TQU1QTEVfU0VORCB8IC8qIHNlbmQgYXVkaW8gcGFja2V0cyAqLwotCQkgICAgICAg SERNSTBfQVVESU9fREVMQVlfRU4oMSkgfCAvKiBkZWZhdWx0IGF1ZGlvIGRlbGF5ICovCi0JCSAg ICAgICBIRE1JMF9BVURJT19QQUNLRVRTX1BFUl9MSU5FKDMpIHwgLyogc2hvdWxkIGJlIHN1ZmZp ZW50IGZvciBhbGwgYXVkaW8gbW9kZXMgYW5kIHNtYWxsIGVub3VnaCBmb3IgYWxsIGhibGFua3Mg Ki8KLQkJICAgICAgIEhETUkwXzYwOTU4X0NTX1VQREFURSk7IC8qIGFsbG93IDYwOTU4IGNoYW5u ZWwgc3RhdHVzIGZpZWxkcyB0byBiZSB1cGRhdGVkICovCi0JfQotCi0JaWYgKEFTSUNfSVNfRENF MzIocmRldikpIHsKLQkJZGNlM18yX2FmbXRfd3JpdGVfc3BlYWtlcl9hbGxvY2F0aW9uKGVuY29k ZXIpOwotCQlkY2UzXzJfYWZtdF93cml0ZV9zYWRfcmVncyhlbmNvZGVyKTsKLQl9CisJV1JFRzMy KEhETUkwX0FVRElPX1BBQ0tFVF9DT05UUk9MICsgb2Zmc2V0LAorCSAgICAgICBIRE1JMF9BVURJ T19TQU1QTEVfU0VORCB8IC8qIHNlbmQgYXVkaW8gcGFja2V0cyAqLworCSAgICAgICBIRE1JMF9B VURJT19ERUxBWV9FTigxKSB8IC8qIGRlZmF1bHQgYXVkaW8gZGVsYXkgKi8KKwkgICAgICAgSERN STBfQVVESU9fUEFDS0VUU19QRVJfTElORSgzKSB8IC8qIHNob3VsZCBiZSBzdWZmaWVudCBmb3Ig YWxsIGF1ZGlvIG1vZGVzIGFuZCBzbWFsbCBlbm91Z2ggZm9yIGFsbCBoYmxhbmtzICovCisJICAg ICAgIEhETUkwXzYwOTU4X0NTX1VQREFURSk7IC8qIGFsbG93IDYwOTU4IGNoYW5uZWwgc3RhdHVz IGZpZWxkcyB0byBiZSB1cGRhdGVkICovCiAKIAlXUkVHMzIoSERNSTBfQUNSX1BBQ0tFVF9DT05U Uk9MICsgb2Zmc2V0LAogCSAgICAgICBIRE1JMF9BQ1JfU09VUkNFIHwgLyogc2VsZWN0IFNXIENU UyB2YWx1ZSAtIFhYWCB2ZXJpZnkgdGhhdCBodyBDVFMgd29ya3Mgb24gYWxsIGZhbWlsaWVzICov CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9hc2ljLmMgYi9kcml2 ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9hc2ljLmMKaW5kZXggNTlkNTZkYy4uN2JjMzYwNSAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fYXNpYy5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2FzaWMuYwpAQCAtMTIxNCw3ICsxMjE0LDcgQEAg c3RhdGljIHN0cnVjdCByYWRlb25fYXNpYyBydjc3MF9hc2ljID0gewogCQkuc2V0X2JhY2tsaWdo dF9sZXZlbCA9ICZhdG9tYmlvc19zZXRfYmFja2xpZ2h0X2xldmVsLAogCQkuZ2V0X2JhY2tsaWdo dF9sZXZlbCA9ICZhdG9tYmlvc19nZXRfYmFja2xpZ2h0X2xldmVsLAogCQkuaGRtaV9lbmFibGUg PSAmcjYwMF9oZG1pX2VuYWJsZSwKLQkJLmhkbWlfc2V0bW9kZSA9ICZyNjAwX2hkbWlfc2V0bW9k ZSwKKwkJLmhkbWlfc2V0bW9kZSA9ICZkY2UzXzFfaGRtaV9zZXRtb2RlLAogCX0sCiAJLmNvcHkg PSB7CiAJCS5ibGl0ID0gJnI2MDBfY29weV9jcGRtYSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9yYWRlb24vcmFkZW9uX2FzaWMuaCBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9u X2FzaWMuaAppbmRleCA1NjQ2ZjlkLi5kZWI4NDk2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vcmFkZW9uL3JhZGVvbl9hc2ljLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRl b25fYXNpYy5oCkBAIC0zOTEsNiArMzkxLDExIEBAIHZvaWQgcjYwMF9ybGNfc3RvcChzdHJ1Y3Qg cmFkZW9uX2RldmljZSAqcmRldik7CiBpbnQgcjYwMF9hdWRpb19pbml0KHN0cnVjdCByYWRlb25f ZGV2aWNlICpyZGV2KTsKIHN0cnVjdCByNjAwX2F1ZGlvX3BpbiByNjAwX2F1ZGlvX3N0YXR1cyhz dHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldik7CiB2b2lkIHI2MDBfYXVkaW9fZmluaShzdHJ1Y3Qg cmFkZW9uX2RldmljZSAqcmRldik7Cit2b2lkIHI2MDBfYXVkaW9fc2V0X2R0byhzdHJ1Y3QgZHJt X2VuY29kZXIgKmVuY29kZXIsIHUzMiBjbG9jayk7Cit2b2lkIHI2MDBfaGRtaV91cGRhdGVfYXZp X2luZm9mcmFtZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsIHZvaWQgKmJ1ZmZlciwKKwkJ CQkgICAgc2l6ZV90IHNpemUpOwordm9pZCByNjAwX2hkbWlfdXBkYXRlX0FDUihzdHJ1Y3QgZHJt X2VuY29kZXIgKmVuY29kZXIsIHVpbnQzMl90IGNsb2NrKTsKK3ZvaWQgcjYwMF9oZG1pX2F1ZGlv X3dvcmthcm91bmQoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKTsKIGludCByNjAwX2hkbWlf YnVmZmVyX3N0YXR1c19jaGFuZ2VkKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rlcik7CiB2b2lk IHI2MDBfaGRtaV91cGRhdGVfYXVkaW9fc2V0dGluZ3Moc3RydWN0IGRybV9lbmNvZGVyICplbmNv ZGVyKTsKIHZvaWQgcjYwMF9oZG1pX2VuYWJsZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIs IGJvb2wgZW5hYmxlKTsKQEAgLTQ2Myw2ICs0NjgsOCBAQCBpbnQgcnY3NzBfY29weV9kbWEoc3Ry dWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCiB1MzIgcnY3NzBfZ2V0X3hjbGsoc3RydWN0IHJhZGVv bl9kZXZpY2UgKnJkZXYpOwogaW50IHJ2NzcwX3NldF91dmRfY2xvY2tzKHN0cnVjdCByYWRlb25f ZGV2aWNlICpyZGV2LCB1MzIgdmNsaywgdTMyIGRjbGspOwogaW50IHJ2NzcwX2dldF90ZW1wKHN0 cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KTsKKy8qIGhkbWkgKi8KK3ZvaWQgZGNlM18xX2hkbWlf c2V0bW9kZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsIHN0cnVjdCBkcm1fZGlzcGxheV9t b2RlICptb2RlKTsKIC8qIHJ2N3h4IHBtICovCiBpbnQgcnY3NzBfZHBtX2luaXQoc3RydWN0IHJh ZGVvbl9kZXZpY2UgKnJkZXYpOwogaW50IHJ2NzcwX2RwbV9lbmFibGUoc3RydWN0IHJhZGVvbl9k ZXZpY2UgKnJkZXYpOwotLSAKMS44LjQuNQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9kcmktZGV2ZWwK