From mboxrd@z Thu Jan 1 00:00:00 1970 From: Archit Taneja Subject: [PATCH 03/10] drm/msm/mdp5: Use runtime PM get/put API instead of toggling clocks Date: Fri, 28 Jul 2017 16:17:01 +0530 Message-ID: <20170728104708.20635-4-architt@codeaurora.org> References: <20170728104708.20635-1-architt@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170728104708.20635-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 bWRwNV9lbmFibGUvZGlzYWJsZSBjYWxscyBhcmUgc2NhdHRlcmVkIGFsbCBhcm91bmQgaW4gdGhl IE1EUDUgY29kZS4KVXNlIHRoZSBwbV9ydW50aW1lX2dldC9wdXQgY2FsbHMgaGVyZSBpbnN0ZWFk LCBhbmQgcG9wdWxhdGUgdGhlCnJ1bnRpbWUgUE0gc3VzcGVuZC9yZXN1bWUgb3BzIHRvIG1hbmFn ZSB0aGUgY2xvY2tzLgoKQWJvdXQgdGhlIG92ZXJhbGwgZGVzaWduOiBNRFA1IGlzIGEgY2hpbGQg b2YgdGhlIHRvcCBsZXZlbCBNRFNTCmRldmljZS4gTURTUyBpcyBhbHNvIHRoZSBwYXJlbnQgdG8g RFNJLCBIRE1JIGFuZCBvdGhlciBpbnRlcmZhY2VzLiBXaGVuCndlIGVuYWJsZSBNRFA1J3MgcG93 ZXIgZG9tYWluLCB3ZSBlbmQgdXAgZW5hYmxpbmcgTURTUydzIFBEIHRvby4gSXQgaXMKb25seSBN RFNTJ3MgUEQgdGhhdCBhY3R1YWxseSBjb250cm9sbHMgdGhlIEdEU0MgSFcuIFRoZXJlZm9yZSwg Y2FsbGluZwpydW50aW1lX2dldC9wdXQgb24gdGhlIE1EUDUgZGV2aWNlIGlzIGxpa2UganVzdCBy ZXF1ZXN0aW5nIGEgdm90ZSB0bwplbmFibGUvZGlzYWJsZSB0aGUgR0RTQy4KCkZ1bmN0aW9uYWxs eSwgcmVwbGFjaW5nIHRoZSBjbG9jayBlbmFibGUvZGlzYWJsZSBjYWxscyB3aXRoIHRoZSBSUE0g QVBJCmNhbiByZXN1bHQgaW4gdGhlIHBvd2VyIGRvbWFpbiAoR0RTQykgc3RhdGUgYmVpbmcgdG9n Z2xlZCBpZiBubyBvdGhlcgpjaGlsZCBpc24ndCBwb3dlcmVkIG9uLiBUaGlzIGNhbiByZXN1bHQg aW4gdGhlIHJlZ2lzdGVyIGNvbnRleHQgYmVpbmcgbG9zdC4KV2UgbWFrZSBzdXJlIChpbiBmdXR1 cmUgY29tbWl0cykgdGhhdCBjb2RlIHBhdGhzIGRvbid0IGVuZCB1cCBjb25maWd1cmluZwpyZWdp c3RlcnMgYW5kIHRoZW4gbGF0ZXIgbG9zZSBzdGF0ZSwgcmVzdWx0aW5nIGluIGEgYmFkIEhXIHN0 YXRlLgoKRm9yIG5vdywgd2UndmUgcmVwbGFjZWQgZWFjaCBtZHA1X2VuYWJsZS9kaXNhYmxlIHdp dGggcnVudGltZV9nZXQvcHV0IEFQSS4KV2UgY291bGQgb3B0aW1pemUgdGhpbmdzIGxhdGVyIGJ5 IHJlbW92aW5nIHJ1bnRpbWVfZ2V0L3B1dCBjYWxscyB3aGljaApkb24ndCByZWFsbHkgbmVlZCB0 byBiZSB0aGVyZS4gVGhpcyBjb3VsZCBwcmV2ZW50IHVubmVjZXNzYXJ5IHRvZ2dsaW5nIG9mCnRo ZSBwb3dlciBkb21haW4gYW5kIGNsb2Nrcy4KClNpZ25lZC1vZmYtYnk6IEFyY2hpdCBUYW5lamEg PGFyY2hpdHRAY29kZWF1cm9yYS5vcmc+Ci0tLQogZHJpdmVycy9ncHUvZHJtL21zbS9tZHAvbWRw NS9tZHA1X2NtZF9lbmNvZGVyLmMgfCAgNyArKystCiBkcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9t ZHA1L21kcDVfY3J0Yy5jICAgICAgICB8IDIxICsrKysrKystLS0tCiBkcml2ZXJzL2dwdS9kcm0v bXNtL21kcC9tZHA1L21kcDVfZW5jb2Rlci5jICAgICB8ICA3ICsrKy0KIGRyaXZlcnMvZ3B1L2Ry bS9tc20vbWRwL21kcDUvbWRwNV9pcnEuYyAgICAgICAgIHwgMjcgKysrKysrKysrLS0tLS0KIGRy aXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDUvbWRwNV9rbXMuYyAgICAgICAgIHwgNDkgKysrKysr KysrKysrKysrKysrKy0tLS0tLQogZHJpdmVycy9ncHUvZHJtL21zbS9tZHAvbWRwNS9tZHA1X2tt cy5oICAgICAgICAgfCAgMyAtLQogNiBmaWxlcyBjaGFuZ2VkLCA3OCBpbnNlcnRpb25zKCspLCAz NiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA1 L21kcDVfY21kX2VuY29kZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDUvbWRwNV9j bWRfZW5jb2Rlci5jCmluZGV4IGFhNzQwMmUwM2Y2Ny4uNjA3OTBkZjkxYmZhIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA1L21kcDVfY21kX2VuY29kZXIuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA1L21kcDVfY21kX2VuY29kZXIuYwpAQCAtMTkyLDYg KzE5Miw3IEBAIGludCBtZHA1X2NtZF9lbmNvZGVyX3NldF9zcGxpdF9kaXNwbGF5KHN0cnVjdCBk cm1fZW5jb2RlciAqZW5jb2RlciwKIHsKIAlzdHJ1Y3QgbWRwNV9lbmNvZGVyICptZHA1X2NtZF9l bmMgPSB0b19tZHA1X2VuY29kZXIoZW5jb2Rlcik7CiAJc3RydWN0IG1kcDVfa21zICptZHA1X2tt czsKKwlzdHJ1Y3QgZGV2aWNlICpkZXY7CiAJaW50IGludGZfbnVtOwogCXUzMiBkYXRhID0gMDsK IApAQCAtMjE0LDE0ICsyMTUsMTYgQEAgaW50IG1kcDVfY21kX2VuY29kZXJfc2V0X3NwbGl0X2Rp c3BsYXkoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAogCS8qIFNtYXJ0IFBhbmVsLCBTeW5j IG1vZGUgKi8KIAlkYXRhIHw9IE1EUDVfU1BMSVRfRFBMX1VQUEVSX1NNQVJUX1BBTkVMOwogCisJ ZGV2ID0gJm1kcDVfa21zLT5wZGV2LT5kZXY7CisKIAkvKiBNYWtlIHN1cmUgY2xvY2tzIGFyZSBv biB3aGVuIGNvbm5lY3RvcnMgY2FsbGluZyB0aGlzIGZ1bmN0aW9uLiAqLwotCW1kcDVfZW5hYmxl KG1kcDVfa21zKTsKKwlwbV9ydW50aW1lX2dldF9zeW5jKGRldik7CiAJbWRwNV93cml0ZShtZHA1 X2ttcywgUkVHX01EUDVfU1BMSVRfRFBMX1VQUEVSLCBkYXRhKTsKIAogCW1kcDVfd3JpdGUobWRw NV9rbXMsIFJFR19NRFA1X1NQTElUX0RQTF9MT1dFUiwKIAkJICAgTURQNV9TUExJVF9EUExfTE9X RVJfU01BUlRfUEFORUwpOwogCW1kcDVfd3JpdGUobWRwNV9rbXMsIFJFR19NRFA1X1NQTElUX0RQ TF9FTiwgMSk7Ci0JbWRwNV9kaXNhYmxlKG1kcDVfa21zKTsKKwlwbV9ydW50aW1lX3B1dF9hdXRv c3VzcGVuZChkZXYpOwogCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vbXNtL21kcC9tZHA1L21kcDVfY3J0Yy5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tZHAvbWRw NS9tZHA1X2NydGMuYwppbmRleCA5ZDAxNjU2ZDg1M2UuLmZiNzg0MjVkYjUyYyAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tZHAvbWRwNS9tZHA1X2NydGMuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vbXNtL21kcC9tZHA1L21kcDVfY3J0Yy5jCkBAIC00MTQsNiArNDE0LDcgQEAgc3Rh dGljIHZvaWQgbWRwNV9jcnRjX2Rpc2FibGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQogCXN0cnVj dCBtZHA1X2NydGMgKm1kcDVfY3J0YyA9IHRvX21kcDVfY3J0YyhjcnRjKTsKIAlzdHJ1Y3QgbWRw NV9jcnRjX3N0YXRlICptZHA1X2NzdGF0ZSA9IHRvX21kcDVfY3J0Y19zdGF0ZShjcnRjLT5zdGF0 ZSk7CiAJc3RydWN0IG1kcDVfa21zICptZHA1X2ttcyA9IGdldF9rbXMoY3J0Yyk7CisJc3RydWN0 IGRldmljZSAqZGV2ID0gJm1kcDVfa21zLT5wZGV2LT5kZXY7CiAKIAlEQkcoIiVzIiwgY3J0Yy0+ bmFtZSk7CiAKQEAgLTQyNCw3ICs0MjUsNyBAQCBzdGF0aWMgdm9pZCBtZHA1X2NydGNfZGlzYWJs ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJCW1kcF9pcnFfdW5yZWdpc3RlcigmbWRwNV9rbXMt PmJhc2UsICZtZHA1X2NydGMtPnBwX2RvbmUpOwogCiAJbWRwX2lycV91bnJlZ2lzdGVyKCZtZHA1 X2ttcy0+YmFzZSwgJm1kcDVfY3J0Yy0+ZXJyKTsKLQltZHA1X2Rpc2FibGUobWRwNV9rbXMpOwor CXBtX3J1bnRpbWVfcHV0X2F1dG9zdXNwZW5kKGRldik7CiAKIAltZHA1X2NydGMtPmVuYWJsZWQg PSBmYWxzZTsKIH0KQEAgLTQzNCwxMyArNDM1LDE0IEBAIHN0YXRpYyB2b2lkIG1kcDVfY3J0Y19l bmFibGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQogCXN0cnVjdCBtZHA1X2NydGMgKm1kcDVfY3J0 YyA9IHRvX21kcDVfY3J0YyhjcnRjKTsKIAlzdHJ1Y3QgbWRwNV9jcnRjX3N0YXRlICptZHA1X2Nz dGF0ZSA9IHRvX21kcDVfY3J0Y19zdGF0ZShjcnRjLT5zdGF0ZSk7CiAJc3RydWN0IG1kcDVfa21z ICptZHA1X2ttcyA9IGdldF9rbXMoY3J0Yyk7CisJc3RydWN0IGRldmljZSAqZGV2ID0gJm1kcDVf a21zLT5wZGV2LT5kZXY7CiAKIAlEQkcoIiVzIiwgY3J0Yy0+bmFtZSk7CiAKIAlpZiAoV0FSTl9P TihtZHA1X2NydGMtPmVuYWJsZWQpKQogCQlyZXR1cm47CiAKLQltZHA1X2VuYWJsZShtZHA1X2tt cyk7CisJcG1fcnVudGltZV9nZXRfc3luYyhkZXYpOwogCW1kcF9pcnFfcmVnaXN0ZXIoJm1kcDVf a21zLT5iYXNlLCAmbWRwNV9jcnRjLT5lcnIpOwogCiAJaWYgKG1kcDVfY3N0YXRlLT5jbWRfbW9k ZSkKQEAgLTcyNSw2ICs3MjcsNyBAQCBzdGF0aWMgaW50IG1kcDVfY3J0Y19jdXJzb3Jfc2V0KHN0 cnVjdCBkcm1fY3J0YyAqY3J0YywKIAlzdHJ1Y3QgbWRwNV9waXBlbGluZSAqcGlwZWxpbmUgPSAm bWRwNV9jc3RhdGUtPnBpcGVsaW5lOwogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5k ZXY7CiAJc3RydWN0IG1kcDVfa21zICptZHA1X2ttcyA9IGdldF9rbXMoY3J0Yyk7CisJc3RydWN0 IHBsYXRmb3JtX2RldmljZSAqcGRldiA9IG1kcDVfa21zLT5wZGV2OwogCXN0cnVjdCBtc21fa21z ICprbXMgPSAmbWRwNV9rbXMtPmJhc2UuYmFzZTsKIAlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmN1 cnNvcl9ibywgKm9sZF9ibyA9IE5VTEw7CiAJdWludDMyX3QgYmxlbmRjZmcsIHN0cmlkZTsKQEAg LTc1Myw3ICs3NTYsNyBAQCBzdGF0aWMgaW50IG1kcDVfY3J0Y19jdXJzb3Jfc2V0KHN0cnVjdCBk cm1fY3J0YyAqY3J0YywKIAlpZiAoIWhhbmRsZSkgewogCQlEQkcoIkN1cnNvciBvZmYiKTsKIAkJ Y3Vyc29yX2VuYWJsZSA9IGZhbHNlOwotCQltZHA1X2VuYWJsZShtZHA1X2ttcyk7CisJCXBtX3J1 bnRpbWVfZ2V0X3N5bmMoJnBkZXYtPmRldik7CiAJCWdvdG8gc2V0X2N1cnNvcjsKIAl9CiAKQEAg LTc2OCw2ICs3NzEsOCBAQCBzdGF0aWMgaW50IG1kcDVfY3J0Y19jdXJzb3Jfc2V0KHN0cnVjdCBk cm1fY3J0YyAqY3J0YywKIAlsbSA9IG1kcDVfY3N0YXRlLT5waXBlbGluZS5taXhlci0+bG07CiAJ c3RyaWRlID0gd2lkdGggKiBkcm1fZm9ybWF0X3BsYW5lX2NwcChEUk1fRk9STUFUX0FSR0I4ODg4 LCAwKTsKIAorCXBtX3J1bnRpbWVfZ2V0X3N5bmMoJnBkZXYtPmRldik7CisKIAlzcGluX2xvY2tf aXJxc2F2ZSgmbWRwNV9jcnRjLT5jdXJzb3IubG9jaywgZmxhZ3MpOwogCW9sZF9ibyA9IG1kcDVf Y3J0Yy0+Y3Vyc29yLnNjYW5vdXRfYm87CiAKQEAgLTc3Nyw4ICs3ODIsNiBAQCBzdGF0aWMgaW50 IG1kcDVfY3J0Y19jdXJzb3Jfc2V0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAogCWdldF9yb2ko Y3J0YywgJnJvaV93LCAmcm9pX2gpOwogCi0JbWRwNV9lbmFibGUobWRwNV9rbXMpOwotCiAJbWRw NV93cml0ZShtZHA1X2ttcywgUkVHX01EUDVfTE1fQ1VSU09SX1NUUklERShsbSksIHN0cmlkZSk7 CiAJbWRwNV93cml0ZShtZHA1X2ttcywgUkVHX01EUDVfTE1fQ1VSU09SX0ZPUk1BVChsbSksCiAJ CQlNRFA1X0xNX0NVUlNPUl9GT1JNQVRfRk9STUFUKENVUlNPUl9GTVRfQVJHQjg4ODgpKTsKQEAg LTc5Niw2ICs3OTksOCBAQCBzdGF0aWMgaW50IG1kcDVfY3J0Y19jdXJzb3Jfc2V0KHN0cnVjdCBk cm1fY3J0YyAqY3J0YywKIAogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJm1kcDVfY3J0Yy0+Y3Vy c29yLmxvY2ssIGZsYWdzKTsKIAorCXBtX3J1bnRpbWVfcHV0X2F1dG9zdXNwZW5kKCZwZGV2LT5k ZXYpOworCiBzZXRfY3Vyc29yOgogCXJldCA9IG1kcDVfY3RsX3NldF9jdXJzb3IoY3RsLCBwaXBl bGluZSwgMCwgY3Vyc29yX2VuYWJsZSk7CiAJaWYgKHJldCkgewpAQCAtODA3LDcgKzgxMiw3IEBA IHN0YXRpYyBpbnQgbWRwNV9jcnRjX2N1cnNvcl9zZXQoc3RydWN0IGRybV9jcnRjICpjcnRjLAog CWNydGNfZmx1c2goY3J0YywgZmx1c2hfbWFzayk7CiAKIGVuZDoKLQltZHA1X2Rpc2FibGUobWRw NV9rbXMpOworCXBtX3J1bnRpbWVfcHV0X2F1dG9zdXNwZW5kKCZwZGV2LT5kZXYpOwogCWlmIChv bGRfYm8pIHsKIAkJZHJtX2ZsaXBfd29ya19xdWV1ZSgmbWRwNV9jcnRjLT51bnJlZl9jdXJzb3Jf d29yaywgb2xkX2JvKTsKIAkJLyogZW5hYmxlIHZibGFuayB0byBjb21wbGV0ZSBjdXJzb3Igd29y azogKi8KQEAgLTg0MCw3ICs4NDUsNyBAQCBzdGF0aWMgaW50IG1kcDVfY3J0Y19jdXJzb3JfbW92 ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIGludCB4LCBpbnQgeSkKIAogCWdldF9yb2koY3J0Yywg JnJvaV93LCAmcm9pX2gpOwogCi0JbWRwNV9lbmFibGUobWRwNV9rbXMpOworCXBtX3J1bnRpbWVf Z2V0X3N5bmMoJm1kcDVfa21zLT5wZGV2LT5kZXYpOwogCiAJc3Bpbl9sb2NrX2lycXNhdmUoJm1k cDVfY3J0Yy0+Y3Vyc29yLmxvY2ssIGZsYWdzKTsKIAltZHA1X3dyaXRlKG1kcDVfa21zLCBSRUdf TURQNV9MTV9DVVJTT1JfU0laRShsbSksCkBAIC04NTMsNyArODU4LDcgQEAgc3RhdGljIGludCBt ZHA1X2NydGNfY3Vyc29yX21vdmUoc3RydWN0IGRybV9jcnRjICpjcnRjLCBpbnQgeCwgaW50IHkp CiAKIAljcnRjX2ZsdXNoKGNydGMsIGZsdXNoX21hc2spOwogCi0JbWRwNV9kaXNhYmxlKG1kcDVf a21zKTsKKwlwbV9ydW50aW1lX3B1dF9hdXRvc3VzcGVuZCgmbWRwNV9rbXMtPnBkZXYtPmRldik7 CiAKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21k cDUvbWRwNV9lbmNvZGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA1L21kcDVfZW5j b2Rlci5jCmluZGV4IDcwYmVmNTEyNDVhZi4uMGNhOWU0MDMzYmI2IDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA1L21kcDVfZW5jb2Rlci5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9tc20vbWRwL21kcDUvbWRwNV9lbmNvZGVyLmMKQEAgLTM1MCw2ICszNTAsNyBAQCBpbnQg bWRwNV92aWRfZW5jb2Rlcl9zZXRfc3BsaXRfZGlzcGxheShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVu Y29kZXIsCiAJc3RydWN0IG1kcDVfZW5jb2RlciAqbWRwNV9lbmNvZGVyID0gdG9fbWRwNV9lbmNv ZGVyKGVuY29kZXIpOwogCXN0cnVjdCBtZHA1X2VuY29kZXIgKm1kcDVfc2xhdmVfZW5jID0gdG9f bWRwNV9lbmNvZGVyKHNsYXZlX2VuY29kZXIpOwogCXN0cnVjdCBtZHA1X2ttcyAqbWRwNV9rbXM7 CisJc3RydWN0IGRldmljZSAqZGV2OwogCWludCBpbnRmX251bTsKIAl1MzIgZGF0YSA9IDA7CiAK QEAgLTM2OSw4ICszNzAsMTAgQEAgaW50IG1kcDVfdmlkX2VuY29kZXJfc2V0X3NwbGl0X2Rpc3Bs YXkoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAogCWVsc2UKIAkJcmV0dXJuIC1FSU5WQUw7 CiAKKwlkZXYgPSAmbWRwNV9rbXMtPnBkZXYtPmRldjsKIAkvKiBNYWtlIHN1cmUgY2xvY2tzIGFy ZSBvbiB3aGVuIGNvbm5lY3RvcnMgY2FsbGluZyB0aGlzIGZ1bmN0aW9uLiAqLwotCW1kcDVfZW5h YmxlKG1kcDVfa21zKTsKKwlwbV9ydW50aW1lX2dldF9zeW5jKGRldik7CisKIAkvKiBEdW1iIFBh bmVsLCBTeW5jIG1vZGUgKi8KIAltZHA1X3dyaXRlKG1kcDVfa21zLCBSRUdfTURQNV9TUExJVF9E UExfVVBQRVIsIDApOwogCW1kcDVfd3JpdGUobWRwNV9rbXMsIFJFR19NRFA1X1NQTElUX0RQTF9M T1dFUiwgZGF0YSk7CkBAIC0zNzgsNyArMzgxLDcgQEAgaW50IG1kcDVfdmlkX2VuY29kZXJfc2V0 X3NwbGl0X2Rpc3BsYXkoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAogCiAJbWRwNV9jdGxf cGFpcihtZHA1X2VuY29kZXItPmN0bCwgbWRwNV9zbGF2ZV9lbmMtPmN0bCwgdHJ1ZSk7CiAKLQlt ZHA1X2Rpc2FibGUobWRwNV9rbXMpOworCXBtX3J1bnRpbWVfcHV0X2F1dG9zdXNwZW5kKGRldik7 CiAKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21k cDUvbWRwNV9pcnEuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDUvbWRwNV9pcnEuYwpp bmRleCAzY2U4YjlkZWM5YzEuLmJiNWRlYjAwYzg5OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL21zbS9tZHAvbWRwNS9tZHA1X2lycS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRw L21kcDUvbWRwNV9pcnEuYwpAQCAtNDksMTYgKzQ5LDE5IEBAIHN0YXRpYyB2b2lkIG1kcDVfaXJx X2Vycm9yX2hhbmRsZXIoc3RydWN0IG1kcF9pcnEgKmlycSwgdWludDMyX3QgaXJxc3RhdHVzKQog dm9pZCBtZHA1X2lycV9wcmVpbnN0YWxsKHN0cnVjdCBtc21fa21zICprbXMpCiB7CiAJc3RydWN0 IG1kcDVfa21zICptZHA1X2ttcyA9IHRvX21kcDVfa21zKHRvX21kcF9rbXMoa21zKSk7Ci0JbWRw NV9lbmFibGUobWRwNV9rbXMpOworCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZtZHA1X2ttcy0+cGRl di0+ZGV2OworCisJcG1fcnVudGltZV9nZXRfc3luYyhkZXYpOwogCW1kcDVfd3JpdGUobWRwNV9r bXMsIFJFR19NRFA1X0lOVFJfQ0xFQVIsIDB4ZmZmZmZmZmYpOwogCW1kcDVfd3JpdGUobWRwNV9r bXMsIFJFR19NRFA1X0lOVFJfRU4sIDB4MDAwMDAwMDApOwotCW1kcDVfZGlzYWJsZShtZHA1X2tt cyk7CisJcG1fcnVudGltZV9wdXRfYXV0b3N1c3BlbmQoZGV2KTsKIH0KIAogaW50IG1kcDVfaXJx X3Bvc3RpbnN0YWxsKHN0cnVjdCBtc21fa21zICprbXMpCiB7CiAJc3RydWN0IG1kcF9rbXMgKm1k cF9rbXMgPSB0b19tZHBfa21zKGttcyk7CiAJc3RydWN0IG1kcDVfa21zICptZHA1X2ttcyA9IHRv X21kcDVfa21zKG1kcF9rbXMpOworCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZtZHA1X2ttcy0+cGRl di0+ZGV2OwogCXN0cnVjdCBtZHBfaXJxICplcnJvcl9oYW5kbGVyID0gJm1kcDVfa21zLT5lcnJv cl9oYW5kbGVyOwogCiAJZXJyb3JfaGFuZGxlci0+aXJxID0gbWRwNV9pcnFfZXJyb3JfaGFuZGxl cjsKQEAgLTY3LDkgKzcwLDkgQEAgaW50IG1kcDVfaXJxX3Bvc3RpbnN0YWxsKHN0cnVjdCBtc21f a21zICprbXMpCiAJCQlNRFA1X0lSUV9JTlRGMl9VTkRFUl9SVU4gfAogCQkJTURQNV9JUlFfSU5U RjNfVU5ERVJfUlVOOwogCi0JbWRwNV9lbmFibGUobWRwNV9rbXMpOworCXBtX3J1bnRpbWVfZ2V0 X3N5bmMoZGV2KTsKIAltZHBfaXJxX3JlZ2lzdGVyKG1kcF9rbXMsIGVycm9yX2hhbmRsZXIpOwot CW1kcDVfZGlzYWJsZShtZHA1X2ttcyk7CisJcG1fcnVudGltZV9wdXRfYXV0b3N1c3BlbmQoZGV2 KTsKIAogCXJldHVybiAwOwogfQpAQCAtNzcsOSArODAsMTEgQEAgaW50IG1kcDVfaXJxX3Bvc3Rp bnN0YWxsKHN0cnVjdCBtc21fa21zICprbXMpCiB2b2lkIG1kcDVfaXJxX3VuaW5zdGFsbChzdHJ1 Y3QgbXNtX2ttcyAqa21zKQogewogCXN0cnVjdCBtZHA1X2ttcyAqbWRwNV9rbXMgPSB0b19tZHA1 X2ttcyh0b19tZHBfa21zKGttcykpOwotCW1kcDVfZW5hYmxlKG1kcDVfa21zKTsKKwlzdHJ1Y3Qg ZGV2aWNlICpkZXYgPSAmbWRwNV9rbXMtPnBkZXYtPmRldjsKKworCXBtX3J1bnRpbWVfZ2V0X3N5 bmMoZGV2KTsKIAltZHA1X3dyaXRlKG1kcDVfa21zLCBSRUdfTURQNV9JTlRSX0VOLCAweDAwMDAw MDAwKTsKLQltZHA1X2Rpc2FibGUobWRwNV9rbXMpOworCXBtX3J1bnRpbWVfcHV0X2F1dG9zdXNw ZW5kKGRldik7CiB9CiAKIGlycXJldHVybl90IG1kcDVfaXJxKHN0cnVjdCBtc21fa21zICprbXMp CkBAIC0xMDksMTEgKzExNCwxMiBAQCBpcnFyZXR1cm5fdCBtZHA1X2lycShzdHJ1Y3QgbXNtX2tt cyAqa21zKQogaW50IG1kcDVfZW5hYmxlX3ZibGFuayhzdHJ1Y3QgbXNtX2ttcyAqa21zLCBzdHJ1 Y3QgZHJtX2NydGMgKmNydGMpCiB7CiAJc3RydWN0IG1kcDVfa21zICptZHA1X2ttcyA9IHRvX21k cDVfa21zKHRvX21kcF9rbXMoa21zKSk7CisJc3RydWN0IGRldmljZSAqZGV2ID0gJm1kcDVfa21z LT5wZGV2LT5kZXY7CiAKLQltZHA1X2VuYWJsZShtZHA1X2ttcyk7CisJcG1fcnVudGltZV9nZXRf c3luYyhkZXYpOwogCW1kcF91cGRhdGVfdmJsYW5rX21hc2sodG9fbWRwX2ttcyhrbXMpLAogCQkJ bWRwNV9jcnRjX3ZibGFuayhjcnRjKSwgdHJ1ZSk7Ci0JbWRwNV9kaXNhYmxlKG1kcDVfa21zKTsK KwlwbV9ydW50aW1lX3B1dF9hdXRvc3VzcGVuZChkZXYpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0x MjEsOSArMTI3LDEwIEBAIGludCBtZHA1X2VuYWJsZV92Ymxhbmsoc3RydWN0IG1zbV9rbXMgKmtt cywgc3RydWN0IGRybV9jcnRjICpjcnRjKQogdm9pZCBtZHA1X2Rpc2FibGVfdmJsYW5rKHN0cnVj dCBtc21fa21zICprbXMsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIHsKIAlzdHJ1Y3QgbWRwNV9r bXMgKm1kcDVfa21zID0gdG9fbWRwNV9rbXModG9fbWRwX2ttcyhrbXMpKTsKKwlzdHJ1Y3QgZGV2 aWNlICpkZXYgPSAmbWRwNV9rbXMtPnBkZXYtPmRldjsKIAotCW1kcDVfZW5hYmxlKG1kcDVfa21z KTsKKwlwbV9ydW50aW1lX2dldF9zeW5jKGRldik7CiAJbWRwX3VwZGF0ZV92YmxhbmtfbWFzayh0 b19tZHBfa21zKGttcyksCiAJCQltZHA1X2NydGNfdmJsYW5rKGNydGMpLCBmYWxzZSk7Ci0JbWRw NV9kaXNhYmxlKG1kcDVfa21zKTsKKwlwbV9ydW50aW1lX3B1dF9hdXRvc3VzcGVuZChkZXYpOwog fQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tZHAvbWRwNS9tZHA1X2ttcy5jIGIv ZHJpdmVycy9ncHUvZHJtL21zbS9tZHAvbWRwNS9tZHA1X2ttcy5jCmluZGV4IGVmZGUyZDY5ZWMw OS4uMTZiZDU0Y2Y0ODZhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA1 L21kcDVfa21zLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tZHAvbWRwNS9tZHA1X2ttcy5j CkBAIC0zMCwxMSArMzAsMTAgQEAgc3RhdGljIGNvbnN0IGNoYXIgKmlvbW11X3BvcnRzW10gPSB7 CiBzdGF0aWMgaW50IG1kcDVfaHdfaW5pdChzdHJ1Y3QgbXNtX2ttcyAqa21zKQogewogCXN0cnVj dCBtZHA1X2ttcyAqbWRwNV9rbXMgPSB0b19tZHA1X2ttcyh0b19tZHBfa21zKGttcykpOwotCXN0 cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYgPSBtZHA1X2ttcy0+cGRldjsKKwlzdHJ1Y3QgZGV2 aWNlICpkZXYgPSAmbWRwNV9rbXMtPnBkZXYtPmRldjsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwog Ci0JcG1fcnVudGltZV9nZXRfc3luYygmcGRldi0+ZGV2KTsKLQltZHA1X2VuYWJsZShtZHA1X2tt cyk7CisJcG1fcnVudGltZV9nZXRfc3luYyhkZXYpOwogCiAJLyogTWFnaWMgdW5rbm93biByZWdp c3RlciB3cml0ZXM6CiAJICoKQEAgLTY2LDggKzY1LDcgQEAgc3RhdGljIGludCBtZHA1X2h3X2lu aXQoc3RydWN0IG1zbV9rbXMgKmttcykKIAogCW1kcDVfY3RsbV9od19yZXNldChtZHA1X2ttcy0+ Y3RsbSk7CiAKLQltZHA1X2Rpc2FibGUobWRwNV9rbXMpOwotCXBtX3J1bnRpbWVfcHV0X3N5bmMo JnBkZXYtPmRldik7CisJcG1fcnVudGltZV9wdXRfc3luYyhkZXYpOwogCiAJcmV0dXJuIDA7CiB9 CkBAIC0xMTEsOCArMTA5LDkgQEAgc3RhdGljIHZvaWQgbWRwNV9zd2FwX3N0YXRlKHN0cnVjdCBt c21fa21zICprbXMsIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKIHN0YXRpYyB2b2lk IG1kcDVfcHJlcGFyZV9jb21taXQoc3RydWN0IG1zbV9rbXMgKmttcywgc3RydWN0IGRybV9hdG9t aWNfc3RhdGUgKnN0YXRlKQogewogCXN0cnVjdCBtZHA1X2ttcyAqbWRwNV9rbXMgPSB0b19tZHA1 X2ttcyh0b19tZHBfa21zKGttcykpOworCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZtZHA1X2ttcy0+ cGRldi0+ZGV2OwogCi0JbWRwNV9lbmFibGUobWRwNV9rbXMpOworCXBtX3J1bnRpbWVfZ2V0X3N5 bmMoZGV2KTsKIAogCWlmIChtZHA1X2ttcy0+c21wKQogCQltZHA1X3NtcF9wcmVwYXJlX2NvbW1p dChtZHA1X2ttcy0+c21wLCAmbWRwNV9rbXMtPnN0YXRlLT5zbXApOwpAQCAtMTIxLDExICsxMjAs MTIgQEAgc3RhdGljIHZvaWQgbWRwNV9wcmVwYXJlX2NvbW1pdChzdHJ1Y3QgbXNtX2ttcyAqa21z LCBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3QKIHN0YXRpYyB2b2lkIG1kcDVfY29tcGxldGVf Y29tbWl0KHN0cnVjdCBtc21fa21zICprbXMsIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0 ZSkKIHsKIAlzdHJ1Y3QgbWRwNV9rbXMgKm1kcDVfa21zID0gdG9fbWRwNV9rbXModG9fbWRwX2tt cyhrbXMpKTsKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmbWRwNV9rbXMtPnBkZXYtPmRldjsKIAog CWlmIChtZHA1X2ttcy0+c21wKQogCQltZHA1X3NtcF9jb21wbGV0ZV9jb21taXQobWRwNV9rbXMt PnNtcCwgJm1kcDVfa21zLT5zdGF0ZS0+c21wKTsKIAotCW1kcDVfZGlzYWJsZShtZHA1X2ttcyk7 CisJcG1fcnVudGltZV9wdXRfYXV0b3N1c3BlbmQoZGV2KTsKIH0KIAogc3RhdGljIHZvaWQgbWRw NV93YWl0X2Zvcl9jcnRjX2NvbW1pdF9kb25lKHN0cnVjdCBtc21fa21zICprbXMsCkBAIC00OTUs MTEgKzQ5NSwxMiBAQCBzdGF0aWMgaW50IG1vZGVzZXRfaW5pdChzdHJ1Y3QgbWRwNV9rbXMgKm1k cDVfa21zKQogc3RhdGljIHZvaWQgcmVhZF9tZHBfaHdfcmV2aXNpb24oc3RydWN0IG1kcDVfa21z ICptZHA1X2ttcywKIAkJCQkgdTMyICptYWpvciwgdTMyICptaW5vcikKIHsKKwlzdHJ1Y3QgZGV2 aWNlICpkZXYgPSAmbWRwNV9rbXMtPnBkZXYtPmRldjsKIAl1MzIgdmVyc2lvbjsKIAotCW1kcDVf ZW5hYmxlKG1kcDVfa21zKTsKKwlwbV9ydW50aW1lX2dldF9zeW5jKGRldik7CiAJdmVyc2lvbiA9 IG1kcDVfcmVhZChtZHA1X2ttcywgUkVHX01EUDVfSFdfVkVSU0lPTik7Ci0JbWRwNV9kaXNhYmxl KG1kcDVfa21zKTsKKwlwbV9ydW50aW1lX3B1dF9hdXRvc3VzcGVuZChkZXYpOwogCiAJKm1ham9y ID0gRklFTEQodmVyc2lvbiwgTURQNV9IV19WRVJTSU9OX01BSk9SKTsKIAkqbWlub3IgPSBGSUVM RCh2ZXJzaW9uLCBNRFA1X0hXX1ZFUlNJT05fTUlOT1IpOwpAQCAtNjUyLDcgKzY1Myw3IEBAIHN0 cnVjdCBtc21fa21zICptZHA1X2ttc19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJICog aGF2ZSBsZWZ0IHRoaW5ncyBvbiwgaW4gd2hpY2ggY2FzZSB3ZSdsbCBzdGFydCBnZXR0aW5nIGZh dWx0cyBpZgogCSAqIHdlIGRvbid0IGRpc2FibGUpOgogCSAqLwotCW1kcDVfZW5hYmxlKG1kcDVf a21zKTsKKwlwbV9ydW50aW1lX2dldF9zeW5jKCZwZGV2LT5kZXYpOwogCWZvciAoaSA9IDA7IGkg PCBNRFA1X0lOVEZfTlVNX01BWDsgaSsrKSB7CiAJCWlmIChtZHA1X2NmZ19pbnRmX2lzX3ZpcnR1 YWwoY29uZmlnLT5ody0+aW50Zi5jb25uZWN0W2ldKSB8fAogCQkgICAgIWNvbmZpZy0+aHctPmlu dGYuYmFzZVtpXSkKQEAgLTY2MSw3ICs2NjIsNiBAQCBzdHJ1Y3QgbXNtX2ttcyAqbWRwNV9rbXNf aW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCiAJCW1kcDVfd3JpdGUobWRwNV9rbXMsIFJF R19NRFA1X0lOVEZfRlJBTUVfTElORV9DT1VOVF9FTihpKSwgMHgzKTsKIAl9Ci0JbWRwNV9kaXNh YmxlKG1kcDVfa21zKTsKIAltZGVsYXkoMTYpOwogCiAJaWYgKGNvbmZpZy0+cGxhdGZvcm0uaW9t bXUpIHsKQEAgLTY4Nyw2ICs2ODcsOCBAQCBzdHJ1Y3QgbXNtX2ttcyAqbWRwNV9rbXNfaW5pdChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQlhc3BhY2UgPSBOVUxMOzsKIAl9CiAKKwlwbV9ydW50 aW1lX3B1dF9hdXRvc3VzcGVuZCgmcGRldi0+ZGV2KTsKKwogCXJldCA9IG1vZGVzZXRfaW5pdCht ZHA1X2ttcyk7CiAJaWYgKHJldCkgewogCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJtb2Rlc2V0X2lu aXQgZmFpbGVkOiAlZFxuIiwgcmV0KTsKQEAgLTEwMTUsNiArMTAxNywzMCBAQCBzdGF0aWMgaW50 IG1kcDVfZGV2X3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCXJldHVybiAw OwogfQogCitzdGF0aWMgaW50IG1kcDVfcnVudGltZV9zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRl dikKK3sKKwlzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2ID0gdG9fcGxhdGZvcm1fZGV2aWNl KGRldik7CisJc3RydWN0IG1kcDVfa21zICptZHA1X2ttcyA9IHBsYXRmb3JtX2dldF9kcnZkYXRh KHBkZXYpOworCisJREJHKCIiKTsKKworCXJldHVybiBtZHA1X2Rpc2FibGUobWRwNV9rbXMpOwor fQorCitzdGF0aWMgaW50IG1kcDVfcnVudGltZV9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2KQor eworCXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYgPSB0b19wbGF0Zm9ybV9kZXZpY2UoZGV2 KTsKKwlzdHJ1Y3QgbWRwNV9rbXMgKm1kcDVfa21zID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRl dik7CisKKwlEQkcoIiIpOworCisJcmV0dXJuIG1kcDVfZW5hYmxlKG1kcDVfa21zKTsKK30KKwor c3RhdGljIGNvbnN0IHN0cnVjdCBkZXZfcG1fb3BzIG1kcDVfcG1fb3BzID0geworCVNFVF9SVU5U SU1FX1BNX09QUyhtZHA1X3J1bnRpbWVfc3VzcGVuZCwgbWRwNV9ydW50aW1lX3Jlc3VtZSwgTlVM TCkKK307CisKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG1kcDVfZHRfbWF0Y2hb XSA9IHsKIAl7IC5jb21wYXRpYmxlID0gInFjb20sbWRwNSIsIH0sCiAJLyogdG8gc3VwcG9ydCBk b3duc3RyZWFtIERUIGZpbGVzICovCkBAIC0xMDI5LDYgKzEwNTUsNyBAQCBzdGF0aWMgc3RydWN0 IHBsYXRmb3JtX2RyaXZlciBtZHA1X2RyaXZlciA9IHsKIAkuZHJpdmVyID0gewogCQkubmFtZSA9 ICJtc21fbWRwIiwKIAkJLm9mX21hdGNoX3RhYmxlID0gbWRwNV9kdF9tYXRjaCwKKwkJLnBtID0g Jm1kcDVfcG1fb3BzLAogCX0sCiB9OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNt L21kcC9tZHA1L21kcDVfa21zLmggYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA1L21kcDVf a21zLmgKaW5kZXggOTFjZDMxMTYxMDg3Li5jZjQ2YjAwYjJkMTQgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9tc20vbWRwL21kcDUvbWRwNV9rbXMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0v bXNtL21kcC9tZHA1L21kcDVfa21zLmgKQEAgLTI2MCw5ICsyNjAsNiBAQCBzdGF0aWMgaW5saW5l IHVpbnQzMl90IGxtMnBwZG9uZShzdHJ1Y3QgbWRwNV9od19taXhlciAqbWl4ZXIpCiAJcmV0dXJu IE1EUDVfSVJRX1BJTkdfUE9OR18wX0RPTkUgPDwgbWl4ZXItPnBwOwogfQogCi1pbnQgbWRwNV9k aXNhYmxlKHN0cnVjdCBtZHA1X2ttcyAqbWRwNV9rbXMpOwotaW50IG1kcDVfZW5hYmxlKHN0cnVj dCBtZHA1X2ttcyAqbWRwNV9rbXMpOwotCiB2b2lkIG1kcDVfc2V0X2lycW1hc2soc3RydWN0IG1k cF9rbXMgKm1kcF9rbXMsIHVpbnQzMl90IGlycW1hc2ssCiAJCXVpbnQzMl90IG9sZF9pcnFtYXNr KTsKIHZvaWQgbWRwNV9pcnFfcHJlaW5zdGFsbChzdHJ1Y3QgbXNtX2ttcyAqa21zKTsKLS0gClRo ZSBRdWFsY29tbSBJbm5vdmF0aW9uIENlbnRlciwgSW5jLiBpcyBhIG1lbWJlciBvZiB0aGUgQ29k ZSBBdXJvcmEgRm9ydW0sCmhvc3RlZCBieSBUaGUgTGludXggRm91bmRhdGlvbgoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcg bGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==