From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jordan Crouse Subject: [PATCH 04/10] drm/msm/gpu: Convert the GPU show function to use the GPU state Date: Tue, 17 Apr 2018 16:44:35 -0600 Message-ID: <20180417224441.32355-5-jcrouse@codeaurora.org> References: <20180417224441.32355-1-jcrouse@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180417224441.32355-1-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: linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org Q29udmVydCB0aGUgZXhpc3RpbmcgR1BVIHNob3cgZnVuY3Rpb24gdG8gdXNlIHRoZSBHUFUgc3Rh dGUgdG8KZHVtcCB0aGUgaW5mb3JtYXRpb24gcmF0aGVyIHRoYW4gcmVhZGluZyBpdCBkaXJlY3Rs eSBmcm9tIHRoZSBoYXJkd2FyZS4KVGhpcyB3aWxsIHJlcXVpcmUgYW4gYWRkaXRpb25hbCBzdGVw IHRvIGNhcHR1cmUgdGhlIHN0YXRlIGJlZm9yZQpkdW1waW5nIGl0IGZvciB0aGUgZXhpc3Rpbmcg bm9kZXMgYnV0IGl0IHdpbGwgZ3JlYXRseSBmYWNpbGl0YXRlIHJldXNpbmcKdGhlIHNhbWUgY29k ZSBmb3IgZHVtcGluZyBhIHByZXZpb3VzbHkgY2FwdHVyZWQgc3RhdGUgZnJvbSBhIEdQVSBoYW5n LgoKU2lnbmVkLW9mZi1ieTogSm9yZGFuIENyb3VzZSA8amNyb3VzZUBjb2RlYXVyb3JhLm9yZz4K LS0tCiBkcml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hM3h4X2dwdS5jICAgfCAxMSArLS0KIGRy aXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2E0eHhfZ3B1LmMgICB8IDEyICstLS0KIGRyaXZlcnMv Z3B1L2RybS9tc20vYWRyZW5vL2E1eHhfZ3B1LmMgICB8IDE4ICstLS0tCiBkcml2ZXJzL2dwdS9k cm0vbXNtL2FkcmVuby9hZHJlbm9fZ3B1LmMgfCAzMCArKysrLS0tLQogZHJpdmVycy9ncHUvZHJt L21zbS9hZHJlbm8vYWRyZW5vX2dwdS5oIHwgIDQgKy0KIGRyaXZlcnMvZ3B1L2RybS9tc20vbXNt X2RlYnVnZnMuYyAgICAgICB8IDkyICsrKysrKysrKysrKysrKysrKysrKystLS0KIGRyaXZlcnMv Z3B1L2RybS9tc20vbXNtX2dwdS5oICAgICAgICAgICB8ICAzICstCiA3IGZpbGVzIGNoYW5nZWQs IDEwNCBpbnNlcnRpb25zKCspLCA2NiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vbXNtL2FkcmVuby9hM3h4X2dwdS5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9hZHJl bm8vYTN4eF9ncHUuYwppbmRleCBiNzA3YjViY2E5YWIuLjRjZmZlYzJiNmFkYyAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYTN4eF9ncHUuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vbXNtL2FkcmVuby9hM3h4X2dwdS5jCkBAIC00MTEsMTUgKzQxMSw2IEBAIHN0YXRpYyBj b25zdCB1bnNpZ25lZCBpbnQgYTN4eF9yZWdpc3RlcnNbXSA9IHsKIAl+MCAgIC8qIHNlbnRpbmVs ICovCiB9OwogCi0jaWZkZWYgQ09ORklHX0RFQlVHX0ZTCi1zdGF0aWMgdm9pZCBhM3h4X3Nob3co c3RydWN0IG1zbV9ncHUgKmdwdSwgc3RydWN0IHNlcV9maWxlICptKQotewotCXNlcV9wcmludGYo bSwgInN0YXR1czogICAlMDh4XG4iLAotCQkJZ3B1X3JlYWQoZ3B1LCBSRUdfQTNYWF9SQkJNX1NU QVRVUykpOwotCWFkcmVub19zaG93KGdwdSwgbSk7Ci19Ci0jZW5kaWYKLQogLyogd291bGQgYmUg bmljZSB0byBub3QgaGF2ZSB0byBkdXBsaWNhdGUgdGhlIF9zaG93KCkgc3R1ZmYgd2l0aCBwcmlu dGsoKTogKi8KIHN0YXRpYyB2b2lkIGEzeHhfZHVtcChzdHJ1Y3QgbXNtX2dwdSAqZ3B1KQogewpA QCAtNDY0LDcgKzQ1NSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYWRyZW5vX2dwdV9mdW5jcyBm dW5jcyA9IHsKIAkJLmlycSA9IGEzeHhfaXJxLAogCQkuZGVzdHJveSA9IGEzeHhfZGVzdHJveSwK ICNpZmRlZiBDT05GSUdfREVCVUdfRlMKLQkJLnNob3cgPSBhM3h4X3Nob3csCisJCS5zaG93ID0g YWRyZW5vX3Nob3csCiAjZW5kaWYKIAkJLmdwdV9zdGF0ZV9nZXQgPSBhM3h4X2dwdV9zdGF0ZV9n ZXQsCiAJCS5ncHVfc3RhdGVfcHV0ID0gYWRyZW5vX2dwdV9zdGF0ZV9wdXQsCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hNHh4X2dwdS5jIGIvZHJpdmVycy9ncHUvZHJt L21zbS9hZHJlbm8vYTR4eF9ncHUuYwppbmRleCAxN2U5N2ViYzEwNzcuLjk1ZjA4YzIyZThkNyAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYTR4eF9ncHUuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hNHh4X2dwdS5jCkBAIC00NTUsMTYgKzQ1NSw2IEBA IHN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgYTR4eF9yZWdpc3RlcnNbXSA9IHsKIAl+MCAvKiBz ZW50aW5lbCAqLwogfTsKIAotI2lmZGVmIENPTkZJR19ERUJVR19GUwotc3RhdGljIHZvaWQgYTR4 eF9zaG93KHN0cnVjdCBtc21fZ3B1ICpncHUsIHN0cnVjdCBzZXFfZmlsZSAqbSkKLXsKLQlzZXFf cHJpbnRmKG0sICJzdGF0dXM6ICAgJTA4eFxuIiwKLQkJCWdwdV9yZWFkKGdwdSwgUkVHX0E0WFhf UkJCTV9TVEFUVVMpKTsKLQlhZHJlbm9fc2hvdyhncHUsIG0pOwotCi19Ci0jZW5kaWYKLQogc3Rh dGljIHN0cnVjdCBtc21fZ3B1X3N0YXRlICphNHh4X2dwdV9zdGF0ZV9nZXQoc3RydWN0IG1zbV9n cHUgKmdwdSkKIHsKIAlzdHJ1Y3QgbXNtX2dwdV9zdGF0ZSAqc3RhdGUgPSBhZHJlbm9fZ3B1X3N0 YXRlX2dldChncHUpOwpAQCAtNTUxLDcgKzU0MSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYWRy ZW5vX2dwdV9mdW5jcyBmdW5jcyA9IHsKIAkJLmlycSA9IGE0eHhfaXJxLAogCQkuZGVzdHJveSA9 IGE0eHhfZGVzdHJveSwKICNpZmRlZiBDT05GSUdfREVCVUdfRlMKLQkJLnNob3cgPSBhNHh4X3No b3csCisJCS5zaG93ID0gYWRyZW5vX3Nob3csCiAjZW5kaWYKIAkJLmdwdV9zdGF0ZV9nZXQgPSBh NHh4X2dwdV9zdGF0ZV9nZXQsCiAJCS5ncHVfc3RhdGVfcHV0ID0gYWRyZW5vX2dwdV9zdGF0ZV9w dXQsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hNXh4X2dwdS5jIGIv ZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYTV4eF9ncHUuYwppbmRleCAwOGYyNTc5OGFiZGIu LmIwOTEwYmJlNTE5MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYTV4 eF9ncHUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hNXh4X2dwdS5jCkBAIC0x MjE1LDIyICsxMjE1LDYgQEAgc3RhdGljIHN0cnVjdCBtc21fZ3B1X3N0YXRlICphNXh4X2dwdV9z dGF0ZV9nZXQoc3RydWN0IG1zbV9ncHUgKmdwdSkKIAlyZXR1cm4gc3RhdGU7CiB9CiAKLSNpZmRl ZiBDT05GSUdfREVCVUdfRlMKLXN0YXRpYyB2b2lkIGE1eHhfc2hvdyhzdHJ1Y3QgbXNtX2dwdSAq Z3B1LCBzdHJ1Y3Qgc2VxX2ZpbGUgKm0pCi17Ci0Jc2VxX3ByaW50ZihtLCAic3RhdHVzOiAgICUw OHhcbiIsCi0JCQlncHVfcmVhZChncHUsIFJFR19BNVhYX1JCQk1fU1RBVFVTKSk7Ci0KLQkvKgot CSAqIFRlbXBvcmFyaWx5IGRpc2FibGUgaGFyZHdhcmUgY2xvY2sgZ2F0aW5nIGJlZm9yZSBnb2lu ZyBpbnRvCi0JICogYWRyZW5vX3Nob3cgdG8gYXZvaWQgaXNzdWVzIHdoaWxlIHJlYWRpbmcgdGhl IHJlZ2lzdGVycwotCSAqLwotCWE1eHhfc2V0X2h3Y2coZ3B1LCBmYWxzZSk7Ci0JYWRyZW5vX3No b3coZ3B1LCBtKTsKLQlhNXh4X3NldF9od2NnKGdwdSwgdHJ1ZSk7Ci19Ci0jZW5kaWYKLQogc3Rh dGljIHN0cnVjdCBtc21fcmluZ2J1ZmZlciAqYTV4eF9hY3RpdmVfcmluZyhzdHJ1Y3QgbXNtX2dw dSAqZ3B1KQogewogCXN0cnVjdCBhZHJlbm9fZ3B1ICphZHJlbm9fZ3B1ID0gdG9fYWRyZW5vX2dw dShncHUpOwpAQCAtMTI2MCw3ICsxMjQ0LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhZHJlbm9f Z3B1X2Z1bmNzIGZ1bmNzID0gewogCQkuaXJxID0gYTV4eF9pcnEsCiAJCS5kZXN0cm95ID0gYTV4 eF9kZXN0cm95LAogI2lmZGVmIENPTkZJR19ERUJVR19GUwotCQkuc2hvdyA9IGE1eHhfc2hvdywK KwkJLnNob3cgPSBhZHJlbm9fc2hvdywKIAkJLmRlYnVnZnNfaW5pdCA9IGE1eHhfZGVidWdmc19p bml0LAogI2VuZGlmCiAJCS5ncHVfYnVzeSA9IGE1eHhfZ3B1X2J1c3ksCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hZHJlbm9fZ3B1LmMgYi9kcml2ZXJzL2dwdS9kcm0v bXNtL2FkcmVuby9hZHJlbm9fZ3B1LmMKaW5kZXggYjJjY2FmMjU3NjdjLi41MjJkNDdhYzM2ZTEg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2FkcmVub19ncHUuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hZHJlbm9fZ3B1LmMKQEAgLTQyMywzOCArNDIz LDM0IEBAIHZvaWQgYWRyZW5vX2dwdV9zdGF0ZV9wdXQoc3RydWN0IG1zbV9ncHVfc3RhdGUgKnN0 YXRlKQogfQogCiAjaWZkZWYgQ09ORklHX0RFQlVHX0ZTCi12b2lkIGFkcmVub19zaG93KHN0cnVj dCBtc21fZ3B1ICpncHUsIHN0cnVjdCBzZXFfZmlsZSAqbSkKK3ZvaWQgYWRyZW5vX3Nob3coc3Ry dWN0IG1zbV9ncHUgKmdwdSwgc3RydWN0IG1zbV9ncHVfc3RhdGUgKnN0YXRlLAorCQlzdHJ1Y3Qg c2VxX2ZpbGUgKm0pCiB7CiAJc3RydWN0IGFkcmVub19ncHUgKmFkcmVub19ncHUgPSB0b19hZHJl bm9fZ3B1KGdwdSk7CiAJaW50IGk7CiAKKwlpZiAoSVNfRVJSX09SX05VTEwoc3RhdGUpKQorCQly ZXR1cm47CisKKwlzZXFfcHJpbnRmKG0sICJzdGF0dXM6ICAgJTA4eFxuIiwgc3RhdGUtPnJiYm1f c3RhdHVzKTsKIAlzZXFfcHJpbnRmKG0sICJyZXZpc2lvbjogJWQgKCVkLiVkLiVkLiVkKVxuIiwK IAkJCWFkcmVub19ncHUtPmluZm8tPnJldm4sIGFkcmVub19ncHUtPnJldi5jb3JlLAogCQkJYWRy ZW5vX2dwdS0+cmV2Lm1ham9yLCBhZHJlbm9fZ3B1LT5yZXYubWlub3IsCiAJCQlhZHJlbm9fZ3B1 LT5yZXYucGF0Y2hpZCk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgZ3B1LT5ucl9yaW5nczsgaSsrKSB7 Ci0JCXN0cnVjdCBtc21fcmluZ2J1ZmZlciAqcmluZyA9IGdwdS0+cmJbaV07Ci0KIAkJc2VxX3By aW50ZihtLCAicmIgJWQ6IGZlbmNlOiAgICAlZC8lZFxuIiwgaSwKLQkJCXJpbmctPm1lbXB0cnMt PmZlbmNlLCByaW5nLT5zZXFubyk7CisJCQlzdGF0ZS0+cmluZ1tpXS5mZW5jZSwgc3RhdGUtPnJp bmdbaV0uc2Vxbm8pOwogCi0JCXNlcV9wcmludGYobSwgIiAgICAgIHJwdHI6ICAgICAlZFxuIiwK LQkJCWdldF9ycHRyKGFkcmVub19ncHUsIHJpbmcpKTsKLQkJc2VxX3ByaW50ZihtLCAicmIgd3B0 cjogICVkXG4iLCBnZXRfd3B0cihyaW5nKSk7CisJCXNlcV9wcmludGYobSwgIiAgICAgIHJwdHI6 ICAgICAlZFxuIiwgc3RhdGUtPnJpbmdbaV0ucnB0cik7CisJCXNlcV9wcmludGYobSwgInJiIHdw dHI6ICAlZFxuIiwgc3RhdGUtPnJpbmdbaV0ud3B0cik7CiAJfQogCi0JLyogZHVtcCB0aGVzZSBv dXQgaW4gYSBmb3JtIHRoYXQgY2FuIGJlIHBhcnNlZCBieSBkZW1zbTogKi8KIAlzZXFfcHJpbnRm KG0sICJJTzpyZWdpb24gJXMgMDAwMDAwMDAgMDAwMjAwMDBcbiIsIGdwdS0+bmFtZSk7Ci0JZm9y IChpID0gMDsgYWRyZW5vX2dwdS0+cmVnaXN0ZXJzW2ldICE9IH4wOyBpICs9IDIpIHsKLQkJdWlu dDMyX3Qgc3RhcnQgPSBhZHJlbm9fZ3B1LT5yZWdpc3RlcnNbaV07Ci0JCXVpbnQzMl90IGVuZCAg ID0gYWRyZW5vX2dwdS0+cmVnaXN0ZXJzW2krMV07Ci0JCXVpbnQzMl90IGFkZHI7Ci0KLQkJZm9y IChhZGRyID0gc3RhcnQ7IGFkZHIgPD0gZW5kOyBhZGRyKyspIHsKLQkJCXVpbnQzMl90IHZhbCA9 IGdwdV9yZWFkKGdwdSwgYWRkcik7Ci0JCQlzZXFfcHJpbnRmKG0sICJJTzpSICUwOHggJTA4eFxu IiwgYWRkcjw8MiwgdmFsKTsKLQkJfQorCWZvciAoaSA9IDA7IGkgPCBzdGF0ZS0+bnJfcmVnaXN0 ZXJzOyBpKyspIHsKKwkJc2VxX3ByaW50ZihtLCAiSU86UiAlMDh4ICUwOHhcbiIsCisJCQlzdGF0 ZS0+cmVnaXN0ZXJzW2kgKiAyXSA8PCAyLAorCQkJc3RhdGUtPnJlZ2lzdGVyc1soaSAqIDIpICsg MV0pOwogCX0KIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9hZHJl bm8vYWRyZW5vX2dwdS5oIGIvZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYWRyZW5vX2dwdS5o CmluZGV4IDBiZWIwNzhlYjY1OC4uODE1YWU5OGM3ZmQxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vbXNtL2FkcmVuby9hZHJlbm9fZ3B1LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9h ZHJlbm8vYWRyZW5vX2dwdS5oCkBAIC0yMTUsNyArMjE1LDggQEAgdm9pZCBhZHJlbm9fc3VibWl0 KHN0cnVjdCBtc21fZ3B1ICpncHUsIHN0cnVjdCBtc21fZ2VtX3N1Ym1pdCAqc3VibWl0LAogdm9p ZCBhZHJlbm9fZmx1c2goc3RydWN0IG1zbV9ncHUgKmdwdSwgc3RydWN0IG1zbV9yaW5nYnVmZmVy ICpyaW5nKTsKIGJvb2wgYWRyZW5vX2lkbGUoc3RydWN0IG1zbV9ncHUgKmdwdSwgc3RydWN0IG1z bV9yaW5nYnVmZmVyICpyaW5nKTsKICNpZmRlZiBDT05GSUdfREVCVUdfRlMKLXZvaWQgYWRyZW5v X3Nob3coc3RydWN0IG1zbV9ncHUgKmdwdSwgc3RydWN0IHNlcV9maWxlICptKTsKK3ZvaWQgYWRy ZW5vX3Nob3coc3RydWN0IG1zbV9ncHUgKmdwdSwgc3RydWN0IG1zbV9ncHVfc3RhdGUgKnN0YXRl LAorCQlzdHJ1Y3Qgc2VxX2ZpbGUgKm0pOwogI2VuZGlmCiB2b2lkIGFkcmVub19kdW1wX2luZm8o c3RydWN0IG1zbV9ncHUgKmdwdSk7CiB2b2lkIGFkcmVub19kdW1wKHN0cnVjdCBtc21fZ3B1ICpn cHUpOwpAQCAtMjI3LDcgKzIyOCw2IEBAIGludCBhZHJlbm9fZ3B1X2luaXQoc3RydWN0IGRybV9k ZXZpY2UgKmRybSwgc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKIAkJaW50IG5yX3Jpbmdz KTsKIHZvaWQgYWRyZW5vX2dwdV9jbGVhbnVwKHN0cnVjdCBhZHJlbm9fZ3B1ICpncHUpOwogCi0K IHN0cnVjdCBtc21fZ3B1X3N0YXRlICphZHJlbm9fZ3B1X3N0YXRlX2dldChzdHJ1Y3QgbXNtX2dw dSAqZ3B1KTsKIHZvaWQgYWRyZW5vX2dwdV9zdGF0ZV9wdXQoc3RydWN0IG1zbV9ncHVfc3RhdGUg KnN0YXRlKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZGVidWdmcy5j IGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZGVidWdmcy5jCmluZGV4IGJhNzRjYjRmOTRkZi4u ZWEyMGViMGFkNzQ3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9kZWJ1Z2Zz LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZGVidWdmcy5jCkBAIC0xNiwyNiArMTYs MTAwIEBACiAgKi8KIAogI2lmZGVmIENPTkZJR19ERUJVR19GUworI2luY2x1ZGUgPGxpbnV4L2Rl YnVnZnMuaD4KICNpbmNsdWRlICJtc21fZHJ2LmgiCiAjaW5jbHVkZSAibXNtX2dwdS5oIgogI2lu Y2x1ZGUgIm1zbV9rbXMuaCIKICNpbmNsdWRlICJtc21fZGVidWdmcy5oIgogCi1zdGF0aWMgaW50 IG1zbV9ncHVfc2hvdyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3Qgc2VxX2ZpbGUgKm0p CitzdHJ1Y3QgbXNtX2dwdV9zaG93X3ByaXYgeworCXN0cnVjdCBtc21fZ3B1X3N0YXRlICpzdGF0 ZTsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2OworfTsKKworc3RhdGljIGludCBtc21fZ3B1X3No b3coc3RydWN0IHNlcV9maWxlICptLCB2b2lkICphcmcpCit7CisJc3RydWN0IG1zbV9ncHVfc2hv d19wcml2ICpzaG93X3ByaXYgPSBtLT5wcml2YXRlOworCXN0cnVjdCBtc21fZHJtX3ByaXZhdGUg KnByaXYgPSBzaG93X3ByaXYtPmRldi0+ZGV2X3ByaXZhdGU7CisJc3RydWN0IG1zbV9ncHUgKmdw dSA9IHByaXYtPmdwdTsKKwlpbnQgcmV0OworCisJcmV0ID0gbXV0ZXhfbG9ja19pbnRlcnJ1cHRp YmxlKCZzaG93X3ByaXYtPmRldi0+c3RydWN0X211dGV4KTsKKwlpZiAocmV0KQorCQlyZXR1cm4g cmV0OworCisJc2VxX3ByaW50ZihtLCAiJXMgU3RhdHVzOlxuIiwgZ3B1LT5uYW1lKTsKKwlncHUt PmZ1bmNzLT5zaG93KGdwdSwgc2hvd19wcml2LT5zdGF0ZSwgbSk7CisKKwltdXRleF91bmxvY2so JnNob3dfcHJpdi0+ZGV2LT5zdHJ1Y3RfbXV0ZXgpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRp YyBpbnQgbXNtX2dwdV9yZWxlYXNlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpm aWxlKQoreworCXN0cnVjdCBzZXFfZmlsZSAqbSA9IGZpbGUtPnByaXZhdGVfZGF0YTsKKwlzdHJ1 Y3QgbXNtX2dwdV9zaG93X3ByaXYgKnNob3dfcHJpdiA9IG0tPnByaXZhdGU7CisJc3RydWN0IG1z bV9kcm1fcHJpdmF0ZSAqcHJpdiA9IHNob3dfcHJpdi0+ZGV2LT5kZXZfcHJpdmF0ZTsKKwlzdHJ1 Y3QgbXNtX2dwdSAqZ3B1ID0gcHJpdi0+Z3B1OworCWludCByZXQ7CisKKwlyZXQgPSBtdXRleF9s b2NrX2ludGVycnVwdGlibGUoJnNob3dfcHJpdi0+ZGV2LT5zdHJ1Y3RfbXV0ZXgpOworCWlmIChy ZXQpCisJCXJldHVybiByZXQ7CisKKwlncHUtPmZ1bmNzLT5ncHVfc3RhdGVfcHV0KHNob3dfcHJp di0+c3RhdGUpOworCW11dGV4X3VubG9jaygmc2hvd19wcml2LT5kZXYtPnN0cnVjdF9tdXRleCk7 CisKKwlrZnJlZShzaG93X3ByaXYpOworCisJcmV0dXJuIHNpbmdsZV9yZWxlYXNlKGlub2RlLCBm aWxlKTsKK30KKworc3RhdGljIGludCBtc21fZ3B1X29wZW4oc3RydWN0IGlub2RlICppbm9kZSwg c3RydWN0IGZpbGUgKmZpbGUpCiB7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGlub2RlLT5p X3ByaXZhdGU7CiAJc3RydWN0IG1zbV9kcm1fcHJpdmF0ZSAqcHJpdiA9IGRldi0+ZGV2X3ByaXZh dGU7CiAJc3RydWN0IG1zbV9ncHUgKmdwdSA9IHByaXYtPmdwdTsKKwlzdHJ1Y3QgbXNtX2dwdV9z aG93X3ByaXYgKnNob3dfcHJpdjsKKwlpbnQgcmV0OwogCi0JaWYgKGdwdSkgewotCQlzZXFfcHJp bnRmKG0sICIlcyBTdGF0dXM6XG4iLCBncHUtPm5hbWUpOwotCQlwbV9ydW50aW1lX2dldF9zeW5j KCZncHUtPnBkZXYtPmRldik7Ci0JCWdwdS0+ZnVuY3MtPnNob3coZ3B1LCBtKTsKLQkJcG1fcnVu dGltZV9wdXRfc3luYygmZ3B1LT5wZGV2LT5kZXYpOworCWlmICghZ3B1KQorCQlyZXR1cm4gLUVO T0RFVjsKKworCXNob3dfcHJpdiA9IGttYWxsb2Moc2l6ZW9mKCpzaG93X3ByaXYpLCBHRlBfS0VS TkVMKTsKKwlpZiAoIXNob3dfcHJpdikKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlyZXQgPSBtdXRl eF9sb2NrX2ludGVycnVwdGlibGUoJmRldi0+c3RydWN0X211dGV4KTsKKwlpZiAocmV0KQorCQly ZXR1cm4gcmV0OworCisJcG1fcnVudGltZV9nZXRfc3luYygmZ3B1LT5wZGV2LT5kZXYpOworCXNo b3dfcHJpdi0+c3RhdGUgPSBncHUtPmZ1bmNzLT5ncHVfc3RhdGVfZ2V0KGdwdSk7CisJcG1fcnVu dGltZV9wdXRfc3luYygmZ3B1LT5wZGV2LT5kZXYpOworCisJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0 cnVjdF9tdXRleCk7CisKKwlpZiAoSVNfRVJSKHNob3dfcHJpdi0+c3RhdGUpKSB7CisJCXJldCA9 IFBUUl9FUlIoc2hvd19wcml2LT5zdGF0ZSk7CisJCWtmcmVlKHNob3dfcHJpdik7CisJCXJldHVy biByZXQ7CiAJfQogCi0JcmV0dXJuIDA7CisJc2hvd19wcml2LT5kZXYgPSBkZXY7CisKKwlyZXR1 cm4gc2luZ2xlX29wZW4oZmlsZSwgbXNtX2dwdV9zaG93LCBzaG93X3ByaXYpOwogfQogCitzdGF0 aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBtc21fZ3B1X2ZvcHMgPSB7CisJLm93bmVy ID0gVEhJU19NT0RVTEUsCisJLm9wZW4gPSBtc21fZ3B1X29wZW4sCisJLnJlYWQgPSBzZXFfcmVh ZCwKKwkubGxzZWVrID0gc2VxX2xzZWVrLAorCS5yZWxlYXNlID0gbXNtX2dwdV9yZWxlYXNlLAor fTsKKwogc3RhdGljIGludCBtc21fZ2VtX3Nob3coc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3Ry dWN0IHNlcV9maWxlICptKQogewogCXN0cnVjdCBtc21fZHJtX3ByaXZhdGUgKnByaXYgPSBkZXYt PmRldl9wcml2YXRlOwpAQCAtMTA1LDcgKzE3OSw2IEBAIHN0YXRpYyBpbnQgc2hvd19sb2NrZWQo c3RydWN0IHNlcV9maWxlICptLCB2b2lkICphcmcpCiB9CiAKIHN0YXRpYyBzdHJ1Y3QgZHJtX2lu Zm9fbGlzdCBtc21fZGVidWdmc19saXN0W10gPSB7Ci0JCXsiZ3B1Iiwgc2hvd19sb2NrZWQsIDAs IG1zbV9ncHVfc2hvd30sCiAJCXsiZ2VtIiwgc2hvd19sb2NrZWQsIDAsIG1zbV9nZW1fc2hvd30s CiAJCXsgIm1tIiwgc2hvd19sb2NrZWQsIDAsIG1zbV9tbV9zaG93IH0sCiAJCXsgImZiIiwgc2hv d19sb2NrZWQsIDAsIG1zbV9mYl9zaG93IH0sCkBAIC0xNjEsNiArMjM0LDkgQEAgaW50IG1zbV9k ZWJ1Z2ZzX2luaXQoc3RydWN0IGRybV9taW5vciAqbWlub3IpCiAJCXJldHVybiByZXQ7CiAJfQog CisJZGVidWdmc19jcmVhdGVfZmlsZSgiZ3B1IiwgU19JUlVTUiwgbWlub3ItPmRlYnVnZnNfcm9v dCwKKwkJZGV2LCAmbXNtX2dwdV9mb3BzKTsKKwogCWlmIChwcml2LT5rbXMtPmZ1bmNzLT5kZWJ1 Z2ZzX2luaXQpIHsKIAkJcmV0ID0gcHJpdi0+a21zLT5mdW5jcy0+ZGVidWdmc19pbml0KHByaXYt PmttcywgbWlub3IpOwogCQlpZiAocmV0KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21z bS9tc21fZ3B1LmggYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9ncHUuaAppbmRleCA0YmU3MmE2 MTJiZWMuLjQ3MGYzYmI1ZjgzNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21f Z3B1LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ3B1LmgKQEAgLTY1LDcgKzY1LDgg QEAgc3RydWN0IG1zbV9ncHVfZnVuY3MgewogCXZvaWQgKCpkZXN0cm95KShzdHJ1Y3QgbXNtX2dw dSAqZ3B1KTsKICNpZmRlZiBDT05GSUdfREVCVUdfRlMKIAkvKiBzaG93IEdQVSBzdGF0dXMgaW4g ZGVidWdmczogKi8KLQl2b2lkICgqc2hvdykoc3RydWN0IG1zbV9ncHUgKmdwdSwgc3RydWN0IHNl cV9maWxlICptKTsKKwl2b2lkICgqc2hvdykoc3RydWN0IG1zbV9ncHUgKmdwdSwgc3RydWN0IG1z bV9ncHVfc3RhdGUgKnN0YXRlLAorCQkJc3RydWN0IHNlcV9maWxlICptKTsKIAkvKiBmb3IgZ2Vu ZXJhdGlvbiBzcGVjaWZpYyBkZWJ1Z2ZzOiAqLwogCWludCAoKmRlYnVnZnNfaW5pdCkoc3RydWN0 IG1zbV9ncHUgKmdwdSwgc3RydWN0IGRybV9taW5vciAqbWlub3IpOwogI2VuZGlmCi0tIAoyLjE3 LjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkZyZWVk cmVubyBtYWlsaW5nIGxpc3QKRnJlZWRyZW5vQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZyZWVkcmVubwo=