From mboxrd@z Thu Jan 1 00:00:00 1970 From: Archit Taneja Subject: [PATCH v2 4/6] drm/msm/mdp5: Create single encoder per interface (INTF) Date: Tue, 17 Jan 2017 09:36:28 +0530 Message-ID: <20170117040630.5299-5-architt@codeaurora.org> References: <1482141850-23393-1-git-send-email-architt@codeaurora.org> <20170117040630.5299-1-architt@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170117040630.5299-1-architt@codeaurora.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: robdclark@gmail.com Cc: linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org List-Id: linux-arm-msm@vger.kernel.org Rm9yIHRoZSBEU0kgaW50ZXJmYWNlcywgdGhlIG1kcDVfa21zIGNvcmUgY3JlYXRlcyAyIGVuY29k ZXJzIGZvciB2aWRlbwphbmQgY29tbWFuZCBtb2Rlcy4KCkNyZWF0ZSBvbmx5IGEgc2luZ2xlIGVu Y29kZXIgcGVyIGludGVyZmFjZS4gV2hlbiBjcmVhdGluZyB0aGUgZW5jb2Rlciwgc2V0CnRoZSBp bnRlcmZhY2UgdHlwZSB0byBNRFA1X0lOVEZfTU9ERV9OT05FLiBJdCdzIHRoZSBicmlkZ2UgKERT SS9IRE1JL2VEUCkKZHJpdmVyJ3MgcmVzcG9uc2liaWxpdHkgdG8gc2V0IGEgZGlmZmVyZW50IGlu dGVyZmFjZSB0eXBlLiBJdCBjYW4gdXNlIHRoZQp0aGUga21zIGZ1bmMgb3Agc2V0X2VuY29kZXJf bW9kZSB0byBjaGFuZ2UgdGhlIG1vZGUgb2Ygb3BlcmF0aW9uLCB3aGljaAppbiB0dXJuIHdvdWxk IGNvbmZpZ3VyZSB0aGUgaW50ZXJmYWNlIHR5cGUgZm9yIHRoZSBJTlRGLgoKSW4gbWRwNV9jbWRf ZW5jb2Rlci5jLCB3ZSByZW1vdmUgdGhlIHJlZHVuZGFudCBjb2RlLCBhbmQgbWFrZSB0aGUgY29t bW1hbmQKbW9kZSBmdW5jcyBhcyBoZWxwZXJzIHRoYXQgYXJlIHVzZWQgaW4gbWRwNV9lbmNvZGVy LmMKClNpZ25lZC1vZmYtYnk6IEFyY2hpdCBUYW5lamEgPGFyY2hpdHRAY29kZWF1cm9yYS5vcmc+ Ci0tLQogZHJpdmVycy9ncHUvZHJtL21zbS9tZHAvbWRwNS9tZHA1X2NtZF9lbmNvZGVyLmMgfCAx MzUgKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA1 L21kcDVfZW5jb2Rlci5jICAgICB8ICAzNSArKystLS0KIGRyaXZlcnMvZ3B1L2RybS9tc20vbWRw L21kcDUvbWRwNV9rbXMuYyAgICAgICAgIHwgIDIwICsrLS0KIGRyaXZlcnMvZ3B1L2RybS9tc20v bWRwL21kcDUvbWRwNV9rbXMuaCAgICAgICAgIHwgIDMyICsrKystLQogNCBmaWxlcyBjaGFuZ2Vk LCA2NiBpbnNlcnRpb25zKCspLCAxNTYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL21zbS9tZHAvbWRwNS9tZHA1X2NtZF9lbmNvZGVyLmMgYi9kcml2ZXJzL2dwdS9k cm0vbXNtL21kcC9tZHA1L21kcDVfY21kX2VuY29kZXIuYwppbmRleCBjNjI3YWI2ZDAwNjEuLmRm MWM4YWRlYzNmMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9tZHAvbWRwNS9tZHA1 X2NtZF9lbmNvZGVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tZHAvbWRwNS9tZHA1X2Nt ZF9lbmNvZGVyLmMKQEAgLTE2LDE2ICsxNiw2IEBACiAjaW5jbHVkZSAiZHJtX2NydGMuaCIKICNp bmNsdWRlICJkcm1fY3J0Y19oZWxwZXIuaCIKIAotc3RydWN0IG1kcDVfY21kX2VuY29kZXIgewot CXN0cnVjdCBkcm1fZW5jb2RlciBiYXNlOwotCXN0cnVjdCBtZHA1X2ludGVyZmFjZSBpbnRmOwot CWJvb2wgZW5hYmxlZDsKLQl1aW50MzJfdCBic2M7Ci0KLQlzdHJ1Y3QgbWRwNV9jdGwgKmN0bDsK LX07Ci0jZGVmaW5lIHRvX21kcDVfY21kX2VuY29kZXIoeCkgY29udGFpbmVyX29mKHgsIHN0cnVj dCBtZHA1X2NtZF9lbmNvZGVyLCBiYXNlKQotCiBzdGF0aWMgc3RydWN0IG1kcDVfa21zICpnZXRf a21zKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKIHsKIAlzdHJ1Y3QgbXNtX2RybV9wcml2 YXRlICpwcml2ID0gZW5jb2Rlci0+ZGV2LT5kZXZfcHJpdmF0ZTsKQEAgLTM2LDQ3ICsyNiw4IEBA IHN0YXRpYyBzdHJ1Y3QgbWRwNV9rbXMgKmdldF9rbXMoc3RydWN0IGRybV9lbmNvZGVyICplbmNv ZGVyKQogI2luY2x1ZGUgPG1hY2gvYm9hcmQuaD4KICNpbmNsdWRlIDxsaW51eC9tc20tYnVzLmg+ CiAjaW5jbHVkZSA8bGludXgvbXNtLWJ1cy1ib2FyZC5oPgotI2RlZmluZSBNRFBfQlVTX1ZFQ1RP Ul9FTlRSWShhYl92YWwsIGliX3ZhbCkJCVwKLQl7CQkJCQkJXAotCQkuc3JjID0gTVNNX0JVU19N QVNURVJfTURQX1BPUlQwLAlcCi0JCS5kc3QgPSBNU01fQlVTX1NMQVZFX0VCSV9DSDAsCQlcCi0J CS5hYiA9IChhYl92YWwpLAkJCQlcCi0JCS5pYiA9IChpYl92YWwpLAkJCQlcCi0JfQotCi1zdGF0 aWMgc3RydWN0IG1zbV9idXNfdmVjdG9ycyBtZHBfYnVzX3ZlY3RvcnNbXSA9IHsKLQlNRFBfQlVT X1ZFQ1RPUl9FTlRSWSgwLCAwKSwKLQlNRFBfQlVTX1ZFQ1RPUl9FTlRSWSgyMDAwMDAwMDAwLCAy MDAwMDAwMDAwKSwKLX07Ci1zdGF0aWMgc3RydWN0IG1zbV9idXNfcGF0aHMgbWRwX2J1c191c2Vj YXNlc1tdID0geyB7Ci0JCS5udW1fcGF0aHMgPSAxLAotCQkudmVjdG9ycyA9ICZtZHBfYnVzX3Zl Y3RvcnNbMF0sCi19LCB7Ci0JCS5udW1fcGF0aHMgPSAxLAotCQkudmVjdG9ycyA9ICZtZHBfYnVz X3ZlY3RvcnNbMV0sCi19IH07Ci1zdGF0aWMgc3RydWN0IG1zbV9idXNfc2NhbGVfcGRhdGEgbWRw X2J1c19zY2FsZV90YWJsZSA9IHsKLQkudXNlY2FzZSA9IG1kcF9idXNfdXNlY2FzZXMsCi0JLm51 bV91c2VjYXNlcyA9IEFSUkFZX1NJWkUobWRwX2J1c191c2VjYXNlcyksCi0JLm5hbWUgPSAibWRz c19tZHAiLAotfTsKLQotc3RhdGljIHZvaWQgYnNfaW5pdChzdHJ1Y3QgbWRwNV9jbWRfZW5jb2Rl ciAqbWRwNV9jbWRfZW5jKQotewotCW1kcDVfY21kX2VuYy0+YnNjID0gbXNtX2J1c19zY2FsZV9y ZWdpc3Rlcl9jbGllbnQoCi0JCQkmbWRwX2J1c19zY2FsZV90YWJsZSk7Ci0JREJHKCJidXMgc2Nh bGUgY2xpZW50OiAlMDh4IiwgbWRwNV9jbWRfZW5jLT5ic2MpOwotfQotCi1zdGF0aWMgdm9pZCBi c19maW5pKHN0cnVjdCBtZHA1X2NtZF9lbmNvZGVyICptZHA1X2NtZF9lbmMpCi17Ci0JaWYgKG1k cDVfY21kX2VuYy0+YnNjKSB7Ci0JCW1zbV9idXNfc2NhbGVfdW5yZWdpc3Rlcl9jbGllbnQobWRw NV9jbWRfZW5jLT5ic2MpOwotCQltZHA1X2NtZF9lbmMtPmJzYyA9IDA7Ci0JfQotfQogCi1zdGF0 aWMgdm9pZCBic19zZXQoc3RydWN0IG1kcDVfY21kX2VuY29kZXIgKm1kcDVfY21kX2VuYywgaW50 IGlkeCkKK3N0YXRpYyB2b2lkIGJzX3NldChzdHJ1Y3QgbWRwNV9lbmNvZGVyICptZHA1X2NtZF9l bmMsIGludCBpZHgpCiB7CiAJaWYgKG1kcDVfY21kX2VuYy0+YnNjKSB7CiAJCURCRygic2V0IGJ1 cyBzY2FsaW5nOiAlZCIsIGlkeCk7CkBAIC04OSwxNCArNDAsMTIgQEAgc3RhdGljIHZvaWQgYnNf c2V0KHN0cnVjdCBtZHA1X2NtZF9lbmNvZGVyICptZHA1X2NtZF9lbmMsIGludCBpZHgpCiAJfQog fQogI2Vsc2UKLXN0YXRpYyB2b2lkIGJzX2luaXQoc3RydWN0IG1kcDVfY21kX2VuY29kZXIgKm1k cDVfY21kX2VuYykge30KLXN0YXRpYyB2b2lkIGJzX2Zpbmkoc3RydWN0IG1kcDVfY21kX2VuY29k ZXIgKm1kcDVfY21kX2VuYykge30KLXN0YXRpYyB2b2lkIGJzX3NldChzdHJ1Y3QgbWRwNV9jbWRf ZW5jb2RlciAqbWRwNV9jbWRfZW5jLCBpbnQgaWR4KSB7fQorc3RhdGljIHZvaWQgYnNfc2V0KHN0 cnVjdCBtZHA1X2VuY29kZXIgKm1kcDVfY21kX2VuYywgaW50IGlkeCkge30KICNlbmRpZgogCiAj ZGVmaW5lIFZTWU5DX0NMS19SQVRFIDE5MjAwMDAwCiBzdGF0aWMgaW50IHBpbmdwb25nX3RlYXJj aGVja19zZXR1cChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCi0JCQkJCXN0cnVjdCBkcm1f ZGlzcGxheV9tb2RlICptb2RlKQorCQkJCSAgICBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9k ZSkKIHsKIAlzdHJ1Y3QgbWRwNV9rbXMgKm1kcDVfa21zID0gZ2V0X2ttcyhlbmNvZGVyKTsKIAlz dHJ1Y3QgZGV2aWNlICpkZXYgPSBlbmNvZGVyLT5kZXYtPmRldjsKQEAgLTE3NiwyMyArMTI1LDEx IEBAIHN0YXRpYyB2b2lkIHBpbmdwb25nX3RlYXJjaGVja19kaXNhYmxlKHN0cnVjdCBkcm1fZW5j b2RlciAqZW5jb2RlcikKIAljbGtfZGlzYWJsZV91bnByZXBhcmUobWRwNV9rbXMtPnZzeW5jX2Ns ayk7CiB9CiAKLXN0YXRpYyB2b2lkIG1kcDVfY21kX2VuY29kZXJfZGVzdHJveShzdHJ1Y3QgZHJt X2VuY29kZXIgKmVuY29kZXIpCi17Ci0Jc3RydWN0IG1kcDVfY21kX2VuY29kZXIgKm1kcDVfY21k X2VuYyA9IHRvX21kcDVfY21kX2VuY29kZXIoZW5jb2Rlcik7Ci0JYnNfZmluaShtZHA1X2NtZF9l bmMpOwotCWRybV9lbmNvZGVyX2NsZWFudXAoZW5jb2Rlcik7Ci0Ja2ZyZWUobWRwNV9jbWRfZW5j KTsKLX0KLQotc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZW5jb2Rlcl9mdW5jcyBtZHA1X2NtZF9l bmNvZGVyX2Z1bmNzID0gewotCS5kZXN0cm95ID0gbWRwNV9jbWRfZW5jb2Rlcl9kZXN0cm95LAot fTsKLQotc3RhdGljIHZvaWQgbWRwNV9jbWRfZW5jb2Rlcl9tb2RlX3NldChzdHJ1Y3QgZHJtX2Vu Y29kZXIgKmVuY29kZXIsCi0JCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlLAotCQlzdHJ1 Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSkKK3ZvaWQgbWRwNV9jbWRfZW5jb2Rl cl9tb2RlX3NldChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCisJCQkgICAgICAgc3RydWN0 IGRybV9kaXNwbGF5X21vZGUgKm1vZGUsCisJCQkgICAgICAgc3RydWN0IGRybV9kaXNwbGF5X21v ZGUgKmFkanVzdGVkX21vZGUpCiB7Ci0Jc3RydWN0IG1kcDVfY21kX2VuY29kZXIgKm1kcDVfY21k X2VuYyA9IHRvX21kcDVfY21kX2VuY29kZXIoZW5jb2Rlcik7CisJc3RydWN0IG1kcDVfZW5jb2Rl ciAqbWRwNV9jbWRfZW5jID0gdG9fbWRwNV9lbmNvZGVyKGVuY29kZXIpOwogCiAJbW9kZSA9IGFk anVzdGVkX21vZGU7CiAKQEAgLTIwOSw5ICsxNDYsOSBAQCBzdGF0aWMgdm9pZCBtZHA1X2NtZF9l bmNvZGVyX21vZGVfc2V0KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKIAkJCQltZHA1X2Nt ZF9lbmMtPmN0bCk7CiB9CiAKLXN0YXRpYyB2b2lkIG1kcDVfY21kX2VuY29kZXJfZGlzYWJsZShz dHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCit2b2lkIG1kcDVfY21kX2VuY29kZXJfZGlzYWJs ZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCiB7Ci0Jc3RydWN0IG1kcDVfY21kX2VuY29k ZXIgKm1kcDVfY21kX2VuYyA9IHRvX21kcDVfY21kX2VuY29kZXIoZW5jb2Rlcik7CisJc3RydWN0 IG1kcDVfZW5jb2RlciAqbWRwNV9jbWRfZW5jID0gdG9fbWRwNV9lbmNvZGVyKGVuY29kZXIpOwog CXN0cnVjdCBtZHA1X2N0bCAqY3RsID0gbWRwNV9jbWRfZW5jLT5jdGw7CiAJc3RydWN0IG1kcDVf aW50ZXJmYWNlICppbnRmID0gJm1kcDVfY21kX2VuYy0+aW50ZjsKIApAQCAtMjI4LDkgKzE2NSw5 IEBAIHN0YXRpYyB2b2lkIG1kcDVfY21kX2VuY29kZXJfZGlzYWJsZShzdHJ1Y3QgZHJtX2VuY29k ZXIgKmVuY29kZXIpCiAJbWRwNV9jbWRfZW5jLT5lbmFibGVkID0gZmFsc2U7CiB9CiAKLXN0YXRp YyB2b2lkIG1kcDVfY21kX2VuY29kZXJfZW5hYmxlKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rl cikKK3ZvaWQgbWRwNV9jbWRfZW5jb2Rlcl9lbmFibGUoc3RydWN0IGRybV9lbmNvZGVyICplbmNv ZGVyKQogewotCXN0cnVjdCBtZHA1X2NtZF9lbmNvZGVyICptZHA1X2NtZF9lbmMgPSB0b19tZHA1 X2NtZF9lbmNvZGVyKGVuY29kZXIpOworCXN0cnVjdCBtZHA1X2VuY29kZXIgKm1kcDVfY21kX2Vu YyA9IHRvX21kcDVfZW5jb2RlcihlbmNvZGVyKTsKIAlzdHJ1Y3QgbWRwNV9jdGwgKmN0bCA9IG1k cDVfY21kX2VuYy0+Y3RsOwogCXN0cnVjdCBtZHA1X2ludGVyZmFjZSAqaW50ZiA9ICZtZHA1X2Nt ZF9lbmMtPmludGY7CiAKQEAgLTI0OCwxNiArMTg1LDEwIEBAIHN0YXRpYyB2b2lkIG1kcDVfY21k X2VuY29kZXJfZW5hYmxlKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKIAltZHA1X2NtZF9l bmMtPmVuYWJsZWQgPSB0cnVlOwogfQogCi1zdGF0aWMgY29uc3Qgc3RydWN0IGRybV9lbmNvZGVy X2hlbHBlcl9mdW5jcyBtZHA1X2NtZF9lbmNvZGVyX2hlbHBlcl9mdW5jcyA9IHsKLQkubW9kZV9z ZXQgPSBtZHA1X2NtZF9lbmNvZGVyX21vZGVfc2V0LAotCS5kaXNhYmxlID0gbWRwNV9jbWRfZW5j b2Rlcl9kaXNhYmxlLAotCS5lbmFibGUgPSBtZHA1X2NtZF9lbmNvZGVyX2VuYWJsZSwKLX07Ci0K IGludCBtZHA1X2NtZF9lbmNvZGVyX3NldF9zcGxpdF9kaXNwbGF5KHN0cnVjdCBkcm1fZW5jb2Rl ciAqZW5jb2RlciwKLQkJCQkJc3RydWN0IGRybV9lbmNvZGVyICpzbGF2ZV9lbmNvZGVyKQorCQkJ CSAgICAgICBzdHJ1Y3QgZHJtX2VuY29kZXIgKnNsYXZlX2VuY29kZXIpCiB7Ci0Jc3RydWN0IG1k cDVfY21kX2VuY29kZXIgKm1kcDVfY21kX2VuYyA9IHRvX21kcDVfY21kX2VuY29kZXIoZW5jb2Rl cik7CisJc3RydWN0IG1kcDVfZW5jb2RlciAqbWRwNV9jbWRfZW5jID0gdG9fbWRwNV9lbmNvZGVy KGVuY29kZXIpOwogCXN0cnVjdCBtZHA1X2ttcyAqbWRwNV9rbXM7CiAJaW50IGludGZfbnVtOwog CXUzMiBkYXRhID0gMDsKQEAgLTI5Miw0MyArMjIzLDMgQEAgaW50IG1kcDVfY21kX2VuY29kZXJf c2V0X3NwbGl0X2Rpc3BsYXkoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAogCiAJcmV0dXJu IDA7CiB9Ci0KLS8qIGluaXRpYWxpemUgY29tbWFuZCBtb2RlIGVuY29kZXIgKi8KLXN0cnVjdCBk cm1fZW5jb2RlciAqbWRwNV9jbWRfZW5jb2Rlcl9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs Ci0JCQlzdHJ1Y3QgbWRwNV9pbnRlcmZhY2UgKmludGYsIHN0cnVjdCBtZHA1X2N0bCAqY3RsKQot ewotCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciA9IE5VTEw7Ci0Jc3RydWN0IG1kcDVfY21k X2VuY29kZXIgKm1kcDVfY21kX2VuYzsKLQlpbnQgcmV0OwotCi0JaWYgKFdBUk5fT04oKGludGYt PnR5cGUgIT0gSU5URl9EU0kpICYmCi0JCShpbnRmLT5tb2RlICE9IE1EUDVfSU5URl9EU0lfTU9E RV9DT01NQU5EKSkpIHsKLQkJcmV0ID0gLUVJTlZBTDsKLQkJZ290byBmYWlsOwotCX0KLQotCW1k cDVfY21kX2VuYyA9IGt6YWxsb2Moc2l6ZW9mKCptZHA1X2NtZF9lbmMpLCBHRlBfS0VSTkVMKTsK LQlpZiAoIW1kcDVfY21kX2VuYykgewotCQlyZXQgPSAtRU5PTUVNOwotCQlnb3RvIGZhaWw7Ci0J fQotCi0JbWVtY3B5KCZtZHA1X2NtZF9lbmMtPmludGYsIGludGYsIHNpemVvZihtZHA1X2NtZF9l bmMtPmludGYpKTsKLQllbmNvZGVyID0gJm1kcDVfY21kX2VuYy0+YmFzZTsKLQltZHA1X2NtZF9l bmMtPmN0bCA9IGN0bDsKLQotCWRybV9lbmNvZGVyX2luaXQoZGV2LCBlbmNvZGVyLCAmbWRwNV9j bWRfZW5jb2Rlcl9mdW5jcywKLQkJCURSTV9NT0RFX0VOQ09ERVJfRFNJLCBOVUxMKTsKLQotCWRy bV9lbmNvZGVyX2hlbHBlcl9hZGQoZW5jb2RlciwgJm1kcDVfY21kX2VuY29kZXJfaGVscGVyX2Z1 bmNzKTsKLQotCWJzX2luaXQobWRwNV9jbWRfZW5jKTsKLQotCXJldHVybiBlbmNvZGVyOwotCi1m YWlsOgotCWlmIChlbmNvZGVyKQotCQltZHA1X2NtZF9lbmNvZGVyX2Rlc3Ryb3koZW5jb2Rlcik7 Ci0KLQlyZXR1cm4gRVJSX1BUUihyZXQpOwotfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L21zbS9tZHAvbWRwNS9tZHA1X2VuY29kZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21k cDUvbWRwNV9lbmNvZGVyLmMKaW5kZXggNjNmNDEzNWM5YjVlLi44MGZhNDgyYWU4ZWQgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDUvbWRwNV9lbmNvZGVyLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL21zbS9tZHAvbWRwNS9tZHA1X2VuY29kZXIuYwpAQCAtMjEsMTcgKzIx LDYgQEAKICNpbmNsdWRlICJkcm1fY3J0Yy5oIgogI2luY2x1ZGUgImRybV9jcnRjX2hlbHBlci5o IgogCi1zdHJ1Y3QgbWRwNV9lbmNvZGVyIHsKLQlzdHJ1Y3QgZHJtX2VuY29kZXIgYmFzZTsKLQlz dHJ1Y3QgbWRwNV9pbnRlcmZhY2UgaW50ZjsKLQlzcGlubG9ja190IGludGZfbG9jazsJLyogcHJv dGVjdCBSRUdfTURQNV9JTlRGXyogcmVnaXN0ZXJzICovCi0JYm9vbCBlbmFibGVkOwotCXVpbnQz Ml90IGJzYzsKLQotCXN0cnVjdCBtZHA1X2N0bCAqY3RsOwotfTsKLSNkZWZpbmUgdG9fbWRwNV9l bmNvZGVyKHgpIGNvbnRhaW5lcl9vZih4LCBzdHJ1Y3QgbWRwNV9lbmNvZGVyLCBiYXNlKQotCiBz dGF0aWMgc3RydWN0IG1kcDVfa21zICpnZXRfa21zKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rl cikKIHsKIAlzdHJ1Y3QgbXNtX2RybV9wcml2YXRlICpwcml2ID0gZW5jb2Rlci0+ZGV2LT5kZXZf cHJpdmF0ZTsKQEAgLTI4MywxNyArMjcyLDM1IEBAIHN0YXRpYyB2b2lkIG1kcDVfZW5jb2Rlcl9t b2RlX3NldChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCiAJCQkJICBzdHJ1Y3QgZHJtX2Rp c3BsYXlfbW9kZSAqbW9kZSwKIAkJCQkgIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3Rl ZF9tb2RlKQogewotCW1kcDVfdmlkX2VuY29kZXJfbW9kZV9zZXQoZW5jb2RlciwgbW9kZSwgYWRq dXN0ZWRfbW9kZSk7CisJc3RydWN0IG1kcDVfZW5jb2RlciAqbWRwNV9lbmNvZGVyID0gdG9fbWRw NV9lbmNvZGVyKGVuY29kZXIpOworCXN0cnVjdCBtZHA1X2ludGVyZmFjZSAqaW50ZiA9ICZtZHA1 X2VuY29kZXItPmludGY7CisKKwlpZiAoaW50Zi0+bW9kZSA9PSBNRFA1X0lOVEZfRFNJX01PREVf Q09NTUFORCkKKwkJbWRwNV9jbWRfZW5jb2Rlcl9tb2RlX3NldChlbmNvZGVyLCBtb2RlLCBhZGp1 c3RlZF9tb2RlKTsKKwllbHNlCisJCW1kcDVfdmlkX2VuY29kZXJfbW9kZV9zZXQoZW5jb2Rlciwg bW9kZSwgYWRqdXN0ZWRfbW9kZSk7CiB9CiAKIHN0YXRpYyB2b2lkIG1kcDVfZW5jb2Rlcl9kaXNh YmxlKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKIHsKLQltZHA1X3ZpZF9lbmNvZGVyX2Rp c2FibGUoZW5jb2Rlcik7CisJc3RydWN0IG1kcDVfZW5jb2RlciAqbWRwNV9lbmNvZGVyID0gdG9f bWRwNV9lbmNvZGVyKGVuY29kZXIpOworCXN0cnVjdCBtZHA1X2ludGVyZmFjZSAqaW50ZiA9ICZt ZHA1X2VuY29kZXItPmludGY7CisKKwlpZiAoaW50Zi0+bW9kZSA9PSBNRFA1X0lOVEZfRFNJX01P REVfQ09NTUFORCkKKwkJbWRwNV9jbWRfZW5jb2Rlcl9kaXNhYmxlKGVuY29kZXIpOworCWVsc2UK KwkJbWRwNV92aWRfZW5jb2Rlcl9kaXNhYmxlKGVuY29kZXIpOwogfQogCiBzdGF0aWMgdm9pZCBt ZHA1X2VuY29kZXJfZW5hYmxlKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKIHsKLQltZHA1 X3ZpZF9lbmNvZGVyX2VuYWJsZShlbmNvZGVyKTsKKwlzdHJ1Y3QgbWRwNV9lbmNvZGVyICptZHA1 X2VuY29kZXIgPSB0b19tZHA1X2VuY29kZXIoZW5jb2Rlcik7CisJc3RydWN0IG1kcDVfaW50ZXJm YWNlICppbnRmID0gJm1kcDVfZW5jb2Rlci0+aW50ZjsKKworCWlmIChpbnRmLT5tb2RlID09IE1E UDVfSU5URl9EU0lfTU9ERV9DT01NQU5EKQorCQltZHA1X2NtZF9lbmNvZGVyX2Rpc2FibGUoZW5j b2Rlcik7CisJZWxzZQorCQltZHA1X3ZpZF9lbmNvZGVyX2VuYWJsZShlbmNvZGVyKTsKIH0KIAog c3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZW5jb2Rlcl9oZWxwZXJfZnVuY3MgbWRwNV9lbmNvZGVy X2hlbHBlcl9mdW5jcyA9IHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21k cDUvbWRwNV9rbXMuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDUvbWRwNV9rbXMuYwpp bmRleCBiODVhZjBmMWM3OWMuLjk3OTRjYWQxMzFjZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL21zbS9tZHAvbWRwNS9tZHA1X2ttcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRw L21kcDUvbWRwNV9rbXMuYwpAQCAtMjc2LDcgKzI3Niw3IEBAIGludCBtZHA1X2VuYWJsZShzdHJ1 Y3QgbWRwNV9rbXMgKm1kcDVfa21zKQogCiBzdGF0aWMgc3RydWN0IGRybV9lbmNvZGVyICpjb25z dHJ1Y3RfZW5jb2RlcihzdHJ1Y3QgbWRwNV9rbXMgKm1kcDVfa21zLAogCQllbnVtIG1kcDVfaW50 Zl90eXBlIGludGZfdHlwZSwgaW50IGludGZfbnVtLAotCQllbnVtIG1kcDVfaW50Zl9tb2RlIGlu dGZfbW9kZSwgc3RydWN0IG1kcDVfY3RsICpjdGwpCisJCXN0cnVjdCBtZHA1X2N0bCAqY3RsKQog ewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBtZHA1X2ttcy0+ZGV2OwogCXN0cnVjdCBtc21f ZHJtX3ByaXZhdGUgKnByaXYgPSBkZXYtPmRldl9wcml2YXRlOwpAQCAtMjg0LDE1ICsyODQsMTAg QEAgc3RhdGljIHN0cnVjdCBkcm1fZW5jb2RlciAqY29uc3RydWN0X2VuY29kZXIoc3RydWN0IG1k cDVfa21zICptZHA1X2ttcywKIAlzdHJ1Y3QgbWRwNV9pbnRlcmZhY2UgaW50ZiA9IHsKIAkJCS5u dW0JPSBpbnRmX251bSwKIAkJCS50eXBlCT0gaW50Zl90eXBlLAotCQkJLm1vZGUJPSBpbnRmX21v ZGUsCisJCQkubW9kZQk9IE1EUDVfSU5URl9NT0RFX05PTkUsCiAJfTsKIAotCWlmICgoaW50Zl90 eXBlID09IElOVEZfRFNJKSAmJgotCQkoaW50Zl9tb2RlID09IE1EUDVfSU5URl9EU0lfTU9ERV9D T01NQU5EKSkKLQkJZW5jb2RlciA9IG1kcDVfY21kX2VuY29kZXJfaW5pdChkZXYsICZpbnRmLCBj dGwpOwotCWVsc2UKLQkJZW5jb2RlciA9IG1kcDVfZW5jb2Rlcl9pbml0KGRldiwgJmludGYsIGN0 bCk7Ci0KKwllbmNvZGVyID0gbWRwNV9lbmNvZGVyX2luaXQoZGV2LCAmaW50ZiwgY3RsKTsKIAlp ZiAoSVNfRVJSKGVuY29kZXIpKSB7CiAJCWRldl9lcnIoZGV2LT5kZXYsICJmYWlsZWQgdG8gY29u c3RydWN0IGVuY29kZXJcbiIpOwogCQlyZXR1cm4gZW5jb2RlcjsKQEAgLTM0Nyw4ICszNDIsNyBA QCBzdGF0aWMgaW50IG1vZGVzZXRfaW5pdF9pbnRmKHN0cnVjdCBtZHA1X2ttcyAqbWRwNV9rbXMs IGludCBpbnRmX251bSkKIAkJCWJyZWFrOwogCQl9CiAKLQkJZW5jb2RlciA9IGNvbnN0cnVjdF9l bmNvZGVyKG1kcDVfa21zLCBJTlRGX2VEUCwgaW50Zl9udW0sCi0JCQkJCU1EUDVfSU5URl9NT0RF X05PTkUsIGN0bCk7CisJCWVuY29kZXIgPSBjb25zdHJ1Y3RfZW5jb2RlcihtZHA1X2ttcywgSU5U Rl9lRFAsIGludGZfbnVtLCBjdGwpOwogCQlpZiAoSVNfRVJSKGVuY29kZXIpKSB7CiAJCQlyZXQg PSBQVFJfRVJSKGVuY29kZXIpOwogCQkJYnJlYWs7CkBAIC0zNjYsOCArMzYwLDcgQEAgc3RhdGlj IGludCBtb2Rlc2V0X2luaXRfaW50ZihzdHJ1Y3QgbWRwNV9rbXMgKm1kcDVfa21zLCBpbnQgaW50 Zl9udW0pCiAJCQlicmVhazsKIAkJfQogCi0JCWVuY29kZXIgPSBjb25zdHJ1Y3RfZW5jb2Rlciht ZHA1X2ttcywgSU5URl9IRE1JLCBpbnRmX251bSwKLQkJCQkJTURQNV9JTlRGX01PREVfTk9ORSwg Y3RsKTsKKwkJZW5jb2RlciA9IGNvbnN0cnVjdF9lbmNvZGVyKG1kcDVfa21zLCBJTlRGX0hETUks IGludGZfbnVtLCBjdGwpOwogCQlpZiAoSVNfRVJSKGVuY29kZXIpKSB7CiAJCQlyZXQgPSBQVFJf RVJSKGVuY29kZXIpOwogCQkJYnJlYWs7CkBAIC0zOTUsOCArMzg4LDcgQEAgc3RhdGljIGludCBt b2Rlc2V0X2luaXRfaW50ZihzdHJ1Y3QgbWRwNV9rbXMgKm1kcDVfa21zLCBpbnQgaW50Zl9udW0p CiAJCQlicmVhazsKIAkJfQogCi0JCWVuY29kZXIgPSBjb25zdHJ1Y3RfZW5jb2RlcihtZHA1X2tt cywgSU5URl9EU0ksIGludGZfbnVtLAotCQkJCQkgICAgTURQNV9JTlRGX0RTSV9NT0RFX1ZJREVP LCBjdGwpOworCQllbmNvZGVyID0gY29uc3RydWN0X2VuY29kZXIobWRwNV9rbXMsIElOVEZfRFNJ LCBpbnRmX251bSwgY3RsKTsKIAkJaWYgKElTX0VSUihlbmNvZGVyKSkgewogCQkJcmV0ID0gUFRS X0VSUihlbmNvZGVyKTsKIAkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21z bS9tZHAvbWRwNS9tZHA1X2ttcy5oIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tZHAvbWRwNS9tZHA1 X2ttcy5oCmluZGV4IGYyNDE5NjY2YzQzZS4uNDBlYmM1YzUwODc1IDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA1L21kcDVfa21zLmgKKysrIGIvZHJpdmVycy9ncHUvZHJt L21zbS9tZHAvbWRwNS9tZHA1X2ttcy5oCkBAIC0xMjYsNiArMTI2LDE3IEBAIHN0cnVjdCBtZHA1 X2ludGVyZmFjZSB7CiAJZW51bSBtZHA1X2ludGZfbW9kZSBtb2RlOwogfTsKIAorc3RydWN0IG1k cDVfZW5jb2RlciB7CisJc3RydWN0IGRybV9lbmNvZGVyIGJhc2U7CisJc3RydWN0IG1kcDVfaW50 ZXJmYWNlIGludGY7CisJc3BpbmxvY2tfdCBpbnRmX2xvY2s7CS8qIHByb3RlY3QgUkVHX01EUDVf SU5URl8qIHJlZ2lzdGVycyAqLworCWJvb2wgZW5hYmxlZDsKKwl1aW50MzJfdCBic2M7CisKKwlz dHJ1Y3QgbWRwNV9jdGwgKmN0bDsKK307CisjZGVmaW5lIHRvX21kcDVfZW5jb2Rlcih4KSBjb250 YWluZXJfb2YoeCwgc3RydWN0IG1kcDVfZW5jb2RlciwgYmFzZSkKKwogc3RhdGljIGlubGluZSB2 b2lkIG1kcDVfd3JpdGUoc3RydWN0IG1kcDVfa21zICptZHA1X2ttcywgdTMyIHJlZywgdTMyIGRh dGEpCiB7CiAJbXNtX3dyaXRlbChkYXRhLCBtZHA1X2ttcy0+bW1pbyArIHJlZyk7CkBAIC0yNTEs MTUgKzI2MiwyNCBAQCBpbnQgbWRwNV9lbmNvZGVyX2dldF9saW5lY291bnQoc3RydWN0IGRybV9l bmNvZGVyICplbmNvZGVyKTsKIHUzMiBtZHA1X2VuY29kZXJfZ2V0X2ZyYW1lY291bnQoc3RydWN0 IGRybV9lbmNvZGVyICplbmNvZGVyKTsKIAogI2lmZGVmIENPTkZJR19EUk1fTVNNX0RTSQotc3Ry dWN0IGRybV9lbmNvZGVyICptZHA1X2NtZF9lbmNvZGVyX2luaXQoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwKLQkJc3RydWN0IG1kcDVfaW50ZXJmYWNlICppbnRmLCBzdHJ1Y3QgbWRwNV9jdGwgKmN0 bCk7Cit2b2lkIG1kcDVfY21kX2VuY29kZXJfbW9kZV9zZXQoc3RydWN0IGRybV9lbmNvZGVyICpl bmNvZGVyLAorCQkJICAgICAgIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlLAorCQkJICAg ICAgIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlKTsKK3ZvaWQgbWRwNV9j bWRfZW5jb2Rlcl9kaXNhYmxlKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rlcik7Cit2b2lkIG1k cDVfY21kX2VuY29kZXJfZW5hYmxlKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rlcik7CiBpbnQg bWRwNV9jbWRfZW5jb2Rlcl9zZXRfc3BsaXRfZGlzcGxheShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVu Y29kZXIsCi0JCQkJCXN0cnVjdCBkcm1fZW5jb2RlciAqc2xhdmVfZW5jb2Rlcik7CisJCQkJICAg ICAgIHN0cnVjdCBkcm1fZW5jb2RlciAqc2xhdmVfZW5jb2Rlcik7CiAjZWxzZQotc3RhdGljIGlu bGluZSBzdHJ1Y3QgZHJtX2VuY29kZXIgKm1kcDVfY21kX2VuY29kZXJfaW5pdChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LAotCQlzdHJ1Y3QgbWRwNV9pbnRlcmZhY2UgKmludGYsIHN0cnVjdCBtZHA1 X2N0bCAqY3RsKQorc3RhdGljIGlubGluZSB2b2lkIG1kcDVfY21kX2VuY29kZXJfbW9kZV9zZXQo c3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAorCQkJCQkgICAgIHN0cnVjdCBkcm1fZGlzcGxh eV9tb2RlICptb2RlLAorCQkJCQkgICAgIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3Rl ZF9tb2RlKQoreworfQorc3RhdGljIGlubGluZSB2b2lkIG1kcDVfY21kX2VuY29kZXJfZGlzYWJs ZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCit7Cit9CitzdGF0aWMgaW5saW5lIHZvaWQg bWRwNV9jbWRfZW5jb2Rlcl9lbmFibGUoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQogewot CXJldHVybiBFUlJfUFRSKC1FSU5WQUwpOwogfQogc3RhdGljIGlubGluZSBpbnQgbWRwNV9jbWRf ZW5jb2Rlcl9zZXRfc3BsaXRfZGlzcGxheSgKIAlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIs IHN0cnVjdCBkcm1fZW5jb2RlciAqc2xhdmVfZW5jb2RlcikKLS0gClRoZSBRdWFsY29tbSBJbm5v dmF0aW9uIENlbnRlciwgSW5jLiBpcyBhIG1lbWJlciBvZiB0aGUgQ29kZSBBdXJvcmEgRm9ydW0s Cmhvc3RlZCBieSBUaGUgTGludXggRm91bmRhdGlvbgoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vZHJpLWRldmVsCg==