From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jordan Crouse Subject: [PATCH v1 4/6] drm/msm/a6xx: Make GMU reset useful Date: Mon, 4 Feb 2019 09:15:42 -0700 Message-ID: <1549296944-17285-5-git-send-email-jcrouse@codeaurora.org> References: <1549296944-17285-1-git-send-email-jcrouse@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1549296944-17285-1-git-send-email-jcrouse-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: Daniel Vetter , David Airlie , linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Sharat Masetty , Douglas Anderson , dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, Stephen Boyd , Rob Clark , Sean Paul , Mamta Shukla , Thomas Zimmermann , Andy Gross , Colin Ian King , linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org Tm93IHRoYXQgdGhlIEdYIGRvbWFpbiBpcyBzb3J0ZWQgd2UgY2FuIHdpcmUgdXAgYSB3b3JraW5n IEdNVSByZXNldC4KSUYgYSBHTVUgaGFuZyB3YXMgZGV0ZWN0ZWQgdGhlbiB0cnkgdG8gZm9yY2Vm dWxseSBzaHV0IGRvd24gdGhlIEdNVQppbiB0aGUgcG93ZXIgZG93biBzZXF1ZW5jZSB3aGljaCBz aG91bGQgZW5zdXJlIHRoYXQgaXQgY2FuIHJlY292ZXIKbm9ybWFsbHkgb24gdGhlIG5leHQgcG93 ZXIgdXAuCgpTaWduZWQtb2ZmLWJ5OiBKb3JkYW4gQ3JvdXNlIDxqY3JvdXNlQGNvZGVhdXJvcmEu b3JnPgotLS0KCiBkcml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hNnh4X2dtdS5jIHwgMTA5ICsr KysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9tc20vYWRy ZW5vL2E2eHhfZ211LmggfCAgIDQgKy0KIGRyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2E2eHhf Z3B1LmMgfCAgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2E2eHhfZ3B1LmggfCAg IDMgKy0KIDQgZmlsZXMgY2hhbmdlZCwgNTUgaW5zZXJ0aW9ucygrKSwgNjMgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYTZ4eF9nbXUuYyBiL2Ry aXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2E2eHhfZ211LmMKaW5kZXggYTUyN2M1MC4uZTE2ZDU1 ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYTZ4eF9nbXUuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hNnh4X2dtdS5jCkBAIC05LDYgKzksMjQgQEAK ICNpbmNsdWRlICJhNnh4X2dwdS5oIgogI2luY2x1ZGUgImE2eHhfZ211LnhtbC5oIgogCitzdGF0 aWMgdm9pZCBhNnh4X2dtdV9mYXVsdChzdHJ1Y3QgYTZ4eF9nbXUgKmdtdSkKK3sKKwlzdHJ1Y3Qg YTZ4eF9ncHUgKmE2eHhfZ3B1ID0gY29udGFpbmVyX29mKGdtdSwgc3RydWN0IGE2eHhfZ3B1LCBn bXUpOworCXN0cnVjdCBhZHJlbm9fZ3B1ICphZHJlbm9fZ3B1ID0gJmE2eHhfZ3B1LT5iYXNlOwor CXN0cnVjdCBtc21fZ3B1ICpncHUgPSAmYWRyZW5vX2dwdS0+YmFzZTsKKwlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2ID0gZ3B1LT5kZXY7CisJc3RydWN0IG1zbV9kcm1fcHJpdmF0ZSAqcHJpdiA9IGRl di0+ZGV2X3ByaXZhdGU7CisKKwkvKiBGSVhNRTogYWRkIGEgYmFubmVyIGhlcmUgKi8KKwlnbXUt Pmh1bmcgPSB0cnVlOworCisJLyogVHVybiBvZmYgdGhlIGhhbmdjaGVjayB0aW1lciB3aGlsZSB3 ZSBhcmUgcmVzZXR0aW5nICovCisJZGVsX3RpbWVyKCZncHUtPmhhbmdjaGVja190aW1lcik7CisK KwkvKiBRdWV1ZSB0aGUgR1BVIGhhbmRsZXIgYmVjYXVzZSB3ZSBuZWVkIHRvIHRyZWF0IHRoaXMg YXMgYSByZWNvdmVyeSAqLworCXF1ZXVlX3dvcmsocHJpdi0+d3EsICZncHUtPnJlY292ZXJfd29y ayk7Cit9CisKIHN0YXRpYyBpcnFyZXR1cm5fdCBhNnh4X2dtdV9pcnEoaW50IGlycSwgdm9pZCAq ZGF0YSkKIHsKIAlzdHJ1Y3QgYTZ4eF9nbXUgKmdtdSA9IGRhdGE7CkBAIC0yMCw4ICszOCw3IEBA IHN0YXRpYyBpcnFyZXR1cm5fdCBhNnh4X2dtdV9pcnEoaW50IGlycSwgdm9pZCAqZGF0YSkKIAlp ZiAoc3RhdHVzICYgQTZYWF9HTVVfQU9fSE9TVF9JTlRFUlJVUFRfU1RBVFVTX1dET0dfQklURSkg ewogCQlkZXZfZXJyX3JhdGVsaW1pdGVkKGdtdS0+ZGV2LCAiR01VIHdhdGNoZG9nIGV4cGlyZWRc biIpOwogCi0JCS8qIFRlbXBvcmFyeSB1bnRpbCB3ZSBjYW4gcmVjb3ZlciBzYWZlbHkgKi8KLQkJ QlVHKCk7CisJCWE2eHhfZ211X2ZhdWx0KGdtdSk7CiAJfQogCiAJaWYgKHN0YXR1cyAmICBBNlhY X0dNVV9BT19IT1NUX0lOVEVSUlVQVF9TVEFUVVNfSE9TVF9BSEJfQlVTX0VSUk9SKQpAQCAtNDUs OCArNjIsNyBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgYTZ4eF9oZmlfaXJxKGludCBpcnEsIHZvaWQg KmRhdGEpCiAJaWYgKHN0YXR1cyAmIEE2WFhfR01VX0dNVTJIT1NUX0lOVFJfSU5GT19DTTNfRkFV TFQpIHsKIAkJZGV2X2Vycl9yYXRlbGltaXRlZChnbXUtPmRldiwgIkdNVSBmaXJtd2FyZSBmYXVs dFxuIik7CiAKLQkJLyogVGVtcG9yYXJ5IHVudGlsIHdlIGNhbiByZWNvdmVyIHNhZmVseSAqLwot CQlCVUcoKTsKKwkJYTZ4eF9nbXVfZmF1bHQoZ211KTsKIAl9CiAKIAlyZXR1cm4gSVJRX0hBTkRM RUQ7CkBAIC0xNTYsMTAgKzE3Miw4IEBAIHN0YXRpYyBib29sIGE2eHhfZ211X2NoZWNrX2lkbGVf bGV2ZWwoc3RydWN0IGE2eHhfZ211ICpnbXUpCiB9CiAKIC8qIFdhaXQgZm9yIHRoZSBHTVUgdG8g Z2V0IHRvIGl0cyBtb3N0IGlkbGUgc3RhdGUgKi8KLWludCBhNnh4X2dtdV93YWl0X2Zvcl9pZGxl KHN0cnVjdCBhNnh4X2dwdSAqYTZ4eF9ncHUpCitpbnQgYTZ4eF9nbXVfd2FpdF9mb3JfaWRsZShz dHJ1Y3QgYTZ4eF9nbXUgKmdtdSkKIHsKLQlzdHJ1Y3QgYTZ4eF9nbXUgKmdtdSA9ICZhNnh4X2dw dS0+Z211OwotCiAJcmV0dXJuIHNwaW5fdW50aWwoYTZ4eF9nbXVfY2hlY2tfaWRsZV9sZXZlbChn bXUpKTsKIH0KIApAQCAtNTU4LDcgKzU3Miw3IEBAIHN0YXRpYyBpbnQgYTZ4eF9nbXVfZndfc3Rh cnQoc3RydWN0IGE2eHhfZ211ICpnbXUsIHVuc2lnbmVkIGludCBzdGF0ZSkKIAkJaWYgKCFycG1o X2luaXQpIHsKIAkJCWE2eHhfZ211X3JwbWhfaW5pdChnbXUpOwogCQkJcnBtaF9pbml0ID0gdHJ1 ZTsKLQkJfSBlbHNlIGlmIChzdGF0ZSAhPSBHTVVfUkVTRVQpIHsKKwkJfSBlbHNlIHsKIAkJCXJl dCA9IGE2eHhfcnBtaF9zdGFydChnbXUpOwogCQkJaWYgKHJldCkKIAkJCQlyZXR1cm4gcmV0OwpA QCAtNjQ3LDEwICs2NjEsOSBAQCBzdGF0aWMgdm9pZCBhNnh4X2dtdV9pcnFfZGlzYWJsZShzdHJ1 Y3QgYTZ4eF9nbXUgKmdtdSkKIAlnbXVfd3JpdGUoZ211LCBSRUdfQTZYWF9HTVVfR01VMkhPU1Rf SU5UUl9NQVNLLCB+MCk7CiB9CiAKLWludCBhNnh4X2dtdV9yZXNldChzdHJ1Y3QgYTZ4eF9ncHUg KmE2eHhfZ3B1KQorLyogRm9yY2UgdGhlIEdNVSBvZmYgaW4gY2FzZSBpdCBpc24ndCByZXNwb25z aXZlICovCitzdGF0aWMgdm9pZCBhNnh4X2dtdV9mb3JjZV9vZmYoc3RydWN0IGE2eHhfZ211ICpn bXUpCiB7Ci0Jc3RydWN0IGE2eHhfZ211ICpnbXUgPSAmYTZ4eF9ncHUtPmdtdTsKLQlpbnQgcmV0 OwogCXUzMiB2YWw7CiAKIAkvKiBGbHVzaCBhbGwgdGhlIHF1ZXVlcyAqLwpAQCAtNjcxLDQ0ICs2 ODQsNiBAQCBpbnQgYTZ4eF9nbXVfcmVzZXQoc3RydWN0IGE2eHhfZ3B1ICphNnh4X2dwdSkKIAkJ KHZhbCAmIDEpLCAxMDAsIDEwMDAwKTsKIAlnbXVfcG9sbF90aW1lb3V0KGdtdSwgUkVHX0E2WFhf UlNDQ19UQ1MzX0RSVjBfU1RBVFVTLCB2YWwsCiAJCSh2YWwgJiAxKSwgMTAwLCAxMDAwKTsKLQot CS8qCi0JICogRGVwZW5kaW5nIG9uIHRoZSBzdGF0ZSBvZiB0aGUgR01VIGF0IHRoaXMgcG9pbnQg dGhlIEdYIGRvbWFpbiBtaWdodAotCSAqIGhhdmUgYmVlbiBsZWZ0IG9uLiBIYXJkd2FyZSBzZXF1 ZW5jaW5nIHJ1bGVzIHN0YXRlIHRoYXQgdGhlIEdYIGhhcyB0bwotCSAqIGJlIHR1cm5lZCBvZmYg YmVmb3JlIHRoZSBDWCBkb21haW4gc28gdGhpcyBpcyB0aGF0IG9uZSB0aW1lIHRoYXQKLQkgKiB0 aGF0IGNhbGxpbmcgcG1fcnVudGltZV9wdXRfc3luYygpIGlzIGV4cGVjdGVkIHRvIGRvIHNvbWV0 aGluZyB1c2VmdWwKLQkgKiAodHVybiBvZmYgdGhlIGhlYWRzd2l0Y2gpCi0JICovCi0JaWYgKCFJ U19FUlIoZ211LT5neHBkKSkKLQkJcG1fcnVudGltZV9wdXRfc3luYyhnbXUtPmd4cGQpOwotCi0J LyogRGlzYWJsZSB0aGUgcmVzb3VyY2VzICovCi0JY2xrX2J1bGtfZGlzYWJsZV91bnByZXBhcmUo Z211LT5ucl9jbG9ja3MsIGdtdS0+Y2xvY2tzKTsKLQlwbV9ydW50aW1lX3B1dF9zeW5jKGdtdS0+ ZGV2KTsKLQotCS8qIFJlLWVuYWJsZSB0aGUgcmVzb3VyY2VzICovCi0JcG1fcnVudGltZV9nZXRf c3luYyhnbXUtPmRldik7Ci0KLQkvKiBVc2UgYSBrbm93biByYXRlIHRvIGJyaW5nIHVwIHRoZSBH TVUgKi8KLQljbGtfc2V0X3JhdGUoZ211LT5jb3JlX2NsaywgMjAwMDAwMDAwKTsKLQlyZXQgPSBj bGtfYnVsa19wcmVwYXJlX2VuYWJsZShnbXUtPm5yX2Nsb2NrcywgZ211LT5jbG9ja3MpOwotCWlm IChyZXQpCi0JCWdvdG8gb3V0OwotCi0JYTZ4eF9nbXVfaXJxX2VuYWJsZShnbXUpOwotCi0JcmV0 ID0gYTZ4eF9nbXVfZndfc3RhcnQoZ211LCBHTVVfUkVTRVQpOwotCWlmICghcmV0KQotCQlyZXQg PSBhNnh4X2hmaV9zdGFydChnbXUsIEdNVV9DT0xEX0JPT1QpOwotCi0JLyogU2V0IHRoZSBHUFUg YmFjayB0byB0aGUgaGlnaGVzdCBwb3dlciBmcmVxdWVuY3kgKi8KLQlfX2E2eHhfZ211X3NldF9m cmVxKGdtdSwgZ211LT5ucl9ncHVfZnJlcXMgLSAxKTsKLQotb3V0OgotCWlmIChyZXQpCi0JCWE2 eHhfZ211X2NsZWFyX29vYihnbXUsIEdNVV9PT0JfQk9PVF9TTFVNQkVSKTsKLQotCXJldHVybiBy ZXQ7CiB9CiAKIGludCBhNnh4X2dtdV9yZXN1bWUoc3RydWN0IGE2eHhfZ3B1ICphNnh4X2dwdSkK QEAgLTcxOSw2ICs2OTQsOCBAQCBpbnQgYTZ4eF9nbXVfcmVzdW1lKHN0cnVjdCBhNnh4X2dwdSAq YTZ4eF9ncHUpCiAJaWYgKFdBUk4oIWdtdS0+bW1pbywgIlRoZSBHTVUgaXMgbm90IHNldCB1cCB5 ZXRcbiIpKQogCQlyZXR1cm4gMDsKIAorCWdtdS0+aHVuZyA9IGZhbHNlOworCiAJLyogVHVybiBv biB0aGUgcmVzb3VyY2VzICovCiAJcG1fcnVudGltZV9nZXRfc3luYyhnbXUtPmRldik7CiAKQEAg LTc3NCw5ICs3NTEsOSBAQCBib29sIGE2eHhfZ211X2lzaWRsZShzdHJ1Y3QgYTZ4eF9nbXUgKmdt dSkKIAlyZXR1cm4gdHJ1ZTsKIH0KIAotaW50IGE2eHhfZ211X3N0b3Aoc3RydWN0IGE2eHhfZ3B1 ICphNnh4X2dwdSkKKy8qIEdyYWNlZnVsbHkgdHJ5IHRvIHNodXQgZG93biB0aGUgR01VIGFuZCBi eSBleHRlbnNpb24gdGhlIEdQVSAqLworc3RhdGljIHZvaWQgYTZ4eF9nbXVfc2h1dGRvd24oc3Ry dWN0IGE2eHhfZ211ICpnbXUpCiB7Ci0Jc3RydWN0IGE2eHhfZ211ICpnbXUgPSAmYTZ4eF9ncHUt PmdtdTsKIAl1MzIgdmFsOwogCiAJLyoKQEAgLTc4NiwxMCArNzYzLDEzIEBAIGludCBhNnh4X2dt dV9zdG9wKHN0cnVjdCBhNnh4X2dwdSAqYTZ4eF9ncHUpCiAJdmFsID0gZ211X3JlYWQoZ211LCBS RUdfQTZYWF9HUFVfR01VX0NYX0dNVV9SUE1IX1BPV0VSX1NUQVRFKTsKIAogCWlmICh2YWwgIT0g MHhmKSB7Ci0JCWludCByZXQgPSBhNnh4X2dtdV93YWl0X2Zvcl9pZGxlKGE2eHhfZ3B1KTsKKwkJ aW50IHJldCA9IGE2eHhfZ211X3dhaXRfZm9yX2lkbGUoZ211KTsKIAotCQkvKiBUZW1wb3Jhcnkg dW50aWwgd2UgY2FuIHJlY292ZXIgc2FmZWx5ICovCi0JCUJVR19PTihyZXQpOworCQkvKiBJZiB0 aGUgR01VIGlzbid0IHJlc3BvbmRpbmcgYXNzdW1lIGl0IGlzIGh1bmcgKi8KKwkJaWYgKHJldCkg eworCQkJYTZ4eF9nbXVfZm9yY2Vfb2ZmKGdtdSk7CisJCQlyZXR1cm47CisJCX0KIAogCQkvKiB0 ZWxsIHRoZSBHTVUgd2Ugd2FudCB0byBzbHVtYmVyICovCiAJCWE2eHhfZ211X25vdGlmeV9zbHVt YmVyKGdtdSk7CkBAIC04MjEsMTEgKzgwMSwyNiBAQCBpbnQgYTZ4eF9nbXVfc3RvcChzdHJ1Y3Qg YTZ4eF9ncHUgKmE2eHhfZ3B1KQogCiAJLyogVGVsbCBSUE1oIHRvIHBvd2VyIG9mZiB0aGUgR1BV ICovCiAJYTZ4eF9ycG1oX3N0b3AoZ211KTsKK30KKworCitpbnQgYTZ4eF9nbXVfc3RvcChzdHJ1 Y3QgYTZ4eF9ncHUgKmE2eHhfZ3B1KQoreworCXN0cnVjdCBhNnh4X2dtdSAqZ211ID0gJmE2eHhf Z3B1LT5nbXU7CisKKwkvKgorCSAqIEZvcmNlIHRoZSBHTVUgb2ZmIGlmIHdlIGRldGVjdGVkIGEg aGFuZywgb3RoZXJ3aXNlIHRyeSB0byBzaHV0IGl0CisJICogZG93biBncmFjZWZ1bGx5CisJICov CisJaWYgKGdtdS0+aHVuZykKKwkJYTZ4eF9nbXVfZm9yY2Vfb2ZmKGdtdSk7CisJZWxzZQorCQlh Nnh4X2dtdV9zaHV0ZG93bihnbXUpOwogCiAJLyoKLQkgKiBNYXJrIHRoZSBHUFUgcG93ZXIgZG9t YWluIGFzIG9mZi4gRHVyaW5nIHRoZSBzaHV0ZG93biBwcm9jZXNzIHRoZSBHTVUKLQkgKiBzaG91 bGQgYWN0dWFsbHkgdHVybiBvZmYgdGhlIHBvd2VyIHNvIHRoaXMgaXMgcmVhbGx5IGp1c3QgYQot CSAqIGhvdXNrZWVwaW5nIHN0ZXAKKwkgKiBNYWtlIHN1cmUgdGhlIEdYIGRvbWFpbiBpcyBvZmYg YmVmb3JlIHR1cm5pbmcgb2ZmIHRoZSBHTVUgKENYKQorCSAqIGRvbWFpbi4gVXN1YWxseSB0aGUg R01VIGRvZXMgdGhpcyBidXQgb25seSBpZiB0aGUgc2h1dGRvd24gc2VxdWVuY2UKKwkgKiB3YXMg c3VjY2Vzc2Z1bAogCSAqLwogCWlmICghSVNfRVJSKGdtdS0+Z3hwZCkpCiAJCXBtX3J1bnRpbWVf cHV0X3N5bmMoZ211LT5neHBkKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vYWRy ZW5vL2E2eHhfZ211LmggYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hNnh4X2dtdS5oCmlu ZGV4IDA3OGQ0MTguLmM1YjE4ODcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vYWRy ZW5vL2E2eHhfZ211LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYTZ4eF9nbXUu aApAQCAtMjcsOSArMjcsNiBAQCBzdHJ1Y3QgYTZ4eF9nbXVfYm8gewogLyogdGhlIEdNVSBpcyBj b21pbmcgdXAgZm9yIHRoZSBmaXJzdCB0aW1lIG9yIGJhY2sgZnJvbSBhIHBvd2VyIGNvbGxhcHNl ICovCiAjZGVmaW5lIEdNVV9DT0xEX0JPT1QgMQogCi0vKiBUaGUgR01VIGlzIGJlaW5nIHNvZnQg cmVzZXQgYWZ0ZXIgYSBmYXVsdCAqLwotI2RlZmluZSBHTVVfUkVTRVQgMgotCiAvKgogICogVGhl c2UgZGVmaW5lIHRoZSBsZXZlbCBvZiBjb250cm9sIHRoYXQgdGhlIEdNVSBoYXMgLSB0aGUgaGln aGVyIHRoZSBudW1iZXIKICAqIHRoZSBtb3JlIHRoaW5ncyB0aGF0IHRoZSBHTVUgaGFyZHdhcmUg Y29udHJvbHMgb24gaXRzIG93bi4KQEAgLTc5LDYgKzc2LDcgQEAgc3RydWN0IGE2eHhfZ211IHsK IAlzdHJ1Y3QgYTZ4eF9oZmlfcXVldWUgcXVldWVzWzJdOwogCiAJc3RydWN0IHRhc2tsZXRfc3Ry dWN0IGhmaV90YXNrbGV0OworCWJvb2wgaHVuZzsKIH07CiAKIHN0YXRpYyBpbmxpbmUgdTMyIGdt dV9yZWFkKHN0cnVjdCBhNnh4X2dtdSAqZ211LCB1MzIgb2Zmc2V0KQpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYTZ4eF9ncHUuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20v YWRyZW5vL2E2eHhfZ3B1LmMKaW5kZXggZmVmZTc3My4uZjc2ZDhjZCAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYTZ4eF9ncHUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v bXNtL2FkcmVuby9hNnh4X2dwdS5jCkBAIC02OTgsNyArNjk4LDcgQEAgc3RhdGljIGludCBhNnh4 X3BtX3N1c3BlbmQoc3RydWN0IG1zbV9ncHUgKmdwdSkKIAkgKiBNYWtlIHN1cmUgdGhlIEdNVSBp cyBpZGxlIGJlZm9yZSBjb250aW51aW5nIChiZWNhdXNlIHNvbWUgdHJhbnNpdGlvbnMKIAkgKiBt YXkgdXNlIFZCSUYKIAkgKi8KLQlhNnh4X2dtdV93YWl0X2Zvcl9pZGxlKGE2eHhfZ3B1KTsKKwlh Nnh4X2dtdV93YWl0X2Zvcl9pZGxlKCZhNnh4X2dwdS0+Z211KTsKIAogCS8qIENsZWFyIHRoZSBW QklGIHBpcGUgYmVmb3JlIHNodXR0aW5nIGRvd24gKi8KIAkvKiBGSVhNRTogVGhpcyBhY2Nlc3Nl cyB0aGUgR1BVIC0gZG8gd2UgbmVlZCB0byBtYWtlIHN1cmUgaXQgaXMgb24/ICovCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hNnh4X2dwdS5oIGIvZHJpdmVycy9ncHUv ZHJtL21zbS9hZHJlbm8vYTZ4eF9ncHUuaAppbmRleCA1MjhhNGNmLi5iNDYyNzllIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hNnh4X2dwdS5oCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9tc20vYWRyZW5vL2E2eHhfZ3B1LmgKQEAgLTQ2LDkgKzQ2LDggQEAgc3RydWN0IGE2 eHhfZ3B1IHsKIGludCBhNnh4X2dtdV9yZXN1bWUoc3RydWN0IGE2eHhfZ3B1ICpncHUpOwogaW50 IGE2eHhfZ211X3N0b3Aoc3RydWN0IGE2eHhfZ3B1ICpncHUpOwogCi1pbnQgYTZ4eF9nbXVfd2Fp dF9mb3JfaWRsZShzdHJ1Y3QgYTZ4eF9ncHUgKmdwdSk7CitpbnQgYTZ4eF9nbXVfd2FpdF9mb3Jf aWRsZShzdHJ1Y3QgYTZ4eF9nbXUgKmdtdSk7CiAKLWludCBhNnh4X2dtdV9yZXNldChzdHJ1Y3Qg YTZ4eF9ncHUgKmE2eHhfZ3B1KTsKIGJvb2wgYTZ4eF9nbXVfaXNpZGxlKHN0cnVjdCBhNnh4X2dt dSAqZ211KTsKIAogaW50IGE2eHhfZ211X3NldF9vb2Ioc3RydWN0IGE2eHhfZ211ICpnbXUsIGVu dW0gYTZ4eF9nbXVfb29iX3N0YXRlIHN0YXRlKTsKLS0gCjIuNy40CgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpGcmVlZHJlbm8gbWFpbGluZyBsaXN0CkZy ZWVkcmVub0BsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9mcmVlZHJlbm8K