From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jordan Crouse Subject: [PATCH 09/10] drm/msm/adreno: Add a5xx specific registers for the GPU state Date: Thu, 5 Apr 2018 16:00:55 -0600 Message-ID: <20180405220056.29423-10-jcrouse@codeaurora.org> References: <20180405220056.29423-1-jcrouse@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180405220056.29423-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 SExTUSwgU1AgYW5kIFRQIHJlZ2lzdGVycyBhcmUgb25seSBhY2Nlc3NpYmxlIGZyb20gYSBzcGVj aWFsCmFwZXJ0dXJlIGFuZCB0byBtYWtlIG1hdHRlcnMgd29yc2UgdGhlIGFwZXJ0dXJlIGlzIGJs b2NrZWQgZnJvbQp0aGUgQ1BVIG9uIHRhcmdldHMgdGhhdCBjYW4gc3VwcG9ydCBzZWN1cmUgcmVu ZGVyaW5nLiBMdWNraWx5IHRoZQpHUFUgaGFyZHdhcmUgaGFzIGl0cyBvd24gcHVycG9zZSBidWls dCByZWdpc3RlciBkdW1wZXIgdGhhdCBjYW4KYWNjZXNzIHRoZSByZWdpc3RlcnMgZnJvbSB0aGUg YXBlcnR1cmUuICBBZGQgYTV4eCBzcGVjaWZpYyBjb2RlCnRvIHByb2dyYW0gdGhlIGNyYXNoZHVt cGVyIGFuZCByZXRyaWV2ZSB0aGUgd2F5d2FyZCByZWdpc3RlcnMKYW5kIGR1bXAgdGhlbSBmb3Ig dGhlIGNyYXNoIHN0YXRlLgoKQWxzbywgcmVtb3ZlIGEgYmxvY2sgb2YgcmVnaXN0ZXJzIHRoZSBy ZWd1bGFyIENQVSBhY2Nlc3NpYmxlCmxpc3QgdGhhdCBhcmVuJ3QgdXNlZnVsIGZvciBkZWJ1ZyB3 aGljaCBoZWxwcyByZWR1Y2UgdGhlIHNpemUKb2YgdGhlIGNyYXNoIHN0YXRlIGZpbGUgYnkgYSBn b29kbHkgYW1vdW50LgoKU2lnbmVkLW9mZi1ieTogSm9yZGFuIENyb3VzZSA8amNyb3VzZUBjb2Rl YXVyb3JhLm9yZz4KLS0tCiBEb2N1bWVudGF0aW9uL2dwdS9kcm0tbXNtLWNyYXNoLWR1bXAudHh0 IHwgICA0ICsKIGRyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2EzeHhfZ3B1LmMgICAgfCAgIDgg Ky0KIGRyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2E0eHhfZ3B1LmMgICAgfCAgIDggKy0KIGRy aXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2E1eHhfZ3B1LmMgICAgfCAyMzcgKysrKysrKysrKysr KysrKysrKysrKysrKysrKystLQogZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYWRyZW5vX2dw dS5jICB8ICAyMyArLS0KIGRyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2FkcmVub19ncHUuaCAg fCAgIDQgKy0KIDYgZmlsZXMgY2hhbmdlZCwgMjUzIGluc2VydGlvbnMoKyksIDMxIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZ3B1L2RybS1tc20tY3Jhc2gtZHVtcC50 eHQgYi9Eb2N1bWVudGF0aW9uL2dwdS9kcm0tbXNtLWNyYXNoLWR1bXAudHh0CmluZGV4IGRmMjVh ZmQxMDYwMi4uZjg0YTQ3YTljYTkyIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2dwdS9kcm0t bXNtLWNyYXNoLWR1bXAudHh0CisrKyBiL0RvY3VtZW50YXRpb24vZ3B1L2RybS1tc20tY3Jhc2gt ZHVtcC50eHQKQEAgLTMzLDMgKzMzLDcgQEAgcmVnaXN0ZXJzOgkjIFNldHMgb2YgcmVnaXN0ZXIg dmFsdWVzLiBUaGlzIHNlY3Rpb24gY2FuIGJlIHVzZWQgbXVsdGlwbGUKIAkJIyBvbiBpdHMgb3du IGxpbmUuCiAgIC0gW29mZnNldCwgdmFsdWVdCSMgb2Zmc2V0OiBbaGV4XSBieXRlIG9mZnNldCBv ZiB0aGUgcmVnaXN0ZXIKIAkJCSMgdmFsdWU6IFtoZXhdIHZhbHVlIG9mIHRoZSByZWdpc3Rlcgor CityZWdpc3RlcnMtaGxzcTogIyAoNXh4IG9ubHkpIFNhbWUgZm9ybWF0IGFzIHJlZ2lzdGVycy4g UmVnaXN0ZXIgZGF0YSB0aGF0CisJCSMgb25seSBhY2Nlc3NpYmxlIGZyb20gdGhlIEhMU1EgYXBl cnR1cmUgY2FwdHVyZWQgYnkgdGhlCisJCSMgSFcgYmFzZWQgY3Jhc2hkdW1wZXIKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2EzeHhfZ3B1LmMgYi9kcml2ZXJzL2dwdS9k cm0vbXNtL2FkcmVuby9hM3h4X2dwdS5jCmluZGV4IGZjNTAyZTQxMjEzMi4uNjY5YzJkNGIwNzBk IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hM3h4X2dwdS5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2EzeHhfZ3B1LmMKQEAgLTQyMSwxMCArNDIxLDEy IEBAIHN0YXRpYyB2b2lkIGEzeHhfZHVtcChzdHJ1Y3QgbXNtX2dwdSAqZ3B1KQogCiBzdGF0aWMg c3RydWN0IG1zbV9ncHVfc3RhdGUgKmEzeHhfZ3B1X3N0YXRlX2dldChzdHJ1Y3QgbXNtX2dwdSAq Z3B1KQogewotCXN0cnVjdCBtc21fZ3B1X3N0YXRlICpzdGF0ZSA9IGFkcmVub19ncHVfc3RhdGVf Z2V0KGdwdSk7CisJc3RydWN0IG1zbV9ncHVfc3RhdGUgKnN0YXRlID0ga3phbGxvYyhzaXplb2Yo KnN0YXRlKSwgR0ZQX0tFUk5FTCk7CiAKLQlpZiAoSVNfRVJSKHN0YXRlKSkKLQkJcmV0dXJuIHN0 YXRlOworCWlmICghc3RhdGUpCisJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOworCisJYWRyZW5v X2dwdV9zdGF0ZV9nZXQoZ3B1LCBzdGF0ZSk7CiAKIAlzdGF0ZS0+cmJibV9zdGF0dXMgPSBncHVf cmVhZChncHUsIFJFR19BM1hYX1JCQk1fU1RBVFVTKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL21zbS9hZHJlbm8vYTR4eF9ncHUuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5v L2E0eHhfZ3B1LmMKaW5kZXggODEyOWNmMDM3ZGIxLi43YzRlNmRjMWVkNTkgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2E0eHhfZ3B1LmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL21zbS9hZHJlbm8vYTR4eF9ncHUuYwpAQCAtNDU3LDEwICs0NTcsMTIgQEAgc3RhdGljIGNv bnN0IHVuc2lnbmVkIGludCBhNHh4X3JlZ2lzdGVyc1tdID0gewogCiBzdGF0aWMgc3RydWN0IG1z bV9ncHVfc3RhdGUgKmE0eHhfZ3B1X3N0YXRlX2dldChzdHJ1Y3QgbXNtX2dwdSAqZ3B1KQogewot CXN0cnVjdCBtc21fZ3B1X3N0YXRlICpzdGF0ZSA9IGFkcmVub19ncHVfc3RhdGVfZ2V0KGdwdSk7 CisJc3RydWN0IG1zbV9ncHVfc3RhdGUgKnN0YXRlID0ga3phbGxvYyhzaXplb2YoKnN0YXRlKSwg R0ZQX0tFUk5FTCk7CiAKLQlpZiAoSVNfRVJSKHN0YXRlKSkKLQkJcmV0dXJuIHN0YXRlOworCWlm ICghc3RhdGUpCisJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOworCisJYWRyZW5vX2dwdV9zdGF0 ZV9nZXQoZ3B1LCBzdGF0ZSk7CiAKIAlzdGF0ZS0+cmJibV9zdGF0dXMgPSBncHVfcmVhZChncHUs IFJFR19BNFhYX1JCQk1fU1RBVFVTKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21z bS9hZHJlbm8vYTV4eF9ncHUuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2E1eHhfZ3B1 LmMKaW5kZXggODM2YTFkZjFmMjU3Li4wMDkwZmVjODYyYzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9tc20vYWRyZW5vL2E1eHhfZ3B1LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9h ZHJlbm8vYTV4eF9ncHUuYwpAQCAtMTksNiArMTksNyBAQAogI2luY2x1ZGUgPGxpbnV4L3NvYy9x Y29tL21kdF9sb2FkZXIuaD4KICNpbmNsdWRlIDxsaW51eC9wbV9vcHAuaD4KICNpbmNsdWRlIDxs aW51eC9udm1lbS1jb25zdW1lci5oPgorI2luY2x1ZGUgPGxpbnV4L2lvcG9sbC5oPgogI2luY2x1 ZGUgIm1zbV9nZW0uaCIKICNpbmNsdWRlICJtc21fbW11LmgiCiAjaW5jbHVkZSAiYTV4eF9ncHUu aCIKQEAgLTExMjMsOCArMTEyNCw5IEBAIHN0YXRpYyBjb25zdCB1MzIgYTV4eF9yZWdpc3RlcnNb XSA9IHsKIAkweEU4MDAsIDB4RTgwNiwgMHhFODEwLCAweEU4OUEsIDB4RThBMCwgMHhFOEE0LCAw eEU4QUEsIDB4RThFQiwKIAkweEU5MDAsIDB4RTkwNSwgMHhFQjgwLCAweEVCOEYsIDB4RUJCMCwg MHhFQkIwLCAweEVDMDAsIDB4RUMwNSwKIAkweEVDMDgsIDB4RUNFOSwgMHhFQ0YwLCAweEVDRjAs IDB4RUE4MCwgMHhFQTgwLCAweEVBODIsIDB4RUFBMywKLQkweEVBQTUsIDB4RUFDMiwgMHhBODAw LCAweEE4RkYsIDB4QUM2MCwgMHhBQzYwLCAweEIwMDAsIDB4Qjk3RiwKLQkweEI5QTAsIDB4QjlC RiwgfjAKKwkweEVBQTUsIDB4RUFDMiwgMHhBODAwLCAweEE4MDAsIDB4QTgyMCwgMHhBODI4LCAw eEE4NDAsIDB4QTg3RCwKKwkwWEE4ODAsIDB4QTg4RCwgMHhBODkwLCAweEE4QTMsIDB4QThEMCwg MHhBOEQ4LCAweEE4RTAsIDB4QThGNSwKKwkweEFDNjAsIDB4QUM2MCwgfjAsCiB9OwogCiBzdGF0 aWMgdm9pZCBhNXh4X2R1bXAoc3RydWN0IG1zbV9ncHUgKmdwdSkKQEAgLTExOTUsMjUgKzExOTcs MjM0IEBAIHN0YXRpYyBpbnQgYTV4eF9nZXRfdGltZXN0YW1wKHN0cnVjdCBtc21fZ3B1ICpncHUs IHVpbnQ2NF90ICp2YWx1ZSkKIAlyZXR1cm4gMDsKIH0KIAorc3RydWN0IGE1eHhfY3Jhc2hkdW1w ZXIgeworCXZvaWQgKnB0cjsKKwlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmJvOworCXU2NCBpb3Zh OworfTsKKworc3RydWN0IGE1eHhfZ3B1X3N0YXRlIHsKKwlzdHJ1Y3QgbXNtX2dwdV9zdGF0ZSBi YXNlOworCXUzMiAqaGxzcXJlZ3M7Cit9OworCisjZGVmaW5lIGdwdV9wb2xsX3RpbWVvdXQoZ3B1 LCBhZGRyLCB2YWwsIGNvbmQsIGludGVydmFsLCB0aW1lb3V0KSBcCisJcmVhZGxfcG9sbF90aW1l b3V0KChncHUpLT5tbWlvICsgKChhZGRyKSA8PCAyKSwgdmFsLCBjb25kLCBcCisJCWludGVydmFs LCB0aW1lb3V0KQorCitzdGF0aWMgaW50IGE1eHhfY3Jhc2hkdW1wZXJfaW5pdChzdHJ1Y3QgbXNt X2dwdSAqZ3B1LAorCQlzdHJ1Y3QgYTV4eF9jcmFzaGR1bXBlciAqZHVtcGVyKQoreworCWR1bXBl ci0+cHRyID0gbXNtX2dlbV9rZXJuZWxfbmV3X2xvY2tlZChncHUtPmRldiwKKwkJU1pfMU0sIE1T TV9CT19VTkNBQ0hFRCwgZ3B1LT5hc3BhY2UsCisJCSZkdW1wZXItPmJvLCAmZHVtcGVyLT5pb3Zh KTsKKworCWlmIChJU19FUlIoZHVtcGVyLT5wdHIpKQorCQlyZXR1cm4gUFRSX0VSUihkdW1wZXIt PnB0cik7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgYTV4eF9jcmFzaGR1bXBlcl9m cmVlKHN0cnVjdCBtc21fZ3B1ICpncHUsCisJCXN0cnVjdCBhNXh4X2NyYXNoZHVtcGVyICpkdW1w ZXIpCit7CisJbXNtX2dlbV9wdXRfaW92YShkdW1wZXItPmJvLCBncHUtPmFzcGFjZSk7CisJbXNt X2dlbV9wdXRfdmFkZHIoZHVtcGVyLT5ibyk7CisKKwlkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5j ZShkdW1wZXItPmJvKTsKK30KKworc3RhdGljIGludCBhNXh4X2NyYXNoZHVtcGVyX3J1bihzdHJ1 Y3QgbXNtX2dwdSAqZ3B1LAorCQlzdHJ1Y3QgYTV4eF9jcmFzaGR1bXBlciAqZHVtcGVyKQorewor CXUzMiB2YWw7CisKKwlpZiAoSVNfRVJSX09SX05VTEwoZHVtcGVyLT5wdHIpKQorCQlyZXR1cm4g LUVJTlZBTDsKKworCWdwdV93cml0ZTY0KGdwdSwgUkVHX0E1WFhfQ1BfQ1JBU0hfU0NSSVBUX0JB U0VfTE8sCisJCVJFR19BNVhYX0NQX0NSQVNIX1NDUklQVF9CQVNFX0hJLCBkdW1wZXItPmlvdmEp OworCisJZ3B1X3dyaXRlKGdwdSwgUkVHX0E1WFhfQ1BfQ1JBU0hfRFVNUF9DTlRMLCAxKTsKKwor CXJldHVybiBncHVfcG9sbF90aW1lb3V0KGdwdSwgUkVHX0E1WFhfQ1BfQ1JBU0hfRFVNUF9DTlRM LCB2YWwsCisJCXZhbCAmIDB4MDQsIDEwMCwgMTAwMDApOworfQorCisvKgorICogVGhlc2UgYXJl IGEgbGlzdCBvZiB0aGUgcmVnaXN0ZXJzIHRoYXQgbmVlZCB0byBiZSByZWFkIHRocm91Z2ggdGhl IEhMU1EKKyAqIGFwZXJ0dXJlIHRocm91Z2ggdGhlIGNyYXNoZHVtcGVyLiAgVGhlc2UgYXJlIG5v dCBub21pbmFsbHkgYWNjZXNzaWJsZSBmcm9tCisgKiB0aGUgQ1BVIG9uIGEgc2VjdXJlIHBsYXRm b3JtLgorICovCitzdGF0aWMgY29uc3Qgc3RydWN0IHsKKwl1MzIgdHlwZTsKKwl1MzIgcmVnb2Zm c2V0OworCXUzMiBjb3VudDsKK30gYTV4eF9obHNxX2FwZXJ0dXJlX3JlZ3NbXSA9IHsKKwl7IDB4 MzUsIDB4ZTAwLCAweDMyIH0sICAgLyogSFNMUSBub24tY29udGV4dCAqLworCXsgMHgzMSwgMHgy MDgwLCAweDEgfSwgICAvKiBITFNRIDJEIGNvbnRleHQgMCAqLworCXsgMHgzMywgMHgyNDgwLCAw eDEgfSwgICAvKiBITFNRIDJEIGNvbnRleHQgMSAqLworCXsgMHgzMiwgMHhlNzgwLCAweDYyIH0s ICAvKiBITFNRIDNEIGNvbnRleHQgMCAqLworCXsgMHgzNCwgMHhlZjgwLCAweDYyIH0sICAvKiBI TFNRIDNEIGNvbnRleHQgMSAqLworCXsgMHgzZiwgMHgwZWMwLCAweDQwIH0sICAvKiBTUCBub24t Y29udGV4dCAqLworCXsgMHgzZCwgMHgyMDQwLCAweDEgfSwgICAvKiBTUCAyRCBjb250ZXh0IDAg Ki8KKwl7IDB4M2IsIDB4MjQ0MCwgMHgxIH0sICAgLyogU1AgMkQgY29udGV4dCAxICovCisJeyAw eDNlLCAweGU1ODAsIDB4MTcwIH0sIC8qIFNQIDNEIGNvbnRleHQgMCAqLworCXsgMHgzYywgMHhl ZDgwLCAweDE3MCB9LCAvKiBTUCAzRCBjb250ZXh0IDEgKi8KKwl7IDB4M2EsIDB4MGYwMCwgMHgx YyB9LCAgLyogVFAgbm9uLWNvbnRleHQgKi8KKwl7IDB4MzgsIDB4MjAwMCwgMHhhIH0sICAgLyog VFAgMkQgY29udGV4dCAwICovCisJeyAweDM2LCAweDI0MDAsIDB4YSB9LCAgIC8qIFRQIDJEIGNv bnRleHQgMSAqLworCXsgMHgzOSwgMHhlNzAwLCAweDgwIH0sICAvKiBUUCAzRCBjb250ZXh0IDAg Ki8KKwl7IDB4MzcsIDB4ZWYwMCwgMHg4MCB9LCAgLyogVFAgM0QgY29udGV4dCAxICovCit9Owor CitzdGF0aWMgdm9pZCBhNXh4X2dwdV9zdGF0ZV9nZXRfaGxzcV9yZWdzKHN0cnVjdCBtc21fZ3B1 ICpncHUsCisJCXN0cnVjdCBhNXh4X2dwdV9zdGF0ZSAqYTV4eF9zdGF0ZSkKK3sKKwlzdHJ1Y3Qg YTV4eF9jcmFzaGR1bXBlciBkdW1wZXIgPSB7IDAgfTsKKwl1MzIgb2Zmc2V0LCBjb3VudCA9IDA7 CisJdTY0ICpwdHI7CisJaW50IGk7CisKKwlpZiAoYTV4eF9jcmFzaGR1bXBlcl9pbml0KGdwdSwg JmR1bXBlcikpCisJCXJldHVybjsKKworCS8qIFRoZSBzY3JpcHQgd2lsbCBiZSB3cml0dGVuIGF0 IG9mZnNldCAwICovCisJcHRyID0gZHVtcGVyLnB0cjsKKworCS8qIFN0YXJ0IHdyaXRpbmcgdGhl IGRhdGEgYXQgb2Zmc2V0IDI1NmsgKi8KKwlvZmZzZXQgPSBkdW1wZXIuaW92YSArICgyNTYgKiBT Wl8xSyk7CisKKwkvKiBDb3VudCBob3cgbWFueSBhZGRpdGlvbmFsIHJlZ2lzdGVycyB0byBnZXQg ZnJvbSB0aGUgSExTUSBhcGVydHVyZSAqLworCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGE1 eHhfaGxzcV9hcGVydHVyZV9yZWdzKTsgaSsrKQorCQljb3VudCArPSBhNXh4X2hsc3FfYXBlcnR1 cmVfcmVnc1tpXS5jb3VudDsKKworCWE1eHhfc3RhdGUtPmhsc3FyZWdzID0ga2NhbGxvYyhjb3Vu dCwgc2l6ZW9mKHUzMiksIEdGUF9LRVJORUwpOworCWlmICghYTV4eF9zdGF0ZS0+aGxzcXJlZ3Mp CisJCXJldHVybjsKKworCS8qIEJ1aWxkIHRoZSBjcmFzaGR1bXAgc2NyaXB0ICovCisJZm9yIChp ID0gMDsgaSA8IEFSUkFZX1NJWkUoYTV4eF9obHNxX2FwZXJ0dXJlX3JlZ3MpOyBpKyspIHsKKwkJ dTMyIHR5cGUgPSBhNXh4X2hsc3FfYXBlcnR1cmVfcmVnc1tpXS50eXBlOworCQl1MzIgYyA9IGE1 eHhfaGxzcV9hcGVydHVyZV9yZWdzW2ldLmNvdW50OworCisJCS8qIFdyaXRlIHRoZSByZWdpc3Rl ciB0byBzZWxlY3QgdGhlIGRlc2lyZWQgYmFuayAqLworCQkqcHRyKysgPSAoKHU2NCkgdHlwZSA8 PCA4KTsKKwkJKnB0cisrID0gKCgodTY0KSBSRUdfQTVYWF9ITFNRX0RCR19SRUFEX1NFTCkgPDwg NDQpIHwKKwkJCSgxIDw8IDIxKSB8IDE7CisKKwkJKnB0cisrID0gb2Zmc2V0OworCQkqcHRyKysg PSAoKCh1NjQpIFJFR19BNVhYX0hMU1FfREJHX0FIQl9SRUFEX0FQRVJUVVJFKSA8PCA0NCkKKwkJ CXwgYzsKKworCQlvZmZzZXQgKz0gYyAqIHNpemVvZih1MzIpOworCX0KKworCS8qIFdyaXRlIHR3 byB6ZXJvcyB0byBjbG9zZSBvZmYgdGhlIHNjcmlwdCAqLworCSpwdHIrKyA9IDA7CisJKnB0cisr ID0gMDsKKworCWlmIChhNXh4X2NyYXNoZHVtcGVyX3J1bihncHUsICZkdW1wZXIpKSB7CisJCWtm cmVlKGE1eHhfc3RhdGUtPmhsc3FyZWdzKTsKKwkJYTV4eF9jcmFzaGR1bXBlcl9mcmVlKGdwdSwg JmR1bXBlcik7CisJCXJldHVybjsKKwl9CisKKwkvKiBDb3B5IHRoZSBkYXRhIGZyb20gdGhlIGNy YXNoZHVtcGVyIHRvIHRoZSBzdGF0ZSAqLworCW1lbWNweShhNXh4X3N0YXRlLT5obHNxcmVncywg ZHVtcGVyLnB0ciArICgyNTYgKiBTWl8xSyksCisJCWNvdW50ICogc2l6ZW9mKHUzMikpOworCisJ YTV4eF9jcmFzaGR1bXBlcl9mcmVlKGdwdSwgJmR1bXBlcik7Cit9CisKIHN0YXRpYyBzdHJ1Y3Qg bXNtX2dwdV9zdGF0ZSAqYTV4eF9ncHVfc3RhdGVfZ2V0KHN0cnVjdCBtc21fZ3B1ICpncHUpCiB7 Ci0Jc3RydWN0IG1zbV9ncHVfc3RhdGUgKnN0YXRlOworCXN0cnVjdCBhNXh4X2dwdV9zdGF0ZSAq YTV4eF9zdGF0ZSA9IGt6YWxsb2Moc2l6ZW9mKCphNXh4X3N0YXRlKSwKKwkJCUdGUF9LRVJORUwp OwogCi0JLyoKLQkgKiBUZW1wb3JhcmlseSBkaXNhYmxlIGhhcmR3YXJlIGNsb2NrIGdhdGluZyBi ZWZvcmUgZ29pbmcgaW50bwotCSAqIGFkcmVub19zaG93IHRvIGF2b2lkIGlzc3VlcyB3aGlsZSBy ZWFkaW5nIHRoZSByZWdpc3RlcnMKLQkgKi8KKwlpZiAoIWE1eHhfc3RhdGUpCisJCXJldHVybiBF UlJfUFRSKC1FTk9NRU0pOworCisJLyogVGVtcG9yYXJpbHkgZGlzYWJsZSBoYXJkd2FyZSBjbG9j ayBnYXRpbmcgYmVmb3JlIHJlYWRpbmcgdGhlIGh3ICovCiAJYTV4eF9zZXRfaHdjZyhncHUsIGZh bHNlKTsKIAotCXN0YXRlID0gYWRyZW5vX2dwdV9zdGF0ZV9nZXQoZ3B1KTsKKwkvKiBGaXJzdCBn ZXQgdGhlIGdlbmVyaWMgc3RhdGUgZnJvbSB0aGUgYWRyZW5vIGNvcmUgKi8KKwlhZHJlbm9fZ3B1 X3N0YXRlX2dldChncHUsICYoYTV4eF9zdGF0ZS0+YmFzZSkpOworCisJYTV4eF9zdGF0ZS0+YmFz ZS5yYmJtX3N0YXR1cyA9IGdwdV9yZWFkKGdwdSwgUkVHX0E1WFhfUkJCTV9TVEFUVVMpOwogCi0J aWYgKCFJU19FUlIoc3RhdGUpKQotCQlzdGF0ZS0+cmJibV9zdGF0dXMgPSBncHVfcmVhZChncHUs IFJFR19BNVhYX1JCQk1fU1RBVFVTKTsKKwkvKiBHZXQgdGhlIEhMU1EgcmVncyB3aXRoIHRoZSBo ZWxwIG9mIHRoZSBjcmFzaGR1bXBlciAqLworCWE1eHhfZ3B1X3N0YXRlX2dldF9obHNxX3JlZ3Mo Z3B1LCBhNXh4X3N0YXRlKTsKIAogCWE1eHhfc2V0X2h3Y2coZ3B1LCB0cnVlKTsKIAotCXJldHVy biBzdGF0ZTsKKwlyZXR1cm4gJmE1eHhfc3RhdGUtPmJhc2U7Cit9CisKK3N0YXRpYyB2b2lkIGE1 eHhfZ3B1X3N0YXRlX2Rlc3Ryb3koc3RydWN0IGtyZWYgKmtyZWYpCit7CisJc3RydWN0IG1zbV9n cHVfc3RhdGUgKnN0YXRlID0gY29udGFpbmVyX29mKGtyZWYsCisJCXN0cnVjdCBtc21fZ3B1X3N0 YXRlLCByZWYpOworCXN0cnVjdCBhNXh4X2dwdV9zdGF0ZSAqYTV4eF9zdGF0ZSA9IGNvbnRhaW5l cl9vZihzdGF0ZSwKKwkJc3RydWN0IGE1eHhfZ3B1X3N0YXRlLCBiYXNlKTsKKworCWtmcmVlKGE1 eHhfc3RhdGUtPmhsc3FyZWdzKTsKKworCWFkcmVub19ncHVfc3RhdGVfZGVzdHJveShzdGF0ZSk7 CisJa2ZyZWUoYTV4eF9zdGF0ZSk7Cit9CisKK2ludCBhNXh4X2dwdV9zdGF0ZV9wdXQoc3RydWN0 IG1zbV9ncHVfc3RhdGUgKnN0YXRlKQoreworCWlmIChJU19FUlJfT1JfTlVMTChzdGF0ZSkpCisJ CXJldHVybiAxOworCisJcmV0dXJuIGtyZWZfcHV0KCZzdGF0ZS0+cmVmLCBhNXh4X2dwdV9zdGF0 ZV9kZXN0cm95KTsKK30KKworCisjaWYgZGVmaW5lZChDT05GSUdfREVCVUdfRlMpIHx8IGRlZmlu ZWQoQ09ORklHX0RFVl9DT1JFRFVNUCkKK3ZvaWQgYTV4eF9zaG93KHN0cnVjdCBtc21fZ3B1ICpn cHUsIHN0cnVjdCBtc21fZ3B1X3N0YXRlICpzdGF0ZSwKKwkJc3RydWN0IGRybV9wcmludGVyICpw KQoreworCWludCBpLCBqOworCXUzMiBwb3MgPSAwOworCXN0cnVjdCBhNXh4X2dwdV9zdGF0ZSAq YTV4eF9zdGF0ZSA9IGNvbnRhaW5lcl9vZihzdGF0ZSwKKwkJc3RydWN0IGE1eHhfZ3B1X3N0YXRl LCBiYXNlKTsKKworCWlmIChJU19FUlJfT1JfTlVMTChzdGF0ZSkpCisJCXJldHVybjsKKworCWFk cmVub19zaG93KGdwdSwgc3RhdGUsIHApOworCisJLyogRHVtcCB0aGUgYWRkaXRpb25hbCBhNXh4 IEhMU1EgcmVnaXN0ZXJzICovCisJaWYgKCFhNXh4X3N0YXRlLT5obHNxcmVncykKKwkJcmV0dXJu OworCisJZHJtX3ByaW50ZihwLCAicmVnaXN0ZXJzLWhsc3E6XG4iKTsKKwlkcm1fcHJpbnRmKHAs ICIgIC0gW29mZnNldCwgdmFsdWVdXG4iKTsKKworCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpF KGE1eHhfaGxzcV9hcGVydHVyZV9yZWdzKTsgaSsrKSB7CisJCXUzMiBvID0gYTV4eF9obHNxX2Fw ZXJ0dXJlX3JlZ3NbaV0ucmVnb2Zmc2V0OworCQl1MzIgYyA9IGE1eHhfaGxzcV9hcGVydHVyZV9y ZWdzW2ldLmNvdW50OworCisJCWZvciAoaiA9IDA7IGogPCBjOyBqKyssIHBvcysrLCBvKyspIHsK KwkJCS8qCisJCQkgKiBUbyBrZWVwIHRoZSBjcmFzaGR1bXAgc2ltcGxlIHdlIHB1bGwgdGhlIGVu dGlyZSByYW5nZQorCQkJICogZm9yIGVhY2ggcmVnaXN0ZXIgdHlwZSBidXQgbm90IGFsbCBvZiB0 aGUgcmVnaXN0ZXJzCisJCQkgKiBpbiB0aGUgcmFuZ2UgYXJlIHZhbGlkLiBGb3J0dW5hdGVseSBp bnZhbGlkIHJlZ2lzdGVycworCQkJICogc3RpY2sgb3V0IGxpa2UgYSBzb3JlIHRodW1iIHdpdGgg YSB2YWx1ZSBvZgorCQkJICogMHhkZWFkYmVlZgorCQkJICovCisJCQlpZiAoYTV4eF9zdGF0ZS0+ aGxzcXJlZ3NbcG9zXSA9PSAweGRlYWRiZWVmKQorCQkJCWNvbnRpbnVlOworCisJCQlkcm1fcHJp bnRmKHAsICIgIC0gWzB4JTA0eCwgMHglMDh4XVxuIiwKKwkJCQlvIDw8IDIsIGE1eHhfc3RhdGUt Pmhsc3FyZWdzW3Bvc10pOworCQl9CisJfQogfQorI2VuZGlmCiAKIHN0YXRpYyBzdHJ1Y3QgbXNt X3JpbmdidWZmZXIgKmE1eHhfYWN0aXZlX3Jpbmcoc3RydWN0IG1zbV9ncHUgKmdwdSkKIHsKQEAg LTEyNDQsMTQgKzE0NTUsMTQgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhZHJlbm9fZ3B1X2Z1bmNz IGZ1bmNzID0gewogCQkuaXJxID0gYTV4eF9pcnEsCiAJCS5kZXN0cm95ID0gYTV4eF9kZXN0cm95 LAogI2lmIGRlZmluZWQoQ09ORklHX0RFQlVHX0ZTKSB8fCBkZWZpbmVkKENPTkZJR19ERVZfQ09S RURVTVApCi0JCS5zaG93ID0gYWRyZW5vX3Nob3csCisJCS5zaG93ID0gYTV4eF9zaG93LAogI2Vu ZGlmCiAjaWYgZGVmaW5lZChDT05GSUdfREVCVUdfRlMpCiAJCS5kZWJ1Z2ZzX2luaXQgPSBhNXh4 X2RlYnVnZnNfaW5pdCwKICNlbmRpZgogCQkuZ3B1X2J1c3kgPSBhNXh4X2dwdV9idXN5LAogCQku Z3B1X3N0YXRlX2dldCA9IGE1eHhfZ3B1X3N0YXRlX2dldCwKLQkJLmdwdV9zdGF0ZV9wdXQgPSBh ZHJlbm9fZ3B1X3N0YXRlX3B1dCwKKwkJLmdwdV9zdGF0ZV9wdXQgPSBhNXh4X2dwdV9zdGF0ZV9w dXQsCiAJfSwKIAkuZ2V0X3RpbWVzdGFtcCA9IGE1eHhfZ2V0X3RpbWVzdGFtcCwKIH07CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hZHJlbm9fZ3B1LmMgYi9kcml2ZXJz L2dwdS9kcm0vbXNtL2FkcmVuby9hZHJlbm9fZ3B1LmMKaW5kZXggYTY0MTRiNmQ1YzBiLi5iOTJi Y2JkZTY4OGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2FkcmVub19n cHUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hZHJlbm9fZ3B1LmMKQEAgLTM2 OSwxNiArMzY5LDExIEBAIGJvb2wgYWRyZW5vX2lkbGUoc3RydWN0IG1zbV9ncHUgKmdwdSwgc3Ry dWN0IG1zbV9yaW5nYnVmZmVyICpyaW5nKQogCXJldHVybiBmYWxzZTsKIH0KIAotc3RydWN0IG1z bV9ncHVfc3RhdGUgKmFkcmVub19ncHVfc3RhdGVfZ2V0KHN0cnVjdCBtc21fZ3B1ICpncHUpCitp bnQgYWRyZW5vX2dwdV9zdGF0ZV9nZXQoc3RydWN0IG1zbV9ncHUgKmdwdSwgc3RydWN0IG1zbV9n cHVfc3RhdGUgKnN0YXRlKQogewogCXN0cnVjdCBhZHJlbm9fZ3B1ICphZHJlbm9fZ3B1ID0gdG9f YWRyZW5vX2dwdShncHUpOwotCXN0cnVjdCBtc21fZ3B1X3N0YXRlICpzdGF0ZTsKIAlpbnQgaSwg Y291bnQgPSAwOwogCi0Jc3RhdGUgPSBremFsbG9jKHNpemVvZigqc3RhdGUpLCBHRlBfS0VSTkVM KTsKLQlpZiAoIXN0YXRlKQotCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKLQogCWtyZWZfaW5p dCgmc3RhdGUtPnJlZik7CiAKIAlkb19nZXR0aW1lb2ZkYXkoJnN0YXRlLT50aW1lKTsKQEAgLTQz MywxNCArNDI4LDEyIEBAIHN0cnVjdCBtc21fZ3B1X3N0YXRlICphZHJlbm9fZ3B1X3N0YXRlX2dl dChzdHJ1Y3QgbXNtX2dwdSAqZ3B1KQogCQlzdGF0ZS0+bnJfcmVnaXN0ZXJzID0gY291bnQ7CiAJ fQogCi0JcmV0dXJuIHN0YXRlOworCXJldHVybiAwOwogfQogCi1zdGF0aWMgdm9pZCBhZHJlbm9f Z3B1X3N0YXRlX2Rlc3Ryb3koc3RydWN0IGtyZWYgKmtyZWYpCit2b2lkIGFkcmVub19ncHVfc3Rh dGVfZGVzdHJveShzdHJ1Y3QgbXNtX2dwdV9zdGF0ZSAqc3RhdGUpCiB7CiAJaW50IGk7Ci0Jc3Ry dWN0IG1zbV9ncHVfc3RhdGUgKnN0YXRlID0gY29udGFpbmVyX29mKGtyZWYsCi0JCXN0cnVjdCBt c21fZ3B1X3N0YXRlLCByZWYpOwogCiAJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoc3RhdGUt PnJpbmcpOyBpKyspCiAJCWtmcmVlKHN0YXRlLT5yaW5nW2ldLmRhdGEpOwpAQCAtNDQ4LDYgKzQ0 MSwxNCBAQCBzdGF0aWMgdm9pZCBhZHJlbm9fZ3B1X3N0YXRlX2Rlc3Ryb3koc3RydWN0IGtyZWYg KmtyZWYpCiAJa2ZyZWUoc3RhdGUtPmNvbW0pOwogCWtmcmVlKHN0YXRlLT5jbWQpOwogCWtmcmVl KHN0YXRlLT5yZWdpc3RlcnMpOworfQorCitzdGF0aWMgdm9pZCBhZHJlbm9fZ3B1X3N0YXRlX2ty ZWZfZGVzdHJveShzdHJ1Y3Qga3JlZiAqa3JlZikKK3sKKwlzdHJ1Y3QgbXNtX2dwdV9zdGF0ZSAq c3RhdGUgPSBjb250YWluZXJfb2Yoa3JlZiwKKwkJc3RydWN0IG1zbV9ncHVfc3RhdGUsIHJlZik7 CisKKwlhZHJlbm9fZ3B1X3N0YXRlX2Rlc3Ryb3koc3RhdGUpOwogCWtmcmVlKHN0YXRlKTsKIH0K IApAQCAtNDU2LDcgKzQ1Nyw3IEBAIGludCBhZHJlbm9fZ3B1X3N0YXRlX3B1dChzdHJ1Y3QgbXNt X2dwdV9zdGF0ZSAqc3RhdGUpCiAJaWYgKElTX0VSUl9PUl9OVUxMKHN0YXRlKSkKIAkJcmV0dXJu IDE7CiAKLQlyZXR1cm4ga3JlZl9wdXQoJnN0YXRlLT5yZWYsIGFkcmVub19ncHVfc3RhdGVfZGVz dHJveSk7CisJcmV0dXJuIGtyZWZfcHV0KCZzdGF0ZS0+cmVmLCBhZHJlbm9fZ3B1X3N0YXRlX2ty ZWZfZGVzdHJveSk7CiB9CiAKICNpZiBkZWZpbmVkKENPTkZJR19ERUJVR19GUykgfHwgZGVmaW5l ZChDT05GSUdfREVWX0NPUkVEVU1QKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9h ZHJlbm8vYWRyZW5vX2dwdS5oIGIvZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYWRyZW5vX2dw dS5oCmluZGV4IDA3N2JmMTE0OWMwYi4uOTQyZDY5NTYzMDkwIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vbXNtL2FkcmVuby9hZHJlbm9fZ3B1LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL21z bS9hZHJlbm8vYWRyZW5vX2dwdS5oCkBAIC0yMjgsNyArMjI4LDkgQEAgaW50IGFkcmVub19ncHVf aW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZHJtLCBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2 LAogCQlpbnQgbnJfcmluZ3MpOwogdm9pZCBhZHJlbm9fZ3B1X2NsZWFudXAoc3RydWN0IGFkcmVu b19ncHUgKmdwdSk7CiAKLXN0cnVjdCBtc21fZ3B1X3N0YXRlICphZHJlbm9fZ3B1X3N0YXRlX2dl dChzdHJ1Y3QgbXNtX2dwdSAqZ3B1KTsKK3ZvaWQgYWRyZW5vX2dwdV9zdGF0ZV9kZXN0cm95KHN0 cnVjdCBtc21fZ3B1X3N0YXRlICpzdGF0ZSk7CisKK2ludCBhZHJlbm9fZ3B1X3N0YXRlX2dldChz dHJ1Y3QgbXNtX2dwdSAqZ3B1LCBzdHJ1Y3QgbXNtX2dwdV9zdGF0ZSAqc3RhdGUpOwogaW50IGFk cmVub19ncHVfc3RhdGVfcHV0KHN0cnVjdCBtc21fZ3B1X3N0YXRlICpzdGF0ZSk7CiAKIC8qIHJp bmdidWZmZXIgaGVscGVycyAodGhlIHBhcnRzIHRoYXQgYXJlIGFkcmVubyBzcGVjaWZpYykgKi8K LS0gCjIuMTYuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KRnJlZWRyZW5vIG1haWxpbmcgbGlzdApGcmVlZHJlbm9AbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZnJlZWRyZW5v Cg==