From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Paul Subject: Re: [DPU PATCH 06/11] drm/msm/dpu: use runtime_pm calls on dpu device Date: Thu, 10 May 2018 11:04:30 -0400 Message-ID: <20180510150430.GF33053@art_vandelay> References: <1525940985-30428-1-git-send-email-ryadav@codeaurora.org> <1525940985-30428-7-git-send-email-ryadav@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <1525940985-30428-7-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: Rajesh Yadav Cc: linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, hoegsberg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org T24gVGh1LCBNYXkgMTAsIDIwMTggYXQgMDE6NTk6NDBQTSArMDUzMCwgUmFqZXNoIFlhZGF2IHdy b3RlOgo+IFRoZSBkcHUgZHJpdmVyIGltcGxlbWVudHMgcnVudGltZV9wbSBzdXBwb3J0IGZvciBt YW5hZ2luZwo+IGRwdSBzcGVjaWZpYyByZXNvdXJjZXMgbGlrZSAtIGNsb2NrcywgYnVzIGJhbmR3 aWR0aCBldGMuCj4gCj4gVXNlIHBtX3J1bnRpbWVfZ2V0L3B1dF9zeW5jIGNhbGxzIG9uIGRwdSBk ZXZpY2UuCj4gCj4gVGhlIGNvbW1vbiBjbG9ja3MgYW5kIHBvd2VyIG1hbmFnZW1lbnQgZm9yIGFs bCBjaGlsZCBub2Rlcwo+IChtZHA1L2RwdSwgZHNpLCBkcCBldGMpIGlzIGRvbmUgYnkgcGFyZW50 IE1EU1MgZGV2aWNlL2RyaXZlcgo+IHZpYSBydW50aW1lX3BtIGR1ZSB0byBwYXJlbnQgY2hpbGQg cmVsYXRpb25zaGlwLgo+IAo+IFNpZ25lZC1vZmYtYnk6IFJhamVzaCBZYWRhdiA8cnlhZGF2QGNv ZGVhdXJvcmEub3JnPgoKUmV2aWV3ZWQtYnk6IFNlYW4gUGF1bCA8c2VhbnBhdWxAY2hyb21pdW0u b3JnPgoKPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NvcmVfaXJx LmMgfCAgOCArKy0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5j ICAgICB8IDEyICsrKystLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9l bmNvZGVyLmMgIHwgMTYgKysrKystLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1 MS9kcHVfa21zLmMgICAgICB8IDQ1ICsrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAgZHJp dmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3BsYW5lLmMgICAgfCAgNiArKy0tCj4gIDUg ZmlsZXMgY2hhbmdlZCwgMzEgaW5zZXJ0aW9ucygrKSwgNTYgZGVsZXRpb25zKC0pCj4gCj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jb3JlX2lycS5jIGIv ZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NvcmVfaXJxLmMKPiBpbmRleCA5Nzdh ZGM0Li41YzVjYzU2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUx L2RwdV9jb3JlX2lycS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1 X2NvcmVfaXJxLmMKPiBAQCAtNDUyLDEwICs0NTIsMTAgQEAgdm9pZCBkcHVfY29yZV9pcnFfcHJl aW5zdGFsbChzdHJ1Y3QgZHB1X2ttcyAqZHB1X2ttcykKPiAgCX0KPiAgCXByaXYgPSBkcHVfa21z LT5kZXYtPmRldl9wcml2YXRlOwo+ICAKPiAtCWRwdV9wb3dlcl9yZXNvdXJjZV9lbmFibGUoJnBy aXYtPnBoYW5kbGUsIGRwdV9rbXMtPmNvcmVfY2xpZW50LCB0cnVlKTsKPiArCXBtX3J1bnRpbWVf Z2V0X3N5bmMoJmRwdV9rbXMtPnBkZXYtPmRldik7Cj4gIAlkcHVfY2xlYXJfYWxsX2lycXMoZHB1 X2ttcyk7Cj4gIAlkcHVfZGlzYWJsZV9hbGxfaXJxcyhkcHVfa21zKTsKPiAtCWRwdV9wb3dlcl9y ZXNvdXJjZV9lbmFibGUoJnByaXYtPnBoYW5kbGUsIGRwdV9rbXMtPmNvcmVfY2xpZW50LCBmYWxz ZSk7Cj4gKwlwbV9ydW50aW1lX3B1dF9zeW5jKCZkcHVfa21zLT5wZGV2LT5kZXYpOwo+ICAKPiAg CXNwaW5fbG9ja19pbml0KCZkcHVfa21zLT5pcnFfb2JqLmNiX2xvY2spOwo+ICAKPiBAQCAtNDk2 LDcgKzQ5Niw3IEBAIHZvaWQgZHB1X2NvcmVfaXJxX3VuaW5zdGFsbChzdHJ1Y3QgZHB1X2ttcyAq ZHB1X2ttcykKPiAgCX0KPiAgCXByaXYgPSBkcHVfa21zLT5kZXYtPmRldl9wcml2YXRlOwo+ICAK PiAtCWRwdV9wb3dlcl9yZXNvdXJjZV9lbmFibGUoJnByaXYtPnBoYW5kbGUsIGRwdV9rbXMtPmNv cmVfY2xpZW50LCB0cnVlKTsKPiArCXBtX3J1bnRpbWVfZ2V0X3N5bmMoJmRwdV9rbXMtPnBkZXYt PmRldik7Cj4gIAlmb3IgKGkgPSAwOyBpIDwgZHB1X2ttcy0+aXJxX29iai50b3RhbF9pcnFzOyBp KyspCj4gIAkJaWYgKGF0b21pY19yZWFkKCZkcHVfa21zLT5pcnFfb2JqLmVuYWJsZV9jb3VudHNb aV0pIHx8Cj4gIAkJCQkhbGlzdF9lbXB0eSgmZHB1X2ttcy0+aXJxX29iai5pcnFfY2JfdGJsW2ld KSkKPiBAQCAtNTA0LDcgKzUwNCw3IEBAIHZvaWQgZHB1X2NvcmVfaXJxX3VuaW5zdGFsbChzdHJ1 Y3QgZHB1X2ttcyAqZHB1X2ttcykKPiAgCj4gIAlkcHVfY2xlYXJfYWxsX2lycXMoZHB1X2ttcyk7 Cj4gIAlkcHVfZGlzYWJsZV9hbGxfaXJxcyhkcHVfa21zKTsKPiAtCWRwdV9wb3dlcl9yZXNvdXJj ZV9lbmFibGUoJnByaXYtPnBoYW5kbGUsIGRwdV9rbXMtPmNvcmVfY2xpZW50LCBmYWxzZSk7Cj4g KwlwbV9ydW50aW1lX3B1dF9zeW5jKCZkcHVfa21zLT5wZGV2LT5kZXYpOwo+ICAKPiAgCWtmcmVl KGRwdV9rbXMtPmlycV9vYmouaXJxX2NiX3RibCk7Cj4gIAlrZnJlZShkcHVfa21zLT5pcnFfb2Jq LmVuYWJsZV9jb3VudHMpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3Av ZHB1MS9kcHVfY3J0Yy5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NydGMu Ywo+IGluZGV4IDQ4OTIwYjA1Li5lMmQyZTMyIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9tc20vZGlzcC9kcHUxL2RwdV9jcnRjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rp c3AvZHB1MS9kcHVfY3J0Yy5jCj4gQEAgLTg2LDggKzg2LDEyIEBAIHN0YXRpYyBpbmxpbmUgaW50 IF9kcHVfY3J0Y19wb3dlcl9lbmFibGUoc3RydWN0IGRwdV9jcnRjICpkcHVfY3J0YywgYm9vbCBl bmFibGUpCj4gIAo+ICAJZHB1X2ttcyA9IHRvX2RwdV9rbXMocHJpdi0+a21zKTsKPiAgCj4gLQly ZXR1cm4gZHB1X3Bvd2VyX3Jlc291cmNlX2VuYWJsZSgmcHJpdi0+cGhhbmRsZSwgZHB1X2ttcy0+ Y29yZV9jbGllbnQsCj4gLQkJCQkJCQkJCWVuYWJsZSk7Cj4gKwlpZiAoZW5hYmxlKQo+ICsJCXBt X3J1bnRpbWVfZ2V0X3N5bmMoJmRwdV9rbXMtPnBkZXYtPmRldik7Cj4gKwllbHNlCj4gKwkJcG1f cnVudGltZV9wdXRfc3luYygmZHB1X2ttcy0+cGRldi0+ZGV2KTsKPiArCj4gKwlyZXR1cm4gMDsK PiAgfQo+ICAKPiAgLyoqCj4gQEAgLTIyNTAsNyArMjI1NCw2IEBAIHN0YXRpYyBpbnQgX2RwdV9j cnRjX3ZibGFua19lbmFibGVfbm9fbG9jaygKPiAgCj4gIAkJLyogZHJvcCBsb2NrIHNpbmNlIHBv d2VyIGNydGMgY2IgbWF5IHRyeSB0byByZS1hY3F1aXJlIGxvY2sgKi8KPiAgCQltdXRleF91bmxv Y2soJmRwdV9jcnRjLT5jcnRjX2xvY2spOwo+IC0JCXBtX3J1bnRpbWVfZ2V0X3N5bmMoZGV2LT5k ZXYpOwo+ICAJCXJldCA9IF9kcHVfY3J0Y19wb3dlcl9lbmFibGUoZHB1X2NydGMsIHRydWUpOwo+ ICAJCW11dGV4X2xvY2soJmRwdV9jcnRjLT5jcnRjX2xvY2spOwo+ICAJCWlmIChyZXQpCj4gQEAg LTI1ODAsNyArMjU4Myw2IEBAIHN0YXRpYyB2b2lkIGRwdV9jcnRjX2Rpc2FibGUoc3RydWN0IGRy bV9jcnRjICpjcnRjKQo+ICAJLyogZGlzYWJsZSBjbGsgJiBidyBjb250cm9sIHVudGlsIGNsayAm IGJ3IHByb3BlcnRpZXMgYXJlIHNldCAqLwo+ICAJY3N0YXRlLT5id19jb250cm9sID0gZmFsc2U7 Cj4gIAljc3RhdGUtPmJ3X3NwbGl0X3ZvdGUgPSBmYWxzZTsKPiAtCXBtX3J1bnRpbWVfcHV0X3N5 bmMoY3J0Yy0+ZGV2LT5kZXYpOwo+ICAKPiAgCW11dGV4X3VubG9jaygmZHB1X2NydGMtPmNydGNf bG9jayk7Cj4gIH0KPiBAQCAtMjYxMSw4ICsyNjEzLDYgQEAgc3RhdGljIHZvaWQgZHB1X2NydGNf ZW5hYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgCQlyZXR1cm47Cj4gIAl9Cj4gIAo+IC0J cG1fcnVudGltZV9nZXRfc3luYyhjcnRjLT5kZXYtPmRldik7Cj4gLQo+ICAJZHJtX2Zvcl9lYWNo X2VuY29kZXIoZW5jb2RlciwgY3J0Yy0+ZGV2KSB7Cj4gIAkJaWYgKGVuY29kZXItPmNydGMgIT0g Y3J0YykKPiAgCQkJY29udGludWU7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20v ZGlzcC9kcHUxL2RwdV9lbmNvZGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9k cHVfZW5jb2Rlci5jCj4gaW5kZXggNDM4NjM2MC4uMjk4YTZlZiAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlci5jCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXIuYwo+IEBAIC0yNjgsOCArMjY4LDEyIEBA IHN0YXRpYyBpbmxpbmUgaW50IF9kcHVfZW5jb2Rlcl9wb3dlcl9lbmFibGUoc3RydWN0IGRwdV9l bmNvZGVyX3ZpcnQgKmRwdV9lbmMsCj4gIAo+ICAJZHB1X2ttcyA9IHRvX2RwdV9rbXMocHJpdi0+ a21zKTsKPiAgCj4gLQlyZXR1cm4gZHB1X3Bvd2VyX3Jlc291cmNlX2VuYWJsZSgmcHJpdi0+cGhh bmRsZSwgZHB1X2ttcy0+Y29yZV9jbGllbnQsCj4gLQkJCQkJCQkJCWVuYWJsZSk7Cj4gKwlpZiAo ZW5hYmxlKQo+ICsJCXBtX3J1bnRpbWVfZ2V0X3N5bmMoJmRwdV9rbXMtPnBkZXYtPmRldik7Cj4g KwllbHNlCj4gKwkJcG1fcnVudGltZV9wdXRfc3luYygmZHB1X2ttcy0+cGRldi0+ZGV2KTsKPiAr Cj4gKwlyZXR1cm4gMDsKPiAgfQo+ICAKPiAgdm9pZCBkcHVfZW5jb2Rlcl9oZWxwZXJfcmVwb3J0 X2lycV90aW1lb3V0KHN0cnVjdCBkcHVfZW5jb2Rlcl9waHlzICpwaHlzX2VuYywKPiBAQCAtNzk2 LDEwICs4MDAsOCBAQCBzdGF0aWMgdm9pZCBfZHB1X2VuY29kZXJfcmVzb3VyY2VfY29udHJvbF9o ZWxwZXIoc3RydWN0IGRybV9lbmNvZGVyICpkcm1fZW5jLAo+ICAJfQo+ICAKPiAgCWlmIChlbmFi bGUpIHsKPiAtCQlwbV9ydW50aW1lX2dldF9zeW5jKGRwdV9rbXMtPmRldi0+ZGV2KTsKPiAgCQkv KiBlbmFibGUgRFBVIGNvcmUgY2xrcyAqLwo+IC0JCWRwdV9wb3dlcl9yZXNvdXJjZV9lbmFibGUo JnByaXYtPnBoYW5kbGUsCj4gLQkJCQlkcHVfa21zLT5jb3JlX2NsaWVudCwgdHJ1ZSk7Cj4gKwkJ cG1fcnVudGltZV9nZXRfc3luYygmZHB1X2ttcy0+cGRldi0+ZGV2KTsKPiAgCj4gIAkJLyogZW5h YmxlIGFsbCB0aGUgaXJxICovCj4gIAkJX2RwdV9lbmNvZGVyX2lycV9jb250cm9sKGRybV9lbmMs IHRydWUpOwo+IEBAIC04MDksOSArODExLDcgQEAgc3RhdGljIHZvaWQgX2RwdV9lbmNvZGVyX3Jl c291cmNlX2NvbnRyb2xfaGVscGVyKHN0cnVjdCBkcm1fZW5jb2RlciAqZHJtX2VuYywKPiAgCQlf ZHB1X2VuY29kZXJfaXJxX2NvbnRyb2woZHJtX2VuYywgZmFsc2UpOwo+ICAKPiAgCQkvKiBkaXNh YmxlIERQVSBjb3JlIGNsa3MgKi8KPiAtCQlkcHVfcG93ZXJfcmVzb3VyY2VfZW5hYmxlKCZwcml2 LT5waGFuZGxlLAo+IC0JCQkJZHB1X2ttcy0+Y29yZV9jbGllbnQsIGZhbHNlKTsKPiAtCQlwbV9y dW50aW1lX3B1dF9zeW5jKGRwdV9rbXMtPmRldi0+ZGV2KTsKPiArCQlwbV9ydW50aW1lX3B1dF9z eW5jKCZkcHVfa21zLT5wZGV2LT5kZXYpOwo+ICAJfQo+ICAKPiAgfQo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfa21zLmMgYi9kcml2ZXJzL2dwdS9kcm0v bXNtL2Rpc3AvZHB1MS9kcHVfa21zLmMKPiBpbmRleCAyY2Q1MWZjLi42ZGQwZDhlIDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9rbXMuYwo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9rbXMuYwo+IEBAIC0xMDAsOCArMTAwLDcg QEAgc3RhdGljIGludCBfZHB1X2Rhbmdlcl9zaWduYWxfc3RhdHVzKHN0cnVjdCBzZXFfZmlsZSAq cywKPiAgCXByaXYgPSBrbXMtPmRldi0+ZGV2X3ByaXZhdGU7Cj4gIAltZW1zZXQoJnN0YXR1cywg MCwgc2l6ZW9mKHN0cnVjdCBkcHVfZGFuZ2VyX3NhZmVfc3RhdHVzKSk7Cj4gIAo+IC0JcG1fcnVu dGltZV9nZXRfc3luYyhrbXMtPmRldi0+ZGV2KTsKPiAtCWRwdV9wb3dlcl9yZXNvdXJjZV9lbmFi bGUoJnByaXYtPnBoYW5kbGUsIGttcy0+Y29yZV9jbGllbnQsIHRydWUpOwo+ICsJcG1fcnVudGlt ZV9nZXRfc3luYygma21zLT5wZGV2LT5kZXYpOwo+ICAJaWYgKGRhbmdlcl9zdGF0dXMpIHsKPiAg CQlzZXFfcHV0cyhzLCAiXG5EYW5nZXIgc2lnbmFsIHN0YXR1czpcbiIpOwo+ICAJCWlmIChrbXMt Pmh3X21kcC0+b3BzLmdldF9kYW5nZXJfc3RhdHVzKQo+IEBAIC0xMTMsOCArMTEyLDcgQEAgc3Rh dGljIGludCBfZHB1X2Rhbmdlcl9zaWduYWxfc3RhdHVzKHN0cnVjdCBzZXFfZmlsZSAqcywKPiAg CQkJa21zLT5od19tZHAtPm9wcy5nZXRfZGFuZ2VyX3N0YXR1cyhrbXMtPmh3X21kcCwKPiAgCQkJ CQkmc3RhdHVzKTsKPiAgCX0KPiAtCWRwdV9wb3dlcl9yZXNvdXJjZV9lbmFibGUoJnByaXYtPnBo YW5kbGUsIGttcy0+Y29yZV9jbGllbnQsIGZhbHNlKTsKPiAtCXBtX3J1bnRpbWVfcHV0X3N5bmMo a21zLT5kZXYtPmRldik7Cj4gKwlwbV9ydW50aW1lX3B1dF9zeW5jKCZrbXMtPnBkZXYtPmRldik7 Cj4gIAo+ICAJc2VxX3ByaW50ZihzLCAiTURQICAgICA6ICAweCV4XG4iLCBzdGF0dXMubWRwKTsK PiAgCj4gQEAgLTIxNSwxMSArMjEzLDcgQEAgc3RhdGljIGludCBfZHB1X2RlYnVnZnNfc2hvd19y ZWdzZXQzMihzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHZvaWQgKmRhdGEpCj4gIAkJCXNlcV9wdXRzKHMs ICIgICAgICAgICAiKTsKPiAgCX0KPiAgCj4gLQlpZiAoZHB1X3Bvd2VyX3Jlc291cmNlX2VuYWJs ZSgmcHJpdi0+cGhhbmRsZSwKPiAtCQkJCWRwdV9rbXMtPmNvcmVfY2xpZW50LCB0cnVlKSkgewo+ IC0JCXNlcV9wdXRzKHMsICJmYWlsZWQgdG8gZW5hYmxlIGRwdSBjbG9ja3NcbiIpOwo+IC0JCXJl dHVybiAwOwo+IC0JfQo+ICsJcG1fcnVudGltZV9nZXRfc3luYygmZHB1X2ttcy0+cGRldi0+ZGV2 KTsKPiAgCj4gIAkvKiBtYWluIHJlZ2lzdGVyIG91dHB1dCAqLwo+ICAJZm9yIChpID0gMDsgaSA8 IHJlZ3NldC0+YmxrX2xlbjsgaSArPSA0KSB7Cj4gQEAgLTIyOSw3ICsyMjMsNyBAQCBzdGF0aWMg aW50IF9kcHVfZGVidWdmc19zaG93X3JlZ3NldDMyKHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAq ZGF0YSkKPiAgCQlzZXFfcHJpbnRmKHMsICIgJTA4eCIsIHJlYWRsX3JlbGF4ZWQoYmFzZSArIGkp KTsKPiAgCX0KPiAgCXNlcV9wdXRzKHMsICJcbiIpOwo+IC0JZHB1X3Bvd2VyX3Jlc291cmNlX2Vu YWJsZSgmcHJpdi0+cGhhbmRsZSwgZHB1X2ttcy0+Y29yZV9jbGllbnQsIGZhbHNlKTsKPiArCXBt X3J1bnRpbWVfcHV0X3N5bmMoJmRwdV9rbXMtPnBkZXYtPmRldik7Cj4gIAo+ICAJcmV0dXJuIDA7 Cj4gIH0KPiBAQCAtMzM0LDIwICszMjgsMTIgQEAgc3RhdGljIHZvaWQgX2RwdV9kZWJ1Z2ZzX2Rl c3Ryb3koc3RydWN0IGRwdV9rbXMgKmRwdV9rbXMpCj4gIAo+ICBzdGF0aWMgaW50IGRwdV9rbXNf ZW5hYmxlX3ZibGFuayhzdHJ1Y3QgbXNtX2ttcyAqa21zLCBzdHJ1Y3QgZHJtX2NydGMgKmNydGMp Cj4gIHsKPiAtCWludCByZXQ7Cj4gLQo+IC0JcG1fcnVudGltZV9nZXRfc3luYyhjcnRjLT5kZXYt PmRldik7Cj4gLQlyZXQgPSBkcHVfY3J0Y192YmxhbmsoY3J0YywgdHJ1ZSk7Cj4gLQlwbV9ydW50 aW1lX3B1dF9zeW5jKGNydGMtPmRldi0+ZGV2KTsKPiAtCj4gLQlyZXR1cm4gcmV0Owo+ICsJcmV0 dXJuIGRwdV9jcnRjX3ZibGFuayhjcnRjLCB0cnVlKTsKPiAgfQo+ICAKPiAgc3RhdGljIHZvaWQg ZHB1X2ttc19kaXNhYmxlX3ZibGFuayhzdHJ1Y3QgbXNtX2ttcyAqa21zLCBzdHJ1Y3QgZHJtX2Ny dGMgKmNydGMpCj4gIHsKPiAtCXBtX3J1bnRpbWVfZ2V0X3N5bmMoY3J0Yy0+ZGV2LT5kZXYpOwo+ ICAJZHB1X2NydGNfdmJsYW5rKGNydGMsIGZhbHNlKTsKPiAtCXBtX3J1bnRpbWVfcHV0X3N5bmMo Y3J0Yy0+ZGV2LT5kZXYpOwo+ICB9Cj4gIAo+ICBzdGF0aWMgdm9pZCBkcHVfa21zX3dhaXRfZm9y X2ZyYW1lX3RyYW5zZmVyX2NvbXBsZXRlKHN0cnVjdCBtc21fa21zICprbXMsCj4gQEAgLTQwOSw4 ICszOTUsNyBAQCBzdGF0aWMgdm9pZCBkcHVfa21zX3ByZXBhcmVfY29tbWl0KHN0cnVjdCBtc21f a21zICprbXMsCj4gIAlpZiAoIWRldiB8fCAhZGV2LT5kZXZfcHJpdmF0ZSkKPiAgCQlyZXR1cm47 Cj4gIAlwcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAtCXBtX3J1bnRpbWVfZ2V0X3N5bmMoZGV2 LT5kZXYpOwo+IC0JZHB1X3Bvd2VyX3Jlc291cmNlX2VuYWJsZSgmcHJpdi0+cGhhbmRsZSwgZHB1 X2ttcy0+Y29yZV9jbGllbnQsIHRydWUpOwo+ICsJcG1fcnVudGltZV9nZXRfc3luYygmZHB1X2tt cy0+cGRldi0+ZGV2KTsKPiAgCj4gIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KGVuY29kZXIsICZkZXYt Pm1vZGVfY29uZmlnLmVuY29kZXJfbGlzdCwgaGVhZCkKPiAgCQlpZiAoZW5jb2Rlci0+Y3J0YyAh PSBOVUxMKQo+IEBAIC00NzQsOCArNDU5LDcgQEAgc3RhdGljIHZvaWQgZHB1X2ttc19jb21wbGV0 ZV9jb21taXQoc3RydWN0IG1zbV9rbXMgKmttcywKPiAgCWZvcl9lYWNoX29sZF9jcnRjX2luX3N0 YXRlKG9sZF9zdGF0ZSwgY3J0Yywgb2xkX2NydGNfc3RhdGUsIGkpCj4gIAkJZHB1X2NydGNfY29t cGxldGVfY29tbWl0KGNydGMsIG9sZF9jcnRjX3N0YXRlKTsKPiAgCj4gLQlkcHVfcG93ZXJfcmVz b3VyY2VfZW5hYmxlKCZwcml2LT5waGFuZGxlLCBkcHVfa21zLT5jb3JlX2NsaWVudCwgZmFsc2Up Owo+IC0JcG1fcnVudGltZV9wdXRfc3luYyhkcHVfa21zLT5kZXYtPmRldik7Cj4gKwlwbV9ydW50 aW1lX3B1dF9zeW5jKCZkcHVfa21zLT5wZGV2LT5kZXYpOwo+ICAKPiAgCURQVV9FVlQzMl9WRVJC T1NFKERQVV9FVlRMT0dfRlVOQ19FWElUKTsKPiAgfQo+IEBAIC0xNjI3LDEzICsxNjExLDggQEAg c3RhdGljIGludCBkcHVfa21zX2h3X2luaXQoc3RydWN0IG1zbV9rbXMgKmttcykKPiAgCQlkcHVf a21zLT5jb3JlX2NsaWVudCA9IE5VTEw7Cj4gIAkJZ290byBlcnJvcjsKPiAgCX0KPiAtCXBtX3J1 bnRpbWVfZ2V0X3N5bmMoZGV2LT5kZXYpOwo+IC0JcmMgPSBkcHVfcG93ZXJfcmVzb3VyY2VfZW5h YmxlKCZwcml2LT5waGFuZGxlLCBkcHVfa21zLT5jb3JlX2NsaWVudCwKPiAtCQl0cnVlKTsKPiAt CWlmIChyYykgewo+IC0JCURQVV9FUlJPUigicmVzb3VyY2UgZW5hYmxlIGZhaWxlZDogJWRcbiIs IHJjKTsKPiAtCQlnb3RvIGVycm9yOwo+IC0JfQo+ICsKPiArCXBtX3J1bnRpbWVfZ2V0X3N5bmMo JmRwdV9rbXMtPnBkZXYtPmRldik7Cj4gIAo+ICAJX2RwdV9rbXNfY29yZV9od19yZXZfaW5pdChk cHVfa21zKTsKPiAgCj4gQEAgLTE3NjgsOCArMTc0Nyw3IEBAIHN0YXRpYyBpbnQgZHB1X2ttc19o d19pbml0KHN0cnVjdCBtc21fa21zICprbXMpCj4gIAkJCURQVV9QT1dFUl9FVkVOVF9QT1NUX0VO QUJMRSwKPiAgCQkJZHB1X2ttc19oYW5kbGVfcG93ZXJfZXZlbnQsIGRwdV9rbXMsICJrbXMiKTsK PiAgCj4gLQlkcHVfcG93ZXJfcmVzb3VyY2VfZW5hYmxlKCZwcml2LT5waGFuZGxlLCBkcHVfa21z LT5jb3JlX2NsaWVudCwgZmFsc2UpOwo+IC0JcG1fcnVudGltZV9wdXRfc3luYyhkZXYtPmRldik7 Cj4gKwlwbV9ydW50aW1lX3B1dF9zeW5jKCZkcHVfa21zLT5wZGV2LT5kZXYpOwo+ICAKPiAgCXJl dHVybiAwOwo+ICAKPiBAQCAtMTc3OCw4ICsxNzU2LDcgQEAgc3RhdGljIGludCBkcHVfa21zX2h3 X2luaXQoc3RydWN0IG1zbV9rbXMgKmttcykKPiAgaHdfaW50cl9pbml0X2VycjoKPiAgcGVyZl9l cnI6Cj4gIHBvd2VyX2Vycm9yOgo+IC0JZHB1X3Bvd2VyX3Jlc291cmNlX2VuYWJsZSgmcHJpdi0+ cGhhbmRsZSwgZHB1X2ttcy0+Y29yZV9jbGllbnQsIGZhbHNlKTsKPiAtCXBtX3J1bnRpbWVfcHV0 X3N5bmMoZGV2LT5kZXYpOwo+ICsJcG1fcnVudGltZV9wdXRfc3luYygmZHB1X2ttcy0+cGRldi0+ ZGV2KTsKPiAgZXJyb3I6Cj4gIAlfZHB1X2ttc19od19kZXN0cm95KGRwdV9rbXMpOwo+ICBlbmQ6 Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9wbGFuZS5j IGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3BsYW5lLmMKPiBpbmRleCBiYTUy MzBkLi5jZjZjM2ZkIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUx L2RwdV9wbGFuZS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3Bs YW5lLmMKPiBAQCAtNDc2LDExICs0NzYsOSBAQCBpbnQgZHB1X3BsYW5lX2Rhbmdlcl9zaWduYWxf Y3RybChzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwgYm9vbCBlbmFibGUpCj4gIAlpZiAoIXBkcHUt PmlzX3J0X3BpcGUpCj4gIAkJZ290byBlbmQ7Cj4gIAo+IC0JZHB1X3Bvd2VyX3Jlc291cmNlX2Vu YWJsZSgmcHJpdi0+cGhhbmRsZSwgZHB1X2ttcy0+Y29yZV9jbGllbnQsIHRydWUpOwo+IC0KPiAr CXBtX3J1bnRpbWVfZ2V0X3N5bmMoJmRwdV9rbXMtPnBkZXYtPmRldik7Cj4gIAlfZHB1X3BsYW5l X3NldF9xb3NfY3RybChwbGFuZSwgZW5hYmxlLCBEUFVfUExBTkVfUU9TX1BBTklDX0NUUkwpOwo+ IC0KPiAtCWRwdV9wb3dlcl9yZXNvdXJjZV9lbmFibGUoJnByaXYtPnBoYW5kbGUsIGRwdV9rbXMt PmNvcmVfY2xpZW50LCBmYWxzZSk7Cj4gKwlwbV9ydW50aW1lX3B1dF9zeW5jKCZkcHVfa21zLT5w ZGV2LT5kZXYpOwo+ICAKPiAgZW5kOgo+ICAJcmV0dXJuIDA7Cj4gLS0gCj4gVGhlIFF1YWxjb21t IElubm92YXRpb24gQ2VudGVyLCBJbmMuIGlzIGEgbWVtYmVyIG9mIHRoZSBDb2RlIEF1cm9yYSBG b3J1bSwKPiBhIExpbnV4IEZvdW5kYXRpb24gQ29sbGFib3JhdGl2ZSBQcm9qZWN0Cj4gCgotLSAK U2VhbiBQYXVsLCBTb2Z0d2FyZSBFbmdpbmVlciwgR29vZ2xlIC8gQ2hyb21pdW0gT1MKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KRnJlZWRyZW5vIG1haWxp bmcgbGlzdApGcmVlZHJlbm9AbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZnJlZWRyZW5vCg==