From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rajesh Yadav Subject: [DPU PATCH v2 06/12] drm/msm/dpu: use runtime_pm calls on dpu device Date: Fri, 11 May 2018 20:19:32 +0530 Message-ID: <1526050178-31893-7-git-send-email-ryadav@codeaurora.org> References: <1526050178-31893-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: <1526050178-31893-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 cyBpbiB2MjoKCS0gbm9uZQoKU2lnbmVkLW9mZi1ieTogUmFqZXNoIFlhZGF2IDxyeWFkYXZAY29k ZWF1cm9yYS5vcmc+ClJldmlld2VkLWJ5OiBTZWFuIFBhdWwgPHNlYW5wYXVsQGNocm9taXVtLm9y Zz4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY29yZV9pcnEuYyB8ICA4 ICsrLS0tCiBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5jICAgICB8IDEy ICsrKystLS0tCiBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlci5jICB8 IDE2ICsrKysrLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9rbXMuYyAg ICAgIHwgNDUgKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL21z bS9kaXNwL2RwdTEvZHB1X3BsYW5lLmMgICAgfCAgNiArKy0tCiA1IGZpbGVzIGNoYW5nZWQsIDMx IGluc2VydGlvbnMoKyksIDU2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jb3JlX2lycS5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9k aXNwL2RwdTEvZHB1X2NvcmVfaXJxLmMKaW5kZXggOTc3YWRjNC4uNWM1Y2M1NiAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NvcmVfaXJxLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NvcmVfaXJxLmMKQEAgLTQ1MiwxMCArNDUy LDEwIEBAIHZvaWQgZHB1X2NvcmVfaXJxX3ByZWluc3RhbGwoc3RydWN0IGRwdV9rbXMgKmRwdV9r bXMpCiAJfQogCXByaXYgPSBkcHVfa21zLT5kZXYtPmRldl9wcml2YXRlOwogCi0JZHB1X3Bvd2Vy X3Jlc291cmNlX2VuYWJsZSgmcHJpdi0+cGhhbmRsZSwgZHB1X2ttcy0+Y29yZV9jbGllbnQsIHRy dWUpOworCXBtX3J1bnRpbWVfZ2V0X3N5bmMoJmRwdV9rbXMtPnBkZXYtPmRldik7CiAJZHB1X2Ns ZWFyX2FsbF9pcnFzKGRwdV9rbXMpOwogCWRwdV9kaXNhYmxlX2FsbF9pcnFzKGRwdV9rbXMpOwot CWRwdV9wb3dlcl9yZXNvdXJjZV9lbmFibGUoJnByaXYtPnBoYW5kbGUsIGRwdV9rbXMtPmNvcmVf Y2xpZW50LCBmYWxzZSk7CisJcG1fcnVudGltZV9wdXRfc3luYygmZHB1X2ttcy0+cGRldi0+ZGV2 KTsKIAogCXNwaW5fbG9ja19pbml0KCZkcHVfa21zLT5pcnFfb2JqLmNiX2xvY2spOwogCkBAIC00 OTYsNyArNDk2LDcgQEAgdm9pZCBkcHVfY29yZV9pcnFfdW5pbnN0YWxsKHN0cnVjdCBkcHVfa21z ICpkcHVfa21zKQogCX0KIAlwcml2ID0gZHB1X2ttcy0+ZGV2LT5kZXZfcHJpdmF0ZTsKIAotCWRw dV9wb3dlcl9yZXNvdXJjZV9lbmFibGUoJnByaXYtPnBoYW5kbGUsIGRwdV9rbXMtPmNvcmVfY2xp ZW50LCB0cnVlKTsKKwlwbV9ydW50aW1lX2dldF9zeW5jKCZkcHVfa21zLT5wZGV2LT5kZXYpOwog CWZvciAoaSA9IDA7IGkgPCBkcHVfa21zLT5pcnFfb2JqLnRvdGFsX2lycXM7IGkrKykKIAkJaWYg KGF0b21pY19yZWFkKCZkcHVfa21zLT5pcnFfb2JqLmVuYWJsZV9jb3VudHNbaV0pIHx8CiAJCQkJ IWxpc3RfZW1wdHkoJmRwdV9rbXMtPmlycV9vYmouaXJxX2NiX3RibFtpXSkpCkBAIC01MDQsNyAr NTA0LDcgQEAgdm9pZCBkcHVfY29yZV9pcnFfdW5pbnN0YWxsKHN0cnVjdCBkcHVfa21zICpkcHVf a21zKQogCiAJZHB1X2NsZWFyX2FsbF9pcnFzKGRwdV9rbXMpOwogCWRwdV9kaXNhYmxlX2FsbF9p cnFzKGRwdV9rbXMpOwotCWRwdV9wb3dlcl9yZXNvdXJjZV9lbmFibGUoJnByaXYtPnBoYW5kbGUs IGRwdV9rbXMtPmNvcmVfY2xpZW50LCBmYWxzZSk7CisJcG1fcnVudGltZV9wdXRfc3luYygmZHB1 X2ttcy0+cGRldi0+ZGV2KTsKIAogCWtmcmVlKGRwdV9rbXMtPmlycV9vYmouaXJxX2NiX3RibCk7 CiAJa2ZyZWUoZHB1X2ttcy0+aXJxX29iai5lbmFibGVfY291bnRzKTsKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jcnRjLmMgYi9kcml2ZXJzL2dwdS9kcm0v bXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5jCmluZGV4IDQ4OTIwYjA1Li5lMmQyZTMyIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jcnRjLmMKQEAgLTg2LDggKzg2LDEyIEBAIHN0 YXRpYyBpbmxpbmUgaW50IF9kcHVfY3J0Y19wb3dlcl9lbmFibGUoc3RydWN0IGRwdV9jcnRjICpk cHVfY3J0YywgYm9vbCBlbmFibGUpCiAKIAlkcHVfa21zID0gdG9fZHB1X2ttcyhwcml2LT5rbXMp OwogCi0JcmV0dXJuIGRwdV9wb3dlcl9yZXNvdXJjZV9lbmFibGUoJnByaXYtPnBoYW5kbGUsIGRw dV9rbXMtPmNvcmVfY2xpZW50LAotCQkJCQkJCQkJZW5hYmxlKTsKKwlpZiAoZW5hYmxlKQorCQlw bV9ydW50aW1lX2dldF9zeW5jKCZkcHVfa21zLT5wZGV2LT5kZXYpOworCWVsc2UKKwkJcG1fcnVu dGltZV9wdXRfc3luYygmZHB1X2ttcy0+cGRldi0+ZGV2KTsKKworCXJldHVybiAwOwogfQogCiAv KioKQEAgLTIyNTAsNyArMjI1NCw2IEBAIHN0YXRpYyBpbnQgX2RwdV9jcnRjX3ZibGFua19lbmFi bGVfbm9fbG9jaygKIAogCQkvKiBkcm9wIGxvY2sgc2luY2UgcG93ZXIgY3J0YyBjYiBtYXkgdHJ5 IHRvIHJlLWFjcXVpcmUgbG9jayAqLwogCQltdXRleF91bmxvY2soJmRwdV9jcnRjLT5jcnRjX2xv Y2spOwotCQlwbV9ydW50aW1lX2dldF9zeW5jKGRldi0+ZGV2KTsKIAkJcmV0ID0gX2RwdV9jcnRj X3Bvd2VyX2VuYWJsZShkcHVfY3J0YywgdHJ1ZSk7CiAJCW11dGV4X2xvY2soJmRwdV9jcnRjLT5j cnRjX2xvY2spOwogCQlpZiAocmV0KQpAQCAtMjU4MCw3ICsyNTgzLDYgQEAgc3RhdGljIHZvaWQg ZHB1X2NydGNfZGlzYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJLyogZGlzYWJsZSBjbGsg JiBidyBjb250cm9sIHVudGlsIGNsayAmIGJ3IHByb3BlcnRpZXMgYXJlIHNldCAqLwogCWNzdGF0 ZS0+YndfY29udHJvbCA9IGZhbHNlOwogCWNzdGF0ZS0+Yndfc3BsaXRfdm90ZSA9IGZhbHNlOwot CXBtX3J1bnRpbWVfcHV0X3N5bmMoY3J0Yy0+ZGV2LT5kZXYpOwogCiAJbXV0ZXhfdW5sb2NrKCZk cHVfY3J0Yy0+Y3J0Y19sb2NrKTsKIH0KQEAgLTI2MTEsOCArMjYxMyw2IEBAIHN0YXRpYyB2b2lk IGRwdV9jcnRjX2VuYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCXJldHVybjsKIAl9CiAK LQlwbV9ydW50aW1lX2dldF9zeW5jKGNydGMtPmRldi0+ZGV2KTsKLQogCWRybV9mb3JfZWFjaF9l bmNvZGVyKGVuY29kZXIsIGNydGMtPmRldikgewogCQlpZiAoZW5jb2Rlci0+Y3J0YyAhPSBjcnRj KQogCQkJY29udGludWU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1 MS9kcHVfZW5jb2Rlci5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29k ZXIuYwppbmRleCA0Mzg2MzYwLi4yOThhNmVmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v bXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlz cC9kcHUxL2RwdV9lbmNvZGVyLmMKQEAgLTI2OCw4ICsyNjgsMTIgQEAgc3RhdGljIGlubGluZSBp bnQgX2RwdV9lbmNvZGVyX3Bvd2VyX2VuYWJsZShzdHJ1Y3QgZHB1X2VuY29kZXJfdmlydCAqZHB1 X2VuYywKIAogCWRwdV9rbXMgPSB0b19kcHVfa21zKHByaXYtPmttcyk7CiAKLQlyZXR1cm4gZHB1 X3Bvd2VyX3Jlc291cmNlX2VuYWJsZSgmcHJpdi0+cGhhbmRsZSwgZHB1X2ttcy0+Y29yZV9jbGll bnQsCi0JCQkJCQkJCQllbmFibGUpOworCWlmIChlbmFibGUpCisJCXBtX3J1bnRpbWVfZ2V0X3N5 bmMoJmRwdV9rbXMtPnBkZXYtPmRldik7CisJZWxzZQorCQlwbV9ydW50aW1lX3B1dF9zeW5jKCZk cHVfa21zLT5wZGV2LT5kZXYpOworCisJcmV0dXJuIDA7CiB9CiAKIHZvaWQgZHB1X2VuY29kZXJf aGVscGVyX3JlcG9ydF9pcnFfdGltZW91dChzdHJ1Y3QgZHB1X2VuY29kZXJfcGh5cyAqcGh5c19l bmMsCkBAIC03OTYsMTAgKzgwMCw4IEBAIHN0YXRpYyB2b2lkIF9kcHVfZW5jb2Rlcl9yZXNvdXJj ZV9jb250cm9sX2hlbHBlcihzdHJ1Y3QgZHJtX2VuY29kZXIgKmRybV9lbmMsCiAJfQogCiAJaWYg KGVuYWJsZSkgewotCQlwbV9ydW50aW1lX2dldF9zeW5jKGRwdV9rbXMtPmRldi0+ZGV2KTsKIAkJ LyogZW5hYmxlIERQVSBjb3JlIGNsa3MgKi8KLQkJZHB1X3Bvd2VyX3Jlc291cmNlX2VuYWJsZSgm cHJpdi0+cGhhbmRsZSwKLQkJCQlkcHVfa21zLT5jb3JlX2NsaWVudCwgdHJ1ZSk7CisJCXBtX3J1 bnRpbWVfZ2V0X3N5bmMoJmRwdV9rbXMtPnBkZXYtPmRldik7CiAKIAkJLyogZW5hYmxlIGFsbCB0 aGUgaXJxICovCiAJCV9kcHVfZW5jb2Rlcl9pcnFfY29udHJvbChkcm1fZW5jLCB0cnVlKTsKQEAg LTgwOSw5ICs4MTEsNyBAQCBzdGF0aWMgdm9pZCBfZHB1X2VuY29kZXJfcmVzb3VyY2VfY29udHJv bF9oZWxwZXIoc3RydWN0IGRybV9lbmNvZGVyICpkcm1fZW5jLAogCQlfZHB1X2VuY29kZXJfaXJx X2NvbnRyb2woZHJtX2VuYywgZmFsc2UpOwogCiAJCS8qIGRpc2FibGUgRFBVIGNvcmUgY2xrcyAq LwotCQlkcHVfcG93ZXJfcmVzb3VyY2VfZW5hYmxlKCZwcml2LT5waGFuZGxlLAotCQkJCWRwdV9r bXMtPmNvcmVfY2xpZW50LCBmYWxzZSk7Ci0JCXBtX3J1bnRpbWVfcHV0X3N5bmMoZHB1X2ttcy0+ ZGV2LT5kZXYpOworCQlwbV9ydW50aW1lX3B1dF9zeW5jKCZkcHVfa21zLT5wZGV2LT5kZXYpOwog CX0KIAogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2tt cy5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2ttcy5jCmluZGV4IDg1ZjNk YmMuLmNkYTRkMTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2Rw dV9rbXMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfa21zLmMKQEAg LTEwMCw4ICsxMDAsNyBAQCBzdGF0aWMgaW50IF9kcHVfZGFuZ2VyX3NpZ25hbF9zdGF0dXMoc3Ry dWN0IHNlcV9maWxlICpzLAogCXByaXYgPSBrbXMtPmRldi0+ZGV2X3ByaXZhdGU7CiAJbWVtc2V0 KCZzdGF0dXMsIDAsIHNpemVvZihzdHJ1Y3QgZHB1X2Rhbmdlcl9zYWZlX3N0YXR1cykpOwogCi0J cG1fcnVudGltZV9nZXRfc3luYyhrbXMtPmRldi0+ZGV2KTsKLQlkcHVfcG93ZXJfcmVzb3VyY2Vf ZW5hYmxlKCZwcml2LT5waGFuZGxlLCBrbXMtPmNvcmVfY2xpZW50LCB0cnVlKTsKKwlwbV9ydW50 aW1lX2dldF9zeW5jKCZrbXMtPnBkZXYtPmRldik7CiAJaWYgKGRhbmdlcl9zdGF0dXMpIHsKIAkJ c2VxX3B1dHMocywgIlxuRGFuZ2VyIHNpZ25hbCBzdGF0dXM6XG4iKTsKIAkJaWYgKGttcy0+aHdf bWRwLT5vcHMuZ2V0X2Rhbmdlcl9zdGF0dXMpCkBAIC0xMTMsOCArMTEyLDcgQEAgc3RhdGljIGlu dCBfZHB1X2Rhbmdlcl9zaWduYWxfc3RhdHVzKHN0cnVjdCBzZXFfZmlsZSAqcywKIAkJCWttcy0+ aHdfbWRwLT5vcHMuZ2V0X2Rhbmdlcl9zdGF0dXMoa21zLT5od19tZHAsCiAJCQkJCSZzdGF0dXMp OwogCX0KLQlkcHVfcG93ZXJfcmVzb3VyY2VfZW5hYmxlKCZwcml2LT5waGFuZGxlLCBrbXMtPmNv cmVfY2xpZW50LCBmYWxzZSk7Ci0JcG1fcnVudGltZV9wdXRfc3luYyhrbXMtPmRldi0+ZGV2KTsK KwlwbV9ydW50aW1lX3B1dF9zeW5jKCZrbXMtPnBkZXYtPmRldik7CiAKIAlzZXFfcHJpbnRmKHMs ICJNRFAgICAgIDogIDB4JXhcbiIsIHN0YXR1cy5tZHApOwogCkBAIC0yMTUsMTEgKzIxMyw3IEBA IHN0YXRpYyBpbnQgX2RwdV9kZWJ1Z2ZzX3Nob3dfcmVnc2V0MzIoc3RydWN0IHNlcV9maWxlICpz LCB2b2lkICpkYXRhKQogCQkJc2VxX3B1dHMocywgIiAgICAgICAgICIpOwogCX0KIAotCWlmIChk cHVfcG93ZXJfcmVzb3VyY2VfZW5hYmxlKCZwcml2LT5waGFuZGxlLAotCQkJCWRwdV9rbXMtPmNv cmVfY2xpZW50LCB0cnVlKSkgewotCQlzZXFfcHV0cyhzLCAiZmFpbGVkIHRvIGVuYWJsZSBkcHUg Y2xvY2tzXG4iKTsKLQkJcmV0dXJuIDA7Ci0JfQorCXBtX3J1bnRpbWVfZ2V0X3N5bmMoJmRwdV9r bXMtPnBkZXYtPmRldik7CiAKIAkvKiBtYWluIHJlZ2lzdGVyIG91dHB1dCAqLwogCWZvciAoaSA9 IDA7IGkgPCByZWdzZXQtPmJsa19sZW47IGkgKz0gNCkgewpAQCAtMjI5LDcgKzIyMyw3IEBAIHN0 YXRpYyBpbnQgX2RwdV9kZWJ1Z2ZzX3Nob3dfcmVnc2V0MzIoc3RydWN0IHNlcV9maWxlICpzLCB2 b2lkICpkYXRhKQogCQlzZXFfcHJpbnRmKHMsICIgJTA4eCIsIHJlYWRsX3JlbGF4ZWQoYmFzZSAr IGkpKTsKIAl9CiAJc2VxX3B1dHMocywgIlxuIik7Ci0JZHB1X3Bvd2VyX3Jlc291cmNlX2VuYWJs ZSgmcHJpdi0+cGhhbmRsZSwgZHB1X2ttcy0+Y29yZV9jbGllbnQsIGZhbHNlKTsKKwlwbV9ydW50 aW1lX3B1dF9zeW5jKCZkcHVfa21zLT5wZGV2LT5kZXYpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0z MzQsMjAgKzMyOCwxMiBAQCBzdGF0aWMgdm9pZCBfZHB1X2RlYnVnZnNfZGVzdHJveShzdHJ1Y3Qg ZHB1X2ttcyAqZHB1X2ttcykKIAogc3RhdGljIGludCBkcHVfa21zX2VuYWJsZV92Ymxhbmsoc3Ry dWN0IG1zbV9rbXMgKmttcywgc3RydWN0IGRybV9jcnRjICpjcnRjKQogewotCWludCByZXQ7Ci0K LQlwbV9ydW50aW1lX2dldF9zeW5jKGNydGMtPmRldi0+ZGV2KTsKLQlyZXQgPSBkcHVfY3J0Y192 YmxhbmsoY3J0YywgdHJ1ZSk7Ci0JcG1fcnVudGltZV9wdXRfc3luYyhjcnRjLT5kZXYtPmRldik7 Ci0KLQlyZXR1cm4gcmV0OworCXJldHVybiBkcHVfY3J0Y192YmxhbmsoY3J0YywgdHJ1ZSk7CiB9 CiAKIHN0YXRpYyB2b2lkIGRwdV9rbXNfZGlzYWJsZV92Ymxhbmsoc3RydWN0IG1zbV9rbXMgKmtt cywgc3RydWN0IGRybV9jcnRjICpjcnRjKQogewotCXBtX3J1bnRpbWVfZ2V0X3N5bmMoY3J0Yy0+ ZGV2LT5kZXYpOwogCWRwdV9jcnRjX3ZibGFuayhjcnRjLCBmYWxzZSk7Ci0JcG1fcnVudGltZV9w dXRfc3luYyhjcnRjLT5kZXYtPmRldik7CiB9CiAKIHN0YXRpYyB2b2lkIGRwdV9rbXNfd2FpdF9m b3JfZnJhbWVfdHJhbnNmZXJfY29tcGxldGUoc3RydWN0IG1zbV9rbXMgKmttcywKQEAgLTQwOSw4 ICszOTUsNyBAQCBzdGF0aWMgdm9pZCBkcHVfa21zX3ByZXBhcmVfY29tbWl0KHN0cnVjdCBtc21f a21zICprbXMsCiAJaWYgKCFkZXYgfHwgIWRldi0+ZGV2X3ByaXZhdGUpCiAJCXJldHVybjsKIAlw cml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlwbV9ydW50aW1lX2dldF9zeW5jKGRldi0+ZGV2KTsK LQlkcHVfcG93ZXJfcmVzb3VyY2VfZW5hYmxlKCZwcml2LT5waGFuZGxlLCBkcHVfa21zLT5jb3Jl X2NsaWVudCwgdHJ1ZSk7CisJcG1fcnVudGltZV9nZXRfc3luYygmZHB1X2ttcy0+cGRldi0+ZGV2 KTsKIAogCWxpc3RfZm9yX2VhY2hfZW50cnkoZW5jb2RlciwgJmRldi0+bW9kZV9jb25maWcuZW5j b2Rlcl9saXN0LCBoZWFkKQogCQlpZiAoZW5jb2Rlci0+Y3J0YyAhPSBOVUxMKQpAQCAtNDc0LDgg KzQ1OSw3IEBAIHN0YXRpYyB2b2lkIGRwdV9rbXNfY29tcGxldGVfY29tbWl0KHN0cnVjdCBtc21f a21zICprbXMsCiAJZm9yX2VhY2hfb2xkX2NydGNfaW5fc3RhdGUob2xkX3N0YXRlLCBjcnRjLCBv bGRfY3J0Y19zdGF0ZSwgaSkKIAkJZHB1X2NydGNfY29tcGxldGVfY29tbWl0KGNydGMsIG9sZF9j cnRjX3N0YXRlKTsKIAotCWRwdV9wb3dlcl9yZXNvdXJjZV9lbmFibGUoJnByaXYtPnBoYW5kbGUs IGRwdV9rbXMtPmNvcmVfY2xpZW50LCBmYWxzZSk7Ci0JcG1fcnVudGltZV9wdXRfc3luYyhkcHVf a21zLT5kZXYtPmRldik7CisJcG1fcnVudGltZV9wdXRfc3luYygmZHB1X2ttcy0+cGRldi0+ZGV2 KTsKIAogCURQVV9FVlQzMl9WRVJCT1NFKERQVV9FVlRMT0dfRlVOQ19FWElUKTsKIH0KQEAgLTE2 MjQsMTMgKzE2MDgsOCBAQCBzdGF0aWMgaW50IGRwdV9rbXNfaHdfaW5pdChzdHJ1Y3QgbXNtX2tt cyAqa21zKQogCQlkcHVfa21zLT5jb3JlX2NsaWVudCA9IE5VTEw7CiAJCWdvdG8gZXJyb3I7CiAJ fQotCXBtX3J1bnRpbWVfZ2V0X3N5bmMoZGV2LT5kZXYpOwotCXJjID0gZHB1X3Bvd2VyX3Jlc291 cmNlX2VuYWJsZSgmcHJpdi0+cGhhbmRsZSwgZHB1X2ttcy0+Y29yZV9jbGllbnQsCi0JCXRydWUp OwotCWlmIChyYykgewotCQlEUFVfRVJST1IoInJlc291cmNlIGVuYWJsZSBmYWlsZWQ6ICVkXG4i LCByYyk7Ci0JCWdvdG8gZXJyb3I7Ci0JfQorCisJcG1fcnVudGltZV9nZXRfc3luYygmZHB1X2tt cy0+cGRldi0+ZGV2KTsKIAogCV9kcHVfa21zX2NvcmVfaHdfcmV2X2luaXQoZHB1X2ttcyk7CiAK QEAgLTE3NjUsOCArMTc0NCw3IEBAIHN0YXRpYyBpbnQgZHB1X2ttc19od19pbml0KHN0cnVjdCBt c21fa21zICprbXMpCiAJCQlEUFVfUE9XRVJfRVZFTlRfUE9TVF9FTkFCTEUsCiAJCQlkcHVfa21z X2hhbmRsZV9wb3dlcl9ldmVudCwgZHB1X2ttcywgImttcyIpOwogCi0JZHB1X3Bvd2VyX3Jlc291 cmNlX2VuYWJsZSgmcHJpdi0+cGhhbmRsZSwgZHB1X2ttcy0+Y29yZV9jbGllbnQsIGZhbHNlKTsK LQlwbV9ydW50aW1lX3B1dF9zeW5jKGRldi0+ZGV2KTsKKwlwbV9ydW50aW1lX3B1dF9zeW5jKCZk cHVfa21zLT5wZGV2LT5kZXYpOwogCiAJcmV0dXJuIDA7CiAKQEAgLTE3NzUsOCArMTc1Myw3IEBA IHN0YXRpYyBpbnQgZHB1X2ttc19od19pbml0KHN0cnVjdCBtc21fa21zICprbXMpCiBod19pbnRy X2luaXRfZXJyOgogcGVyZl9lcnI6CiBwb3dlcl9lcnJvcjoKLQlkcHVfcG93ZXJfcmVzb3VyY2Vf ZW5hYmxlKCZwcml2LT5waGFuZGxlLCBkcHVfa21zLT5jb3JlX2NsaWVudCwgZmFsc2UpOwotCXBt X3J1bnRpbWVfcHV0X3N5bmMoZGV2LT5kZXYpOworCXBtX3J1bnRpbWVfcHV0X3N5bmMoJmRwdV9r bXMtPnBkZXYtPmRldik7CiBlcnJvcjoKIAlfZHB1X2ttc19od19kZXN0cm95KGRwdV9rbXMpOwog ZW5kOgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3BsYW5l LmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfcGxhbmUuYwppbmRleCBiYTUy MzBkLi5jZjZjM2ZkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9k cHVfcGxhbmUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfcGxhbmUu YwpAQCAtNDc2LDExICs0NzYsOSBAQCBpbnQgZHB1X3BsYW5lX2Rhbmdlcl9zaWduYWxfY3RybChz dHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwgYm9vbCBlbmFibGUpCiAJaWYgKCFwZHB1LT5pc19ydF9w aXBlKQogCQlnb3RvIGVuZDsKIAotCWRwdV9wb3dlcl9yZXNvdXJjZV9lbmFibGUoJnByaXYtPnBo YW5kbGUsIGRwdV9rbXMtPmNvcmVfY2xpZW50LCB0cnVlKTsKLQorCXBtX3J1bnRpbWVfZ2V0X3N5 bmMoJmRwdV9rbXMtPnBkZXYtPmRldik7CiAJX2RwdV9wbGFuZV9zZXRfcW9zX2N0cmwocGxhbmUs IGVuYWJsZSwgRFBVX1BMQU5FX1FPU19QQU5JQ19DVFJMKTsKLQotCWRwdV9wb3dlcl9yZXNvdXJj ZV9lbmFibGUoJnByaXYtPnBoYW5kbGUsIGRwdV9rbXMtPmNvcmVfY2xpZW50LCBmYWxzZSk7CisJ cG1fcnVudGltZV9wdXRfc3luYygmZHB1X2ttcy0+cGRldi0+ZGV2KTsKIAogZW5kOgogCXJldHVy biAwOwotLSAKVGhlIFF1YWxjb21tIElubm92YXRpb24gQ2VudGVyLCBJbmMuIGlzIGEgbWVtYmVy IG9mIHRoZSBDb2RlIEF1cm9yYSBGb3J1bSwKYSBMaW51eCBGb3VuZGF0aW9uIENvbGxhYm9yYXRp dmUgUHJvamVjdAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KRnJlZWRyZW5vIG1haWxpbmcgbGlzdApGcmVlZHJlbm9AbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZnJlZWRyZW5v Cg==