From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rajesh Yadav Subject: [DPU PATCH v3 06/12] drm/msm/dpu: use runtime_pm calls on dpu device Date: Mon, 14 May 2018 20:56:53 +0530 Message-ID: <1526311619-3309-7-git-send-email-ryadav@codeaurora.org> References: <1526311619-3309-1-git-send-email-ryadav@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1526311619-3309-1-git-send-email-ryadav-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: dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Cc: robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, Rajesh Yadav , hoegsberg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org VGhlIGRwdSBkcml2ZXIgaW1wbGVtZW50cyBydW50aW1lX3BtIHN1cHBvcnQgZm9yIG1hbmFnaW5n CmRwdSBzcGVjaWZpYyByZXNvdXJjZXMgbGlrZSAtIGNsb2NrcywgYnVzIGJhbmR3aWR0aCBldGMu CgpVc2UgcG1fcnVudGltZV9nZXQvcHV0X3N5bmMgY2FsbHMgb24gZHB1IGRldmljZS4KClRoZSBj b21tb24gY2xvY2tzIGFuZCBwb3dlciBtYW5hZ2VtZW50IGZvciBhbGwgY2hpbGQgbm9kZXMKKG1k cDUvZHB1LCBkc2ksIGRwIGV0YykgaXMgZG9uZSBieSBwYXJlbnQgTURTUyBkZXZpY2UvZHJpdmVy CnZpYSBydW50aW1lX3BtIGR1ZSB0byBwYXJlbnQgY2hpbGQgcmVsYXRpb25zaGlwLgoKQ2hhbmdl cyBpbiB2MzoKCS0gbm9uZQoKQ2hhbmdlcyBpbiB2MjoKCS0gbm9uZQoKU2lnbmVkLW9mZi1ieTog UmFqZXNoIFlhZGF2IDxyeWFkYXZAY29kZWF1cm9yYS5vcmc+ClJldmlld2VkLWJ5OiBTZWFuIFBh dWwgPHNlYW5wYXVsQGNocm9taXVtLm9yZz4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3Av ZHB1MS9kcHVfY29yZV9pcnEuYyB8ICA4ICsrLS0tCiBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3Av ZHB1MS9kcHVfY3J0Yy5jICAgICB8IDEyICsrKystLS0tCiBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rp c3AvZHB1MS9kcHVfZW5jb2Rlci5jICB8IDE2ICsrKysrLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9t c20vZGlzcC9kcHUxL2RwdV9rbXMuYyAgICAgIHwgNDUgKysrKysrKy0tLS0tLS0tLS0tLS0tLS0t LS0tLQogZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3BsYW5lLmMgICAgfCAgNiAr Ky0tCiA1IGZpbGVzIGNoYW5nZWQsIDMxIGluc2VydGlvbnMoKyksIDU2IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jb3JlX2lycS5j IGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NvcmVfaXJxLmMKaW5kZXggOTc3 YWRjNC4uNWM1Y2M1NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEv ZHB1X2NvcmVfaXJxLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2Nv cmVfaXJxLmMKQEAgLTQ1MiwxMCArNDUyLDEwIEBAIHZvaWQgZHB1X2NvcmVfaXJxX3ByZWluc3Rh bGwoc3RydWN0IGRwdV9rbXMgKmRwdV9rbXMpCiAJfQogCXByaXYgPSBkcHVfa21zLT5kZXYtPmRl dl9wcml2YXRlOwogCi0JZHB1X3Bvd2VyX3Jlc291cmNlX2VuYWJsZSgmcHJpdi0+cGhhbmRsZSwg ZHB1X2ttcy0+Y29yZV9jbGllbnQsIHRydWUpOworCXBtX3J1bnRpbWVfZ2V0X3N5bmMoJmRwdV9r bXMtPnBkZXYtPmRldik7CiAJZHB1X2NsZWFyX2FsbF9pcnFzKGRwdV9rbXMpOwogCWRwdV9kaXNh YmxlX2FsbF9pcnFzKGRwdV9rbXMpOwotCWRwdV9wb3dlcl9yZXNvdXJjZV9lbmFibGUoJnByaXYt PnBoYW5kbGUsIGRwdV9rbXMtPmNvcmVfY2xpZW50LCBmYWxzZSk7CisJcG1fcnVudGltZV9wdXRf c3luYygmZHB1X2ttcy0+cGRldi0+ZGV2KTsKIAogCXNwaW5fbG9ja19pbml0KCZkcHVfa21zLT5p cnFfb2JqLmNiX2xvY2spOwogCkBAIC00OTYsNyArNDk2LDcgQEAgdm9pZCBkcHVfY29yZV9pcnFf dW5pbnN0YWxsKHN0cnVjdCBkcHVfa21zICpkcHVfa21zKQogCX0KIAlwcml2ID0gZHB1X2ttcy0+ ZGV2LT5kZXZfcHJpdmF0ZTsKIAotCWRwdV9wb3dlcl9yZXNvdXJjZV9lbmFibGUoJnByaXYtPnBo YW5kbGUsIGRwdV9rbXMtPmNvcmVfY2xpZW50LCB0cnVlKTsKKwlwbV9ydW50aW1lX2dldF9zeW5j KCZkcHVfa21zLT5wZGV2LT5kZXYpOwogCWZvciAoaSA9IDA7IGkgPCBkcHVfa21zLT5pcnFfb2Jq LnRvdGFsX2lycXM7IGkrKykKIAkJaWYgKGF0b21pY19yZWFkKCZkcHVfa21zLT5pcnFfb2JqLmVu YWJsZV9jb3VudHNbaV0pIHx8CiAJCQkJIWxpc3RfZW1wdHkoJmRwdV9rbXMtPmlycV9vYmouaXJx X2NiX3RibFtpXSkpCkBAIC01MDQsNyArNTA0LDcgQEAgdm9pZCBkcHVfY29yZV9pcnFfdW5pbnN0 YWxsKHN0cnVjdCBkcHVfa21zICpkcHVfa21zKQogCiAJZHB1X2NsZWFyX2FsbF9pcnFzKGRwdV9r bXMpOwogCWRwdV9kaXNhYmxlX2FsbF9pcnFzKGRwdV9rbXMpOwotCWRwdV9wb3dlcl9yZXNvdXJj ZV9lbmFibGUoJnByaXYtPnBoYW5kbGUsIGRwdV9rbXMtPmNvcmVfY2xpZW50LCBmYWxzZSk7CisJ cG1fcnVudGltZV9wdXRfc3luYygmZHB1X2ttcy0+cGRldi0+ZGV2KTsKIAogCWtmcmVlKGRwdV9r bXMtPmlycV9vYmouaXJxX2NiX3RibCk7CiAJa2ZyZWUoZHB1X2ttcy0+aXJxX29iai5lbmFibGVf Y291bnRzKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9j cnRjLmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5jCmluZGV4IDQ4 OTIwYjA1Li5lMmQyZTMyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1 MS9kcHVfY3J0Yy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jcnRj LmMKQEAgLTg2LDggKzg2LDEyIEBAIHN0YXRpYyBpbmxpbmUgaW50IF9kcHVfY3J0Y19wb3dlcl9l bmFibGUoc3RydWN0IGRwdV9jcnRjICpkcHVfY3J0YywgYm9vbCBlbmFibGUpCiAKIAlkcHVfa21z ID0gdG9fZHB1X2ttcyhwcml2LT5rbXMpOwogCi0JcmV0dXJuIGRwdV9wb3dlcl9yZXNvdXJjZV9l bmFibGUoJnByaXYtPnBoYW5kbGUsIGRwdV9rbXMtPmNvcmVfY2xpZW50LAotCQkJCQkJCQkJZW5h YmxlKTsKKwlpZiAoZW5hYmxlKQorCQlwbV9ydW50aW1lX2dldF9zeW5jKCZkcHVfa21zLT5wZGV2 LT5kZXYpOworCWVsc2UKKwkJcG1fcnVudGltZV9wdXRfc3luYygmZHB1X2ttcy0+cGRldi0+ZGV2 KTsKKworCXJldHVybiAwOwogfQogCiAvKioKQEAgLTIyNTAsNyArMjI1NCw2IEBAIHN0YXRpYyBp bnQgX2RwdV9jcnRjX3ZibGFua19lbmFibGVfbm9fbG9jaygKIAogCQkvKiBkcm9wIGxvY2sgc2lu Y2UgcG93ZXIgY3J0YyBjYiBtYXkgdHJ5IHRvIHJlLWFjcXVpcmUgbG9jayAqLwogCQltdXRleF91 bmxvY2soJmRwdV9jcnRjLT5jcnRjX2xvY2spOwotCQlwbV9ydW50aW1lX2dldF9zeW5jKGRldi0+ ZGV2KTsKIAkJcmV0ID0gX2RwdV9jcnRjX3Bvd2VyX2VuYWJsZShkcHVfY3J0YywgdHJ1ZSk7CiAJ CW11dGV4X2xvY2soJmRwdV9jcnRjLT5jcnRjX2xvY2spOwogCQlpZiAocmV0KQpAQCAtMjU4MCw3 ICsyNTgzLDYgQEAgc3RhdGljIHZvaWQgZHB1X2NydGNfZGlzYWJsZShzdHJ1Y3QgZHJtX2NydGMg KmNydGMpCiAJLyogZGlzYWJsZSBjbGsgJiBidyBjb250cm9sIHVudGlsIGNsayAmIGJ3IHByb3Bl cnRpZXMgYXJlIHNldCAqLwogCWNzdGF0ZS0+YndfY29udHJvbCA9IGZhbHNlOwogCWNzdGF0ZS0+ Yndfc3BsaXRfdm90ZSA9IGZhbHNlOwotCXBtX3J1bnRpbWVfcHV0X3N5bmMoY3J0Yy0+ZGV2LT5k ZXYpOwogCiAJbXV0ZXhfdW5sb2NrKCZkcHVfY3J0Yy0+Y3J0Y19sb2NrKTsKIH0KQEAgLTI2MTEs OCArMjYxMyw2IEBAIHN0YXRpYyB2b2lkIGRwdV9jcnRjX2VuYWJsZShzdHJ1Y3QgZHJtX2NydGMg KmNydGMsCiAJCXJldHVybjsKIAl9CiAKLQlwbV9ydW50aW1lX2dldF9zeW5jKGNydGMtPmRldi0+ ZGV2KTsKLQogCWRybV9mb3JfZWFjaF9lbmNvZGVyKGVuY29kZXIsIGNydGMtPmRldikgewogCQlp ZiAoZW5jb2Rlci0+Y3J0YyAhPSBjcnRjKQogCQkJY29udGludWU7CmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlci5jIGIvZHJpdmVycy9ncHUvZHJt L21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXIuYwppbmRleCA0Mzg2MzYwLi4yOThhNmVmIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlci5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyLmMKQEAgLTI2OCw4ICsy NjgsMTIgQEAgc3RhdGljIGlubGluZSBpbnQgX2RwdV9lbmNvZGVyX3Bvd2VyX2VuYWJsZShzdHJ1 Y3QgZHB1X2VuY29kZXJfdmlydCAqZHB1X2VuYywKIAogCWRwdV9rbXMgPSB0b19kcHVfa21zKHBy aXYtPmttcyk7CiAKLQlyZXR1cm4gZHB1X3Bvd2VyX3Jlc291cmNlX2VuYWJsZSgmcHJpdi0+cGhh bmRsZSwgZHB1X2ttcy0+Y29yZV9jbGllbnQsCi0JCQkJCQkJCQllbmFibGUpOworCWlmIChlbmFi bGUpCisJCXBtX3J1bnRpbWVfZ2V0X3N5bmMoJmRwdV9rbXMtPnBkZXYtPmRldik7CisJZWxzZQor CQlwbV9ydW50aW1lX3B1dF9zeW5jKCZkcHVfa21zLT5wZGV2LT5kZXYpOworCisJcmV0dXJuIDA7 CiB9CiAKIHZvaWQgZHB1X2VuY29kZXJfaGVscGVyX3JlcG9ydF9pcnFfdGltZW91dChzdHJ1Y3Qg ZHB1X2VuY29kZXJfcGh5cyAqcGh5c19lbmMsCkBAIC03OTYsMTAgKzgwMCw4IEBAIHN0YXRpYyB2 b2lkIF9kcHVfZW5jb2Rlcl9yZXNvdXJjZV9jb250cm9sX2hlbHBlcihzdHJ1Y3QgZHJtX2VuY29k ZXIgKmRybV9lbmMsCiAJfQogCiAJaWYgKGVuYWJsZSkgewotCQlwbV9ydW50aW1lX2dldF9zeW5j KGRwdV9rbXMtPmRldi0+ZGV2KTsKIAkJLyogZW5hYmxlIERQVSBjb3JlIGNsa3MgKi8KLQkJZHB1 X3Bvd2VyX3Jlc291cmNlX2VuYWJsZSgmcHJpdi0+cGhhbmRsZSwKLQkJCQlkcHVfa21zLT5jb3Jl X2NsaWVudCwgdHJ1ZSk7CisJCXBtX3J1bnRpbWVfZ2V0X3N5bmMoJmRwdV9rbXMtPnBkZXYtPmRl dik7CiAKIAkJLyogZW5hYmxlIGFsbCB0aGUgaXJxICovCiAJCV9kcHVfZW5jb2Rlcl9pcnFfY29u dHJvbChkcm1fZW5jLCB0cnVlKTsKQEAgLTgwOSw5ICs4MTEsNyBAQCBzdGF0aWMgdm9pZCBfZHB1 X2VuY29kZXJfcmVzb3VyY2VfY29udHJvbF9oZWxwZXIoc3RydWN0IGRybV9lbmNvZGVyICpkcm1f ZW5jLAogCQlfZHB1X2VuY29kZXJfaXJxX2NvbnRyb2woZHJtX2VuYywgZmFsc2UpOwogCiAJCS8q IGRpc2FibGUgRFBVIGNvcmUgY2xrcyAqLwotCQlkcHVfcG93ZXJfcmVzb3VyY2VfZW5hYmxlKCZw cml2LT5waGFuZGxlLAotCQkJCWRwdV9rbXMtPmNvcmVfY2xpZW50LCBmYWxzZSk7Ci0JCXBtX3J1 bnRpbWVfcHV0X3N5bmMoZHB1X2ttcy0+ZGV2LT5kZXYpOworCQlwbV9ydW50aW1lX3B1dF9zeW5j KCZkcHVfa21zLT5wZGV2LT5kZXYpOwogCX0KIAogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL21zbS9kaXNwL2RwdTEvZHB1X2ttcy5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2Rw dTEvZHB1X2ttcy5jCmluZGV4IDg1ZjNkYmMuLmNkYTRkMTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9rbXMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNt L2Rpc3AvZHB1MS9kcHVfa21zLmMKQEAgLTEwMCw4ICsxMDAsNyBAQCBzdGF0aWMgaW50IF9kcHVf ZGFuZ2VyX3NpZ25hbF9zdGF0dXMoc3RydWN0IHNlcV9maWxlICpzLAogCXByaXYgPSBrbXMtPmRl di0+ZGV2X3ByaXZhdGU7CiAJbWVtc2V0KCZzdGF0dXMsIDAsIHNpemVvZihzdHJ1Y3QgZHB1X2Rh bmdlcl9zYWZlX3N0YXR1cykpOwogCi0JcG1fcnVudGltZV9nZXRfc3luYyhrbXMtPmRldi0+ZGV2 KTsKLQlkcHVfcG93ZXJfcmVzb3VyY2VfZW5hYmxlKCZwcml2LT5waGFuZGxlLCBrbXMtPmNvcmVf Y2xpZW50LCB0cnVlKTsKKwlwbV9ydW50aW1lX2dldF9zeW5jKCZrbXMtPnBkZXYtPmRldik7CiAJ aWYgKGRhbmdlcl9zdGF0dXMpIHsKIAkJc2VxX3B1dHMocywgIlxuRGFuZ2VyIHNpZ25hbCBzdGF0 dXM6XG4iKTsKIAkJaWYgKGttcy0+aHdfbWRwLT5vcHMuZ2V0X2Rhbmdlcl9zdGF0dXMpCkBAIC0x MTMsOCArMTEyLDcgQEAgc3RhdGljIGludCBfZHB1X2Rhbmdlcl9zaWduYWxfc3RhdHVzKHN0cnVj dCBzZXFfZmlsZSAqcywKIAkJCWttcy0+aHdfbWRwLT5vcHMuZ2V0X2Rhbmdlcl9zdGF0dXMoa21z LT5od19tZHAsCiAJCQkJCSZzdGF0dXMpOwogCX0KLQlkcHVfcG93ZXJfcmVzb3VyY2VfZW5hYmxl KCZwcml2LT5waGFuZGxlLCBrbXMtPmNvcmVfY2xpZW50LCBmYWxzZSk7Ci0JcG1fcnVudGltZV9w dXRfc3luYyhrbXMtPmRldi0+ZGV2KTsKKwlwbV9ydW50aW1lX3B1dF9zeW5jKCZrbXMtPnBkZXYt PmRldik7CiAKIAlzZXFfcHJpbnRmKHMsICJNRFAgICAgIDogIDB4JXhcbiIsIHN0YXR1cy5tZHAp OwogCkBAIC0yMTUsMTEgKzIxMyw3IEBAIHN0YXRpYyBpbnQgX2RwdV9kZWJ1Z2ZzX3Nob3dfcmVn c2V0MzIoc3RydWN0IHNlcV9maWxlICpzLCB2b2lkICpkYXRhKQogCQkJc2VxX3B1dHMocywgIiAg ICAgICAgICIpOwogCX0KIAotCWlmIChkcHVfcG93ZXJfcmVzb3VyY2VfZW5hYmxlKCZwcml2LT5w aGFuZGxlLAotCQkJCWRwdV9rbXMtPmNvcmVfY2xpZW50LCB0cnVlKSkgewotCQlzZXFfcHV0cyhz LCAiZmFpbGVkIHRvIGVuYWJsZSBkcHUgY2xvY2tzXG4iKTsKLQkJcmV0dXJuIDA7Ci0JfQorCXBt X3J1bnRpbWVfZ2V0X3N5bmMoJmRwdV9rbXMtPnBkZXYtPmRldik7CiAKIAkvKiBtYWluIHJlZ2lz dGVyIG91dHB1dCAqLwogCWZvciAoaSA9IDA7IGkgPCByZWdzZXQtPmJsa19sZW47IGkgKz0gNCkg ewpAQCAtMjI5LDcgKzIyMyw3IEBAIHN0YXRpYyBpbnQgX2RwdV9kZWJ1Z2ZzX3Nob3dfcmVnc2V0 MzIoc3RydWN0IHNlcV9maWxlICpzLCB2b2lkICpkYXRhKQogCQlzZXFfcHJpbnRmKHMsICIgJTA4 eCIsIHJlYWRsX3JlbGF4ZWQoYmFzZSArIGkpKTsKIAl9CiAJc2VxX3B1dHMocywgIlxuIik7Ci0J ZHB1X3Bvd2VyX3Jlc291cmNlX2VuYWJsZSgmcHJpdi0+cGhhbmRsZSwgZHB1X2ttcy0+Y29yZV9j bGllbnQsIGZhbHNlKTsKKwlwbV9ydW50aW1lX3B1dF9zeW5jKCZkcHVfa21zLT5wZGV2LT5kZXYp OwogCiAJcmV0dXJuIDA7CiB9CkBAIC0zMzQsMjAgKzMyOCwxMiBAQCBzdGF0aWMgdm9pZCBfZHB1 X2RlYnVnZnNfZGVzdHJveShzdHJ1Y3QgZHB1X2ttcyAqZHB1X2ttcykKIAogc3RhdGljIGludCBk cHVfa21zX2VuYWJsZV92Ymxhbmsoc3RydWN0IG1zbV9rbXMgKmttcywgc3RydWN0IGRybV9jcnRj ICpjcnRjKQogewotCWludCByZXQ7Ci0KLQlwbV9ydW50aW1lX2dldF9zeW5jKGNydGMtPmRldi0+ ZGV2KTsKLQlyZXQgPSBkcHVfY3J0Y192YmxhbmsoY3J0YywgdHJ1ZSk7Ci0JcG1fcnVudGltZV9w dXRfc3luYyhjcnRjLT5kZXYtPmRldik7Ci0KLQlyZXR1cm4gcmV0OworCXJldHVybiBkcHVfY3J0 Y192YmxhbmsoY3J0YywgdHJ1ZSk7CiB9CiAKIHN0YXRpYyB2b2lkIGRwdV9rbXNfZGlzYWJsZV92 Ymxhbmsoc3RydWN0IG1zbV9rbXMgKmttcywgc3RydWN0IGRybV9jcnRjICpjcnRjKQogewotCXBt X3J1bnRpbWVfZ2V0X3N5bmMoY3J0Yy0+ZGV2LT5kZXYpOwogCWRwdV9jcnRjX3ZibGFuayhjcnRj LCBmYWxzZSk7Ci0JcG1fcnVudGltZV9wdXRfc3luYyhjcnRjLT5kZXYtPmRldik7CiB9CiAKIHN0 YXRpYyB2b2lkIGRwdV9rbXNfd2FpdF9mb3JfZnJhbWVfdHJhbnNmZXJfY29tcGxldGUoc3RydWN0 IG1zbV9rbXMgKmttcywKQEAgLTQwOSw4ICszOTUsNyBAQCBzdGF0aWMgdm9pZCBkcHVfa21zX3By ZXBhcmVfY29tbWl0KHN0cnVjdCBtc21fa21zICprbXMsCiAJaWYgKCFkZXYgfHwgIWRldi0+ZGV2 X3ByaXZhdGUpCiAJCXJldHVybjsKIAlwcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlwbV9ydW50 aW1lX2dldF9zeW5jKGRldi0+ZGV2KTsKLQlkcHVfcG93ZXJfcmVzb3VyY2VfZW5hYmxlKCZwcml2 LT5waGFuZGxlLCBkcHVfa21zLT5jb3JlX2NsaWVudCwgdHJ1ZSk7CisJcG1fcnVudGltZV9nZXRf c3luYygmZHB1X2ttcy0+cGRldi0+ZGV2KTsKIAogCWxpc3RfZm9yX2VhY2hfZW50cnkoZW5jb2Rl ciwgJmRldi0+bW9kZV9jb25maWcuZW5jb2Rlcl9saXN0LCBoZWFkKQogCQlpZiAoZW5jb2Rlci0+ Y3J0YyAhPSBOVUxMKQpAQCAtNDc0LDggKzQ1OSw3IEBAIHN0YXRpYyB2b2lkIGRwdV9rbXNfY29t cGxldGVfY29tbWl0KHN0cnVjdCBtc21fa21zICprbXMsCiAJZm9yX2VhY2hfb2xkX2NydGNfaW5f c3RhdGUob2xkX3N0YXRlLCBjcnRjLCBvbGRfY3J0Y19zdGF0ZSwgaSkKIAkJZHB1X2NydGNfY29t cGxldGVfY29tbWl0KGNydGMsIG9sZF9jcnRjX3N0YXRlKTsKIAotCWRwdV9wb3dlcl9yZXNvdXJj ZV9lbmFibGUoJnByaXYtPnBoYW5kbGUsIGRwdV9rbXMtPmNvcmVfY2xpZW50LCBmYWxzZSk7Ci0J cG1fcnVudGltZV9wdXRfc3luYyhkcHVfa21zLT5kZXYtPmRldik7CisJcG1fcnVudGltZV9wdXRf c3luYygmZHB1X2ttcy0+cGRldi0+ZGV2KTsKIAogCURQVV9FVlQzMl9WRVJCT1NFKERQVV9FVlRM T0dfRlVOQ19FWElUKTsKIH0KQEAgLTE2MjQsMTMgKzE2MDgsOCBAQCBzdGF0aWMgaW50IGRwdV9r bXNfaHdfaW5pdChzdHJ1Y3QgbXNtX2ttcyAqa21zKQogCQlkcHVfa21zLT5jb3JlX2NsaWVudCA9 IE5VTEw7CiAJCWdvdG8gZXJyb3I7CiAJfQotCXBtX3J1bnRpbWVfZ2V0X3N5bmMoZGV2LT5kZXYp OwotCXJjID0gZHB1X3Bvd2VyX3Jlc291cmNlX2VuYWJsZSgmcHJpdi0+cGhhbmRsZSwgZHB1X2tt cy0+Y29yZV9jbGllbnQsCi0JCXRydWUpOwotCWlmIChyYykgewotCQlEUFVfRVJST1IoInJlc291 cmNlIGVuYWJsZSBmYWlsZWQ6ICVkXG4iLCByYyk7Ci0JCWdvdG8gZXJyb3I7Ci0JfQorCisJcG1f cnVudGltZV9nZXRfc3luYygmZHB1X2ttcy0+cGRldi0+ZGV2KTsKIAogCV9kcHVfa21zX2NvcmVf aHdfcmV2X2luaXQoZHB1X2ttcyk7CiAKQEAgLTE3NjUsOCArMTc0NCw3IEBAIHN0YXRpYyBpbnQg ZHB1X2ttc19od19pbml0KHN0cnVjdCBtc21fa21zICprbXMpCiAJCQlEUFVfUE9XRVJfRVZFTlRf UE9TVF9FTkFCTEUsCiAJCQlkcHVfa21zX2hhbmRsZV9wb3dlcl9ldmVudCwgZHB1X2ttcywgImtt cyIpOwogCi0JZHB1X3Bvd2VyX3Jlc291cmNlX2VuYWJsZSgmcHJpdi0+cGhhbmRsZSwgZHB1X2tt cy0+Y29yZV9jbGllbnQsIGZhbHNlKTsKLQlwbV9ydW50aW1lX3B1dF9zeW5jKGRldi0+ZGV2KTsK KwlwbV9ydW50aW1lX3B1dF9zeW5jKCZkcHVfa21zLT5wZGV2LT5kZXYpOwogCiAJcmV0dXJuIDA7 CiAKQEAgLTE3NzUsOCArMTc1Myw3IEBAIHN0YXRpYyBpbnQgZHB1X2ttc19od19pbml0KHN0cnVj dCBtc21fa21zICprbXMpCiBod19pbnRyX2luaXRfZXJyOgogcGVyZl9lcnI6CiBwb3dlcl9lcnJv cjoKLQlkcHVfcG93ZXJfcmVzb3VyY2VfZW5hYmxlKCZwcml2LT5waGFuZGxlLCBkcHVfa21zLT5j b3JlX2NsaWVudCwgZmFsc2UpOwotCXBtX3J1bnRpbWVfcHV0X3N5bmMoZGV2LT5kZXYpOworCXBt X3J1bnRpbWVfcHV0X3N5bmMoJmRwdV9rbXMtPnBkZXYtPmRldik7CiBlcnJvcjoKIAlfZHB1X2tt c19od19kZXN0cm95KGRwdV9rbXMpOwogZW5kOgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L21zbS9kaXNwL2RwdTEvZHB1X3BsYW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1 MS9kcHVfcGxhbmUuYwppbmRleCBiYTUyMzBkLi5jZjZjM2ZkIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfcGxhbmUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v bXNtL2Rpc3AvZHB1MS9kcHVfcGxhbmUuYwpAQCAtNDc2LDExICs0NzYsOSBAQCBpbnQgZHB1X3Bs YW5lX2Rhbmdlcl9zaWduYWxfY3RybChzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwgYm9vbCBlbmFi bGUpCiAJaWYgKCFwZHB1LT5pc19ydF9waXBlKQogCQlnb3RvIGVuZDsKIAotCWRwdV9wb3dlcl9y ZXNvdXJjZV9lbmFibGUoJnByaXYtPnBoYW5kbGUsIGRwdV9rbXMtPmNvcmVfY2xpZW50LCB0cnVl KTsKLQorCXBtX3J1bnRpbWVfZ2V0X3N5bmMoJmRwdV9rbXMtPnBkZXYtPmRldik7CiAJX2RwdV9w bGFuZV9zZXRfcW9zX2N0cmwocGxhbmUsIGVuYWJsZSwgRFBVX1BMQU5FX1FPU19QQU5JQ19DVFJM KTsKLQotCWRwdV9wb3dlcl9yZXNvdXJjZV9lbmFibGUoJnByaXYtPnBoYW5kbGUsIGRwdV9rbXMt PmNvcmVfY2xpZW50LCBmYWxzZSk7CisJcG1fcnVudGltZV9wdXRfc3luYygmZHB1X2ttcy0+cGRl di0+ZGV2KTsKIAogZW5kOgogCXJldHVybiAwOwotLSAKVGhlIFF1YWxjb21tIElubm92YXRpb24g Q2VudGVyLCBJbmMuIGlzIGEgbWVtYmVyIG9mIHRoZSBDb2RlIEF1cm9yYSBGb3J1bSwKYSBMaW51 eCBGb3VuZGF0aW9uIENvbGxhYm9yYXRpdmUgUHJvamVjdAoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KRnJlZWRyZW5vIG1haWxpbmcgbGlzdApGcmVlZHJl bm9AbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vZnJlZWRyZW5vCg==