From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Paul Subject: Re: [DPU PATCH 07/11] drm/msm/dpu: remove clock management code from dpu_power_handle Date: Thu, 10 May 2018 11:21:58 -0400 Message-ID: <20180510152158.GG33053@art_vandelay> References: <1525940985-30428-1-git-send-email-ryadav@codeaurora.org> <1525940985-30428-8-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-8-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 T24gVGh1LCBNYXkgMTAsIDIwMTggYXQgMDE6NTk6NDFQTSArMDUzMCwgUmFqZXNoIFlhZGF2IHdy b3RlOgo+IE1EU1MgYW5kIGRwdSBkcml2ZXJzIG1hbmFnZSB0aGVpciByZXNwZWN0aXZlIGNsb2Nr cyB2aWEKPiBydW50aW1lX3BtLiBSZW1vdmUgY3VzdG9tIGNsb2NrIG1hbmFnZW1lbnQgY29kZSBm cm9tCj4gZHB1X3Bvd2VyX2hhbmRsZS4KPiAKPiBBbHNvIGRwdSBjb3JlIGNsb2NrIG1hbmFnZW1l bnQgY29kZSBpcyByZXN0cmljdGVkIHRvCj4gZHB1X2NvcmVfcGVyZiBtb2R1bGUuCj4gCj4gU2ln bmVkLW9mZi1ieTogUmFqZXNoIFlhZGF2IDxyeWFkYXZAY29kZWF1cm9yYS5vcmc+Cj4gLS0tCj4g IGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jb3JlX3BlcmYuYyAgICAgIHwgIDQ0 ICsrLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jb3JlX3BlcmYuaCAg ICAgIHwgICA4ICstCj4gIC4uLi9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXJfcGh5 c19jbWQuYyAgIHwgICA1ICstCj4gIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9r bXMuYyAgICAgICAgICAgIHwgIDMyICsrKy0KPiAgZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2Rw dTEvZHB1X2ttcy5oICAgICAgICAgICAgfCAgIDkgKwo+ICBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rw dV9wb3dlcl9oYW5kbGUuYyAgICAgICAgICAgICB8IDE5NSArLS0tLS0tLS0tLS0tLS0tLS0tLS0K PiAgZHJpdmVycy9ncHUvZHJtL21zbS9kcHVfcG93ZXJfaGFuZGxlLmggICAgICAgICAgICAgfCAg NDAgLS0tLS0KPiAgNyBmaWxlcyBjaGFuZ2VkLCA2OSBpbnNlcnRpb25zKCspLCAyNjQgZGVsZXRp b25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2Rw dV9jb3JlX3BlcmYuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jb3JlX3Bl cmYuYwo+IGluZGV4IDk4MWY3N2YuLmQxMzY0ZmEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NvcmVfcGVyZi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L21zbS9kaXNwL2RwdTEvZHB1X2NvcmVfcGVyZi5jCj4gQEAgLTM2NSw2ICszNjUsMjAgQEAgdm9p ZCBkcHVfY29yZV9wZXJmX2NydGNfcmVsZWFzZV9idyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4g IAl9Cj4gIH0KPiAgCj4gK3N0YXRpYyBpbnQgX2RwdV9jb3JlX3BlcmZfc2V0X2NvcmVfY2xrX3Jh dGUoc3RydWN0IGRwdV9rbXMgKmttcywgdTY0IHJhdGUpCj4gK3sKPiArCXN0cnVjdCBkc3NfY2xr ICpjb3JlX2NsayA9IGttcy0+cGVyZi5jb3JlX2NsazsKPiArCWludCByYyA9IC1FSU5WQUw7CgpO byBuZWVkIHRvIGluaXRpYWxpemUgdGhpcy4KCj4gKwo+ICsJaWYgKGNvcmVfY2xrLT5tYXhfcmF0 ZSAmJiAocmF0ZSA+IGNvcmVfY2xrLT5tYXhfcmF0ZSkpCj4gKwkJcmF0ZSA9IGNvcmVfY2xrLT5t YXhfcmF0ZTsKPiArCj4gKwljb3JlX2Nsay0+cmF0ZSA9IHJhdGU7Cj4gKwlyYyA9IG1zbV9kc3Nf Y2xrX3NldF9yYXRlKGNvcmVfY2xrLCAxKTsKPiArCj4gKwlyZXR1cm4gcmM7CgpyZXR1cm4gbXNt X2Rzc19jbGtfc2V0X3JhdGUoY29yZV9jbGssIDEpOwoKYW5kIGdldCByaWQgb2YgcmMgZW50aXJl bHkKCj4gK30KPiArCj4gIHN0YXRpYyB1NjQgX2RwdV9jb3JlX3BlcmZfZ2V0X2NvcmVfY2xrX3Jh dGUoc3RydWN0IGRwdV9rbXMgKmttcykKPiAgewo+ICAJdTY0IGNsa19yYXRlID0ga21zLT5wZXJm LnBlcmZfdHVuZS5taW5fY29yZV9jbGs7Cj4gQEAgLTM3Niw3ICszOTAsOCBAQCBzdGF0aWMgdTY0 IF9kcHVfY29yZV9wZXJmX2dldF9jb3JlX2Nsa19yYXRlKHN0cnVjdCBkcHVfa21zICprbXMpCj4g IAkJCWRwdV9jc3RhdGUgPSB0b19kcHVfY3J0Y19zdGF0ZShjcnRjLT5zdGF0ZSk7Cj4gIAkJCWNs a19yYXRlID0gbWF4KGRwdV9jc3RhdGUtPm5ld19wZXJmLmNvcmVfY2xrX3JhdGUsCj4gIAkJCQkJ CQljbGtfcmF0ZSk7Cj4gLQkJCWNsa19yYXRlID0gY2xrX3JvdW5kX3JhdGUoa21zLT5wZXJmLmNv cmVfY2xrLCBjbGtfcmF0ZSk7Cj4gKwkJCWNsa19yYXRlID0gY2xrX3JvdW5kX3JhdGUoa21zLT5w ZXJmLmNvcmVfY2xrLT5jbGssCj4gKwkJCQkJY2xrX3JhdGUpOwo+ICAJCX0KPiAgCX0KPiAgCj4g QEAgLTQ4NCwxNSArNDk5LDExIEBAIHZvaWQgZHB1X2NvcmVfcGVyZl9jcnRjX3VwZGF0ZShzdHJ1 Y3QgZHJtX2NydGMgKmNydGMsCgpUaGlzIGZ1bmN0aW9uIHNob3VsZCByZWFsbHkgcHJvcGFnYXRl IHRoZSBlcnJvcnMuIEkgcmVhbGl6ZSB0aGV5J3JlIGV2ZW50dWFsbHkKZHJvcHBlZCBpbiB0aGUg ZnJhbWUgZXZlbnQgd29ya2VyLCBidXQgd2Ugc2hvdWxkIHN0aWxsIHJldHVybiBhbiBlcnJvciBo ZXJlIGluCmNhc2UgdGhlIHdvcmtlciBldmVyIHdhbnRzIHRvIHVzZSBpdCAoYW5kIGl0IHNob3Vs ZCBiZSB0aGUgb25lIHRvIGRlY2lkZSB0byBkcm9wCml0IGlmIHRoYXQncyB0aGUgYmVzdCBkZWNp c2lvbikuIEFsdGhvdWdoIHRoaXMgd2Fzbid0IGludHJvZHVjZWQgd2l0aCB5b3VyCnBhdGNoLCBj b3VsZCB5b3UgcGxlYXNlIGFkZCBhIHNtYWxsIHBhdGNoIHRvIHRoZSB2MiB0byBhZGQgdGhpcz8K Cj4gIAo+ICAJCURQVV9FVlQzMihrbXMtPmRldiwgc3RvcF9yZXEsIGNsa19yYXRlKTsKPiAgCj4g LQkJLyogVGVtcCBjaGFuZ2UgdG8gYXZvaWQgY3Jhc2ggaW4gY2xrX3NldF9yYXRlIEFQSS4gKi8K PiAtI2lmZGVmIFFDT01fRFBVX1NFVF9DTEsKPiAtCQlpZiAoZHB1X3Bvd2VyX2Nsa19zZXRfcmF0 ZSgmcHJpdi0+cGhhbmRsZSwKPiAtCQkJCQkgICBrbXMtPnBlcmYuY2xrX25hbWUsIGNsa19yYXRl KSkgewo+ICsJCWlmIChfZHB1X2NvcmVfcGVyZl9zZXRfY29yZV9jbGtfcmF0ZShrbXMsIGNsa19y YXRlKSkgewo+ICAJCQlEUFVfRVJST1IoImZhaWxlZCB0byBzZXQgJXMgY2xvY2sgcmF0ZSAlbGx1 XG4iLAo+IC0JCQkJCWttcy0+cGVyZi5jbGtfbmFtZSwgY2xrX3JhdGUpOwo+ICsJCQkJCWttcy0+ cGVyZi5jb3JlX2Nsay0+Y2xrX25hbWUsIGNsa19yYXRlKTsKPiAgCQkJcmV0dXJuOwo+ICAJCX0K PiAtI2VuZGlmCj4gIAo+ICAJCWttcy0+cGVyZi5jb3JlX2Nsa19yYXRlID0gY2xrX3JhdGU7Cj4g IAkJRFBVX0RFQlVHKCJ1cGRhdGUgY2xrIHJhdGUgPSAlbGxkIEhaXG4iLCBjbGtfcmF0ZSk7Cj4g QEAgLTY1Niw3ICs2NjcsNiBAQCB2b2lkIGRwdV9jb3JlX3BlcmZfZGVzdHJveShzdHJ1Y3QgZHB1 X2NvcmVfcGVyZiAqcGVyZikKPiAgCWRwdV9jb3JlX3BlcmZfZGVidWdmc19kZXN0cm95KHBlcmYp Owo+ICAJcGVyZi0+bWF4X2NvcmVfY2xrX3JhdGUgPSAwOwo+ICAJcGVyZi0+Y29yZV9jbGsgPSBO VUxMOwo+IC0JcGVyZi0+Y2xrX25hbWUgPSBOVUxMOwo+ICAJcGVyZi0+cGhhbmRsZSA9IE5VTEw7 Cj4gIAlwZXJmLT5jYXRhbG9nID0gTlVMTDsKPiAgCXBlcmYtPmRldiA9IE5VTEw7Cj4gQEAgLTY2 Nyw5ICs2NzcsOSBAQCBpbnQgZHB1X2NvcmVfcGVyZl9pbml0KHN0cnVjdCBkcHVfY29yZV9wZXJm ICpwZXJmLAo+ICAJCXN0cnVjdCBkcHVfbWRzc19jZmcgKmNhdGFsb2csCj4gIAkJc3RydWN0IGRw dV9wb3dlcl9oYW5kbGUgKnBoYW5kbGUsCj4gIAkJc3RydWN0IGRwdV9wb3dlcl9jbGllbnQgKnBj bGllbnQsCj4gLQkJY2hhciAqY2xrX25hbWUpCj4gKwkJc3RydWN0IGRzc19jbGsgKmNvcmVfY2xr KQo+ICB7Cj4gLQlpZiAoIXBlcmYgfHwgIWRldiB8fCAhY2F0YWxvZyB8fCAhcGhhbmRsZSB8fCAh cGNsaWVudCB8fCAhY2xrX25hbWUpIHsKPiArCWlmICghcGVyZiB8fCAhZGV2IHx8ICFjYXRhbG9n IHx8ICFwaGFuZGxlIHx8ICFwY2xpZW50IHx8ICFjb3JlX2NsaykgewoKVGhlc2UgYmxpbmQgTlVM TCBjaGVja3MgZHJpdmUgbWUgYSBsaXR0bGUgY3JhenkuIEhvdyBtYW55IG9mIHRoZXNlIGNhbiAK X2FjdHVhbGx5XyBiZSBOVUxMPyBXaGVuIHdlIGVuY291bnRlciB0aGVzZSwgd2Ugc2hvdWxkIGV2 YWx1YXRlIGFuZCB0cmltIHRoZW0gc28KYXMgbm90IHRvIGNsdXR0ZXIgdXAgZXZlcnkgZnVuY3Rp b24gd2l0aCBzdXBlcmZsdW91cyBjaGVja3MuCgo+ICAJCURQVV9FUlJPUigiaW52YWxpZCBwYXJh bWV0ZXJzXG4iKTsKPiAgCQlyZXR1cm4gLUVJTlZBTDsKPiAgCX0KPiBAQCAtNjc4LDIzICs2ODgs MTMgQEAgaW50IGRwdV9jb3JlX3BlcmZfaW5pdChzdHJ1Y3QgZHB1X2NvcmVfcGVyZiAqcGVyZiwK PiAgCXBlcmYtPmNhdGFsb2cgPSBjYXRhbG9nOwo+ICAJcGVyZi0+cGhhbmRsZSA9IHBoYW5kbGU7 Cj4gIAlwZXJmLT5wY2xpZW50ID0gcGNsaWVudDsKPiAtCXBlcmYtPmNsa19uYW1lID0gY2xrX25h bWU7Cj4gKwlwZXJmLT5jb3JlX2NsayA9IGNvcmVfY2xrOwo+ICAKPiAtCXBlcmYtPmNvcmVfY2xr ID0gZHB1X3Bvd2VyX2Nsa19nZXRfY2xrKHBoYW5kbGUsIGNsa19uYW1lKTsKPiAtCWlmICghcGVy Zi0+Y29yZV9jbGspIHsKPiAtCQlEUFVfRVJST1IoImludmFsaWQgY29yZSBjbGtcbiIpOwo+IC0J CWdvdG8gZXJyOwo+IC0JfQo+IC0KPiAtCXBlcmYtPm1heF9jb3JlX2Nsa19yYXRlID0gZHB1X3Bv d2VyX2Nsa19nZXRfbWF4X3JhdGUocGhhbmRsZSwgY2xrX25hbWUpOwo+ICsJcGVyZi0+bWF4X2Nv cmVfY2xrX3JhdGUgPSBjb3JlX2Nsay0+bWF4X3JhdGU7Cj4gIAlpZiAoIXBlcmYtPm1heF9jb3Jl X2Nsa19yYXRlKSB7Cj4gIAkJRFBVX0RFQlVHKCJvcHRpb25hbCBtYXggY29yZSBjbGsgcmF0ZSwg dXNlIGRlZmF1bHRcbiIpOwo+ICAJCXBlcmYtPm1heF9jb3JlX2Nsa19yYXRlID0gRFBVX1BFUkZf REVGQVVMVF9NQVhfQ09SRV9DTEtfUkFURTsKPiAgCX0KPiAgCj4gIAlyZXR1cm4gMDsKPiAtCj4g LWVycjoKPiAtCWRwdV9jb3JlX3BlcmZfZGVzdHJveShwZXJmKTsKPiAtCXJldHVybiAtRU5PREVW Owo+ICB9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9j b3JlX3BlcmYuaCBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jb3JlX3BlcmYu aAo+IGluZGV4IDE5NjVmZjUuLjljMWE3MTkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L21zbS9kaXNwL2RwdTEvZHB1X2NvcmVfcGVyZi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21z bS9kaXNwL2RwdTEvZHB1X2NvcmVfcGVyZi5oCj4gQEAgLTU0LDcgKzU0LDYgQEAgc3RydWN0IGRw dV9jb3JlX3BlcmZfdHVuZSB7Cj4gICAqIEBjYXRhbG9nOiBQb2ludGVyIHRvIGNhdGFsb2cgY29u ZmlndXJhdGlvbgo+ICAgKiBAcGhhbmRsZTogUG9pbnRlciB0byBwb3dlciBoYW5kbGVyCj4gICAq IEBwY2xpZW50OiBQb2ludGVyIHRvIHBvd2VyIGNsaWVudAo+IC0gKiBAY2xrX25hbWU6IGNvcmUg Y2xvY2sgbmFtZQo+ICAgKiBAY29yZV9jbGs6IFBvaW50ZXIgdG8gY29yZSBjbG9jayBzdHJ1Y3R1 cmUKPiAgICogQGNvcmVfY2xrX3JhdGU6IGN1cnJlbnQgY29yZSBjbG9jayByYXRlCj4gICAqIEBt YXhfY29yZV9jbGtfcmF0ZTogbWF4aW11bSBhbGxvd2FibGUgY29yZSBjbG9jayByYXRlCj4gQEAg LTcwLDggKzY5LDcgQEAgc3RydWN0IGRwdV9jb3JlX3BlcmYgewo+ICAJc3RydWN0IGRwdV9tZHNz X2NmZyAqY2F0YWxvZzsKPiAgCXN0cnVjdCBkcHVfcG93ZXJfaGFuZGxlICpwaGFuZGxlOwo+ICAJ c3RydWN0IGRwdV9wb3dlcl9jbGllbnQgKnBjbGllbnQ7Cj4gLQljaGFyICpjbGtfbmFtZTsKPiAt CXN0cnVjdCBjbGsgKmNvcmVfY2xrOwo+ICsJc3RydWN0IGRzc19jbGsgKmNvcmVfY2xrOwo+ICAJ dTY0IGNvcmVfY2xrX3JhdGU7Cj4gIAl1NjQgbWF4X2NvcmVfY2xrX3JhdGU7Cj4gIAlzdHJ1Y3Qg ZHB1X2NvcmVfcGVyZl90dW5lIHBlcmZfdHVuZTsKPiBAQCAtMTE4LDE0ICsxMTYsMTQgQEAgdm9p ZCBkcHVfY29yZV9wZXJmX2NydGNfdXBkYXRlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgICog QGNhdGFsb2c6IFBvaW50ZXIgdG8gY2F0YWxvZwo+ICAgKiBAcGhhbmRsZTogUG9pbnRlciB0byBw b3dlciBoYW5kbGUKPiAgICogQHBjbGllbnQ6IFBvaW50ZXIgdG8gcG93ZXIgY2xpZW50Cj4gLSAq IEBjbGtfbmFtZTogY29yZSBjbG9jayBuYW1lCj4gKyAqIEBjb3JlX2NsazogcG9pbnRlciB0byBj b3JlIGNsb2NrCj4gICAqLwo+ICBpbnQgZHB1X2NvcmVfcGVyZl9pbml0KHN0cnVjdCBkcHVfY29y ZV9wZXJmICpwZXJmLAo+ICAJCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJc3RydWN0IGRw dV9tZHNzX2NmZyAqY2F0YWxvZywKPiAgCQlzdHJ1Y3QgZHB1X3Bvd2VyX2hhbmRsZSAqcGhhbmRs ZSwKPiAgCQlzdHJ1Y3QgZHB1X3Bvd2VyX2NsaWVudCAqcGNsaWVudCwKPiAtCQljaGFyICpjbGtf bmFtZSk7Cj4gKwkJc3RydWN0IGRzc19jbGsgKmNvcmVfY2xrKTsKPiAgCj4gIC8qKgo+ICAgKiBk cHVfY29yZV9wZXJmX2RlYnVnZnNfaW5pdCAtIGluaXRpYWxpemUgZGVidWdmcyBmb3IgY29yZSBw ZXJmb3JtYW5jZSBjb250ZXh0Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlz cC9kcHUxL2RwdV9lbmNvZGVyX3BoeXNfY21kLmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3Av ZHB1MS9kcHVfZW5jb2Rlcl9waHlzX2NtZC5jCj4gaW5kZXggMDcyOTM5Yy4uYTlmOTQ2YiAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlcl9waHlz X2NtZC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXJf cGh5c19jbWQuYwo+IEBAIC00MjgsOCArNDI4LDkgQEAgc3RhdGljIHZvaWQgZHB1X2VuY29kZXJf cGh5c19jbWRfdGVhcmNoZWNrX2NvbmZpZygKPiAgCSAqIHZzeW5jX2NvdW50IGlzIHJhdGlvIG9m IE1EUCBWU1lOQyBjbG9jayBmcmVxdWVuY3kgdG8gTENEIHBhbmVsCj4gIAkgKiBmcmVxdWVuY3kg ZGl2aWRlZCBieSB0aGUgbm8uIG9mIHJvd3MgKGxpbmVzKSBpbiB0aGUgTENEcGFuZWwuCj4gIAkg Ki8KPiAtCXZzeW5jX2h6ID0gZHB1X3Bvd2VyX2Nsa19nZXRfcmF0ZSgmcHJpdi0+cGhhbmRsZSwg InZzeW5jX2NsayIpOwo+IC0JaWYgKCF2c3luY19oeiB8fCAhbW9kZS0+dnRvdGFsIHx8ICFtb2Rl LT52cmVmcmVzaCkgewo+ICsJdnN5bmNfaHogPSBkcHVfa21zX2dldF9jbGtfcmF0ZShkcHVfa21z LCAidnN5bmNfY2xrIik7Cj4gKwlpZiAoKHZzeW5jX2h6ID09IC1FSU5WQUwpIHx8ICF2c3luY19o eiB8fCAhbW9kZS0+dnRvdGFsIHx8CgpJbnN0ZWFkIG9mIGNoZWNraW5nIHZzeW5jX2h6IHR3aWNl LCBqdXN0IGRvIHZzeW5jX2h6IDw9IDAuCgpJJ20gYWxzbyBhIGxpdHRsZSBjb25jZXJuZWQgYXMg dG8gaG93IHZ0b3RhbCBjb3VsZCBiZSAwLi4uCgo+ICsJCSFtb2RlLT52cmVmcmVzaCkgewo+ICAJ CURQVV9ERUJVR19DTURFTkMoY21kX2VuYywKPiAgCQkJImludmFsaWQgcGFyYW1zIC0gdnN5bmNf aHogJXUgdnRvdCAldSB2cmVmcmVzaCAldVxuIiwKPiAgCQkJdnN5bmNfaHosIG1vZGUtPnZ0b3Rh bCwgbW9kZS0+dnJlZnJlc2gpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rp c3AvZHB1MS9kcHVfa21zLmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfa21z LmMKPiBpbmRleCA2ZGQwZDhlLi5mNjUxMWM5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9tc20vZGlzcC9kcHUxL2RwdV9rbXMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlz cC9kcHUxL2RwdV9rbXMuYwo+IEBAIC0xNTAyLDYgKzE1MDIsMzUgQEAgc3RhdGljIGludCBfZHB1 X2ttc19tbXVfaW5pdChzdHJ1Y3QgZHB1X2ttcyAqZHB1X2ttcykKPiAgCXJldHVybiByZXQ7Cj4g IH0KPiAgCj4gK3N0YXRpYyBzdHJ1Y3QgZHNzX2NsayAqX2RwdV9rbXNfZ2V0X2NsayhzdHJ1Y3Qg ZHB1X2ttcyAqZHB1X2ttcywKPiArCQljaGFyICpjbG9ja19uYW1lKQo+ICt7Cj4gKwlzdHJ1Y3Qg ZHNzX21vZHVsZV9wb3dlciAqbXAgPSAmZHB1X2ttcy0+bXA7Cj4gKwlpbnQgaTsKPiArCXN0cnVj dCBkc3NfY2xrICpjbGsgPSBOVUxMOwo+ICsKPiArCWZvciAoaSA9IDA7IGkgPCBtcC0+bnVtX2Ns azsgaSsrKSB7Cj4gKwkJaWYgKCFzdHJjbXAobXAtPmNsa19jb25maWdbaV0uY2xrX25hbWUsIGNs b2NrX25hbWUpKSB7Cj4gKwkJCWNsayA9ICZtcC0+Y2xrX2NvbmZpZ1tpXTsKPiArCQkJYnJlYWs7 CgogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJm1wLT5jbGtfY29uZmlnW2ldOwoKVGhp cyBhbGxvd3MgeW91IHRvIGVsaW1pbmF0ZSBjbGsgdmFyaWFibGUuCgo+ICsJCX0KPiArCX0KPiAr Cj4gKwlyZXR1cm4gY2xrOwoKcmV0dXJuIE5VTEw7Cgo+ICt9Cj4gKwo+ICt1NjQgZHB1X2ttc19n ZXRfY2xrX3JhdGUoc3RydWN0IGRwdV9rbXMgKmRwdV9rbXMsIGNoYXIgKmNsb2NrX25hbWUpCj4g K3sKPiArCXU2NCByYXRlID0gLUVJTlZBTDsKPiArCXN0cnVjdCBkc3NfY2xrICpjbGs7Cj4gKwo+ ICsJY2xrID0gX2RwdV9rbXNfZ2V0X2NsayhkcHVfa21zLCBjbG9ja19uYW1lKTsKPiArCWlmIChj bGspCj4gKwkJcmF0ZSA9IGNsa19nZXRfcmF0ZShjbGstPmNsayk7Cj4gKwo+ICsJcmV0dXJuIHJh dGU7CgogICAgICAgIGlmICghY2xrKQogICAgICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7Cgog ICAgICAgIHJldHVybiBjbGtfZ2V0X3JhdGUoY2xrLT5jbGspOwoKCmFuZCByZW1vdmUgcmF0ZSB2 YXJpYWJsZQoKPiArfQo+ICsKPiAgc3RhdGljIHZvaWQgZHB1X2ttc19oYW5kbGVfcG93ZXJfZXZl bnQodTMyIGV2ZW50X3R5cGUsIHZvaWQgKnVzcikKPiAgewo+ICAJc3RydWN0IGRwdV9rbXMgKmRw dV9rbXMgPSB1c3I7Cj4gQEAgLTE2OTksNyArMTcyOCw4IEBAIHN0YXRpYyBpbnQgZHB1X2ttc19o d19pbml0KHN0cnVjdCBtc21fa21zICprbXMpCj4gICNlbmRpZgo+ICAKPiAgCXJjID0gZHB1X2Nv cmVfcGVyZl9pbml0KCZkcHVfa21zLT5wZXJmLCBkZXYsIGRwdV9rbXMtPmNhdGFsb2csCj4gLQkJ CSZwcml2LT5waGFuZGxlLCBwcml2LT5wY2xpZW50LCAiY29yZV9jbGsiKTsKPiArCQkJJnByaXYt PnBoYW5kbGUsIHByaXYtPnBjbGllbnQsCj4gKwkJCV9kcHVfa21zX2dldF9jbGsoZHB1X2ttcywg ImNvcmVfY2xrIikpOwo+ICAJaWYgKHJjKSB7Cj4gIAkJRFBVX0VSUk9SKCJmYWlsZWQgdG8gaW5p dCBwZXJmICVkXG4iLCByYyk7Cj4gIAkJZ290byBwZXJmX2VycjsKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2ttcy5oIGIvZHJpdmVycy9ncHUvZHJtL21z bS9kaXNwL2RwdTEvZHB1X2ttcy5oCj4gaW5kZXggM2M2OTkyMS4uYTgyNTVmZSAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfa21zLmgKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfa21zLmgKPiBAQCAtNTM3LDQgKzUzNywxMyBA QCBzdHJ1Y3QgZHB1X2ttc19mYm8gKmRwdV9rbXNfZmJvX2FsbG9jKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsCj4gIAo+ICB2b2lkIGRwdV9rbXNfZW5jb2Rlcl9lbmFibGUoc3RydWN0IGRybV9lbmNv ZGVyICplbmNvZGVyKTsKPiAgCj4gKy8qKgo+ICsgKiBkcHVfa21zX2dldF9jbGtfcmF0ZSgpIC0g Z2V0IHRoZSBjbG9jayByYXRlCj4gKyAqIEBkcHVfa21zOiAgcG9pbmVyIHRvIGRwdV9rbXMgc3Ry dWN0dXJlCj4gKyAqIEBjbG9ja19uYW1lOiBjbG9jayBuYW1lIHRvIGdldCB0aGUgcmF0ZQo+ICsg Kgo+ICsgKiBSZXR1cm46IGN1cnJlbnQgY2xvY2sgcmF0ZQo+ICsgKi8KPiArdTY0IGRwdV9rbXNf Z2V0X2Nsa19yYXRlKHN0cnVjdCBkcHVfa21zICpkcHVfa21zLCBjaGFyICpjbG9ja19uYW1lKTsK PiArCj4gICNlbmRpZiAvKiBfX2RwdV9rbXNfSF9fICovCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9tc20vZHB1X3Bvd2VyX2hhbmRsZS5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kcHVf cG93ZXJfaGFuZGxlLmMKPiBpbmRleCBlOWUzNDRhLi4xN2JhZTRiIDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9tc20vZHB1X3Bvd2VyX2hhbmRsZS5jCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL21zbS9kcHVfcG93ZXJfaGFuZGxlLmMKPiBAQCAtMTMsNyArMTMsNiBAQAo+ICAKPiAgI2Rl ZmluZSBwcl9mbXQoZm10KQkiW2RybTolczolZF06ICIgZm10LCBfX2Z1bmNfXywgX19MSU5FX18K PiAgCj4gLSNpbmNsdWRlIDxsaW51eC9jbGsuaD4KPiAgI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5o Pgo+ICAjaW5jbHVkZSA8bGludXgvb2YuaD4KPiAgI2luY2x1ZGUgPGxpbnV4L3N0cmluZy5oPgo+ IEBAIC0yNDYsNjIgKzI0NSw2IEBAIHN0YXRpYyBpbnQgZHB1X3Bvd2VyX3BhcnNlX2R0X3N1cHBs eShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAo+ICAJcmV0dXJuIHJjOwo+ICB9Cj4gIAo+ IC1zdGF0aWMgaW50IGRwdV9wb3dlcl9wYXJzZV9kdF9jbG9jayhzdHJ1Y3QgcGxhdGZvcm1fZGV2 aWNlICpwZGV2LAo+IC0JCQkJCXN0cnVjdCBkc3NfbW9kdWxlX3Bvd2VyICptcCkKPiAtewo+IC0J dTMyIGkgPSAwLCByYyA9IDA7Cj4gLQljb25zdCBjaGFyICpjbG9ja19uYW1lOwo+IC0JdTMyIGNs b2NrX3JhdGUgPSAwOwo+IC0JdTMyIGNsb2NrX21heF9yYXRlID0gMDsKPiAtCWludCBudW1fY2xr ID0gMDsKPiAtCj4gLQlpZiAoIXBkZXYgfHwgIW1wKSB7Cj4gLQkJcHJfZXJyKCJpbnZhbGlkIGlu cHV0IHBhcmFtIHBkZXY6JXBLIG1wOiVwS1xuIiwgcGRldiwgbXApOwo+IC0JCXJldHVybiAtRUlO VkFMOwo+IC0JfQo+IC0KPiAtCW1wLT5udW1fY2xrID0gMDsKPiAtCW51bV9jbGsgPSBvZl9wcm9w ZXJ0eV9jb3VudF9zdHJpbmdzKHBkZXYtPmRldi5vZl9ub2RlLAo+IC0JCQkJCQkJImNsb2NrLW5h bWVzIik7Cj4gLQlpZiAobnVtX2NsayA8PSAwKSB7Cj4gLQkJcHJfZGVidWcoImNsb2NrcyBhcmUg bm90IGRlZmluZWRcbiIpOwo+IC0JCWdvdG8gY2xrX2VycjsKPiAtCX0KPiAtCj4gLQltcC0+bnVt X2NsayA9IG51bV9jbGs7Cj4gLQltcC0+Y2xrX2NvbmZpZyA9IGRldm1fa3phbGxvYygmcGRldi0+ ZGV2LAo+IC0JCQlzaXplb2Yoc3RydWN0IGRzc19jbGspICogbnVtX2NsaywgR0ZQX0tFUk5FTCk7 Cj4gLQlpZiAoIW1wLT5jbGtfY29uZmlnKSB7Cj4gLQkJcmMgPSAtRU5PTUVNOwo+IC0JCW1wLT5u dW1fY2xrID0gMDsKPiAtCQlnb3RvIGNsa19lcnI7Cj4gLQl9Cj4gLQo+IC0JZm9yIChpID0gMDsg aSA8IG51bV9jbGs7IGkrKykgewo+IC0JCW9mX3Byb3BlcnR5X3JlYWRfc3RyaW5nX2luZGV4KHBk ZXYtPmRldi5vZl9ub2RlLCAiY2xvY2stbmFtZXMiLAo+IC0JCQkJCQkJaSwgJmNsb2NrX25hbWUp Owo+IC0JCXN0cmxjcHkobXAtPmNsa19jb25maWdbaV0uY2xrX25hbWUsIGNsb2NrX25hbWUsCj4g LQkJCQlzaXplb2YobXAtPmNsa19jb25maWdbaV0uY2xrX25hbWUpKTsKPiAtCj4gLQkJb2ZfcHJv cGVydHlfcmVhZF91MzJfaW5kZXgocGRldi0+ZGV2Lm9mX25vZGUsICJjbG9jay1yYXRlIiwKPiAt CQkJCQkJCWksICZjbG9ja19yYXRlKTsKPiAtCQltcC0+Y2xrX2NvbmZpZ1tpXS5yYXRlID0gY2xv Y2tfcmF0ZTsKPiAtCj4gLQkJaWYgKCFjbG9ja19yYXRlKQo+IC0JCQltcC0+Y2xrX2NvbmZpZ1tp XS50eXBlID0gRFNTX0NMS19BSEI7Cj4gLQkJZWxzZQo+IC0JCQltcC0+Y2xrX2NvbmZpZ1tpXS50 eXBlID0gRFNTX0NMS19QQ0xLOwo+IC0KPiAtCQljbG9ja19tYXhfcmF0ZSA9IDA7Cj4gLQkJb2Zf cHJvcGVydHlfcmVhZF91MzJfaW5kZXgocGRldi0+ZGV2Lm9mX25vZGUsICJjbG9jay1tYXgtcmF0 ZSIsCj4gLQkJCQkJCQlpLCAmY2xvY2tfbWF4X3JhdGUpOwo+IC0JCW1wLT5jbGtfY29uZmlnW2ld Lm1heF9yYXRlID0gY2xvY2tfbWF4X3JhdGU7Cj4gLQl9Cj4gLQo+IC1jbGtfZXJyOgo+IC0JcmV0 dXJuIHJjOwo+IC19Cj4gLQo+ICAjaWZkZWYgQ09ORklHX1FDT01fQlVTX1NDQUxJTkcKPiAgCj4g ICNkZWZpbmUgTUFYX0FYSV9QT1JUX0NPVU5UIDMKPiBAQCAtNjgxLDE2ICs2MjQsMTAgQEAgaW50 IGRwdV9wb3dlcl9yZXNvdXJjZV9pbml0KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCj4g IAltcCA9ICZwaGFuZGxlLT5tcDsKPiAgCXBoYW5kbGUtPmRldiA9ICZwZGV2LT5kZXY7Cj4gIAo+ IC0JcmMgPSBkcHVfcG93ZXJfcGFyc2VfZHRfY2xvY2socGRldiwgbXApOwo+IC0JaWYgKHJjKSB7 Cj4gLQkJcHJfZXJyKCJkZXZpY2UgY2xvY2sgcGFyc2luZyBmYWlsZWRcbiIpOwo+IC0JCWdvdG8g ZW5kOwo+IC0JfQo+IC0KPiAgCXJjID0gZHB1X3Bvd2VyX3BhcnNlX2R0X3N1cHBseShwZGV2LCBt cCk7Cj4gIAlpZiAocmMpIHsKPiAgCQlwcl9lcnIoImRldmljZSB2cmVnIHN1cHBseSBwYXJzaW5n IGZhaWxlZFxuIik7Cj4gLQkJZ290byBwYXJzZV92cmVnX2VycjsKPiArCQlnb3RvIGVuZDsKCkp1 c3QgcmV0dXJuIGRpcmVjdGx5IGFuZCByZW1vdmUgdGhlIGVuZCBsYWJlbC4KCj4gIAl9Cj4gIAo+ ICAJcmMgPSBtc21fZHNzX2NvbmZpZ192cmVnKCZwZGV2LT5kZXYsCj4gQEAgLTcwMCwxOCArNjM3 LDYgQEAgaW50IGRwdV9wb3dlcl9yZXNvdXJjZV9pbml0KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Ug KnBkZXYsCj4gIAkJZ290byB2cmVnX2VycjsKPiAgCX0KPiAgCj4gLQlyYyA9IG1zbV9kc3NfZ2V0 X2NsaygmcGRldi0+ZGV2LCBtcC0+Y2xrX2NvbmZpZywgbXAtPm51bV9jbGspOwo+IC0JaWYgKHJj KSB7Cj4gLQkJcHJfZXJyKCJjbG9jayBnZXQgZmFpbGVkIHJjPSVkXG4iLCByYyk7Cj4gLQkJZ290 byBjbGtfZXJyOwo+IC0JfQo+IC0KPiAtCXJjID0gbXNtX2Rzc19jbGtfc2V0X3JhdGUobXAtPmNs a19jb25maWcsIG1wLT5udW1fY2xrKTsKPiAtCWlmIChyYykgewo+IC0JCXByX2VycigiY2xvY2sg c2V0IHJhdGUgZmFpbGVkIHJjPSVkXG4iLCByYyk7Cj4gLQkJZ290byBidXNfZXJyOwo+IC0JfQo+ IC0KPiAgCXJjID0gZHB1X3Bvd2VyX3JlZ19idXNfcGFyc2UocGRldiwgcGhhbmRsZSk7Cj4gIAlp ZiAocmMpIHsKPiAgCQlwcl9lcnIoInJlZ2lzdGVyIGJ1cyBwYXJzZSBmYWlsZWQgcmM9JWRcbiIs IHJjKTsKPiBAQCAtNzQyLDE3ICs2NjcsMTEgQEAgaW50IGRwdV9wb3dlcl9yZXNvdXJjZV9pbml0 KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCj4gIAkJZHB1X3Bvd2VyX2RhdGFfYnVzX3Vu cmVnaXN0ZXIoJnBoYW5kbGUtPmRhdGFfYnVzX2hhbmRsZVtpXSk7Cj4gIAlkcHVfcG93ZXJfcmVn X2J1c191bnJlZ2lzdGVyKHBoYW5kbGUtPnJlZ19idXNfaGRsKTsKPiAgYnVzX2VycjoKPiAtCW1z bV9kc3NfcHV0X2NsayhtcC0+Y2xrX2NvbmZpZywgbXAtPm51bV9jbGspOwo+IC1jbGtfZXJyOgo+ ICAJbXNtX2Rzc19jb25maWdfdnJlZygmcGRldi0+ZGV2LCBtcC0+dnJlZ19jb25maWcsIG1wLT5u dW1fdnJlZywgMCk7Cj4gIHZyZWdfZXJyOgo+ICAJaWYgKG1wLT52cmVnX2NvbmZpZykKPiAgCQlk ZXZtX2tmcmVlKCZwZGV2LT5kZXYsIG1wLT52cmVnX2NvbmZpZyk7Cj4gIAltcC0+bnVtX3ZyZWcg PSAwOwo+IC1wYXJzZV92cmVnX2VycjoKPiAtCWlmIChtcC0+Y2xrX2NvbmZpZykKPiAtCQlkZXZt X2tmcmVlKCZwZGV2LT5kZXYsIG1wLT5jbGtfY29uZmlnKTsKPiAtCW1wLT5udW1fY2xrID0gMDsK PiAgZW5kOgo+ICAJcmV0dXJuIHJjOwo+ICB9Cgo8c25pcCAvPgoKLS0gClNlYW4gUGF1bCwgU29m dHdhcmUgRW5naW5lZXIsIEdvb2dsZSAvIENocm9taXVtIE9TCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCkZyZWVkcmVubyBtYWlsaW5nIGxpc3QKRnJlZWRy ZW5vQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2ZyZWVkcmVubwo=