From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeykumar Sankaran Subject: Re: [PATCH 14/25] drm/msm/dpu: remove enc_id tagging for hw blocks Date: Wed, 10 Oct 2018 11:41:57 -0700 Message-ID: References: <1539059262-8326-1-git-send-email-jsanka@codeaurora.org> <1539059262-8326-15-git-send-email-jsanka@codeaurora.org> <20181010150633.GA154160@art_vandelay> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20181010150633.GA154160@art_vandelay> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: Sean Paul Cc: linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, jcrouse-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, hoegsberg-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org, freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org T24gMjAxOC0xMC0xMCAwODowNiwgU2VhbiBQYXVsIHdyb3RlOgo+IE9uIE1vbiwgT2N0IDA4LCAy MDE4IGF0IDA5OjI3OjMxUE0gLTA3MDAsIEpleWt1bWFyIFNhbmthcmFuIHdyb3RlOgo+PiBSTSB3 YXMgdXNpbmcgZW5jb2RlciBpZCdzIHRvIHRhZyBIVyBibG9jaydzIHRvIHJlc2VydmUKPj4gYW5k IHJldHJpZXZlIGxhdGVyIGZvciBkaXNwbGF5IHBpcGVsaW5lLiBOb3cKPj4gdGhhdCBhbGwgdGhl IHJlc2VydmVkIEhXIGJsb2NrcyBmb3IgYSBkaXNwbGF5IGFyZQo+PiBtYWludGFpbmVkIGluIGl0 cyBjcnRjIHN0YXRlLCBubyByZXRyaWV2YWwgaXMgbmVlZGVkLgo+PiBUaGlzIHBhdGNoIGNsZWFu cyB1cCBSTSBvZiBlbmNvZGVyIGlkIHRhZ2dpbmcuCj4+IAo+PiBTaWduZWQtb2ZmLWJ5OiBKZXlr dW1hciBTYW5rYXJhbiA8anNhbmthQGNvZGVhdXJvcmEub3JnPgo+PiAtLS0KPj4gIGRyaXZlcnMv Z3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9ybS5jICAgIHwgOTAKPiArKysrKysrKystLS0tLS0t LS0tLS0tLS0tLS0tLS0tCj4+ICBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfdHJh Y2UuaCB8IDI4ICsrKystLS0tLS0KPj4gIDIgZmlsZXMgY2hhbmdlZCwgMzYgaW5zZXJ0aW9ucygr KSwgODIgZGVsZXRpb25zKC0pCj4+IAo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21z bS9kaXNwL2RwdTEvZHB1X3JtLmMKPiBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2Rw dV9ybS5jCj4+IGluZGV4IDMwM2YxYjMuLmE4NDYxYjggMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9ybS5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9t c20vZGlzcC9kcHUxL2RwdV9ybS5jCj4+IEBAIC0yMSw5ICsyMSw2IEBACj4+ICAjaW5jbHVkZSAi ZHB1X2VuY29kZXIuaCIKPj4gICNpbmNsdWRlICJkcHVfdHJhY2UuaCIKPj4gCj4+IC0jZGVmaW5l IFJFU0VSVkVEX0JZX09USEVSKGgsIHIpICBcCj4+IC0JCSgoaCktPmVuY19pZCAmJiAoaCktPmVu Y19pZCAhPSByKQo+PiAtCj4+ICAvKioKPj4gICAqIHN0cnVjdCBkcHVfcm1fcmVxdWlyZW1lbnRz IC0gUmVzZXJ2YXRpb24gcmVxdWlyZW1lbnRzIHBhcmFtZXRlcgo+IGJ1bmRsZQo+PiAgICogQHRv cG9sb2d5OiAgc2VsZWN0ZWQgdG9wb2xvZ3kgZm9yIHRoZSBkaXNwbGF5Cj4+IEBAIC0zOCwxMiAr MzUsMTMgQEAgc3RydWN0IGRwdV9ybV9yZXF1aXJlbWVudHMgewo+PiAgLyoqCj4+ICAgKiBzdHJ1 Y3QgZHB1X3JtX2h3X2JsayAtIGhhcmR3YXJlIGJsb2NrIHRyYWNraW5nIGxpc3QgbWVtYmVyCj4+ ICAgKiBAbGlzdDoJTGlzdCBoZWFkIGZvciBsaXN0IG9mIGFsbCBoYXJkd2FyZSBibG9ja3MgdHJh Y2tpbmcgaXRlbXMKPj4gLSAqIEBlbmNfaWQ6CUVuY29kZXIgaWQgdG8gd2hpY2ggdGhpcyBibGsg aXMgYmluZGVkCj4+ICsgKiBAaW5fdXNlOiAgICAgVHJ1ZSwgaWYgdGhlIGh3IGJsb2NrIGlzIGFz c2lnbmVkIHRvIGEgZGlzcGxheQo+IHBpcGVsaW5lLgo+PiArICoJCUZhbHNlLCBvdGhlcndpc2UK Pj4gICAqIEBodzoJCVBvaW50ZXIgdG8gdGhlIGhhcmR3YXJlIHJlZ2lzdGVyIGFjY2VzcyBvYmpl Y3QgZm9yCj4gdGhpcyBibG9jawo+PiAgICovCj4+ICBzdHJ1Y3QgZHB1X3JtX2h3X2JsayB7Cj4+ ICAJc3RydWN0IGxpc3RfaGVhZCBsaXN0Owo+PiAtCXVpbnQzMl90IGVuY19pZDsKPj4gKwlib29s IGluX3VzZTsKPiAKPiBIb3cgZG8gdGhlIHJlc2VydmF0aW9ucyB3b3JrIGZvciBURVNUX09OTFkg Y29tbWl0cz8gQXQgYSBxdWljayBnbGFuY2UgCj4gaXQKPiBsb29rcwo+IGxpa2UgdGhleSBtaWdo dCBiZSBtYXJrZWQgaW5fdXNlPwoKWWVzLiBXZSBoYXZlIGEgYnVnLiBJIGd1ZXNzIEkgc2hvdWxk IGJlIHJlbGVhc2luZyB0aGVtIGluIApkcm1fY3J0Y19kZXN0cm95X3N0YXRlLgoKVGhhbmtzIGFu ZCBSZWdhcmRzLApKZXlrdW1hciBTLgo+IAo+IFNlYW4KPiAKPj4gIAlzdHJ1Y3QgZHB1X2h3X2Js ayAqaHc7Cj4+ICB9Owo+PiAKPj4gQEAgLTUxLDIzICs0OSwxOSBAQCBzdHJ1Y3QgZHB1X3JtX2h3 X2JsayB7Cj4+ICAgKiBzdHJ1Y3QgZHB1X3JtX2h3X2l0ZXIgLSBpdGVyYXRvciBmb3IgdXNlIHdp dGggZHB1X3JtCj4+ICAgKiBAaHc6IGRwdV9odyBvYmplY3QgcmVxdWVzdGVkLCBvciBOVUxMIG9u IGZhaWx1cmUKPj4gICAqIEBibGs6IGRwdV9ybSBpbnRlcm5hbCBibG9jayByZXByZXNlbnRhdGlv bi4gQ2xpZW50cyBpZ25vcmUuIFVzZWQgCj4+IGFzCj4gaXRlcmF0b3IuCj4+IC0gKiBAZW5jX2lk OiBEUk0gSUQgb2YgRW5jb2RlciBjbGllbnQgd2lzaGVzIHRvIHNlYXJjaCBmb3IsIG9yIDAgZm9y IAo+PiBBbnkKPiBFbmNvZGVyCj4+ICAgKiBAdHlwZTogSGFyZHdhcmUgQmxvY2sgVHlwZSBjbGll bnQgd2lzaGVzIHRvIHNlYXJjaCBmb3IuCj4+ICAgKi8KPj4gIHN0cnVjdCBkcHVfcm1faHdfaXRl ciB7Cj4+ICAJc3RydWN0IGRwdV9od19ibGsgKmh3Owo+PiAgCXN0cnVjdCBkcHVfcm1faHdfYmxr ICpibGs7Cj4+IC0JdWludDMyX3QgZW5jX2lkOwo+PiAgCWVudW0gZHB1X2h3X2Jsa190eXBlIHR5 cGU7Cj4+ICB9Owo+PiAKPj4gIHN0YXRpYyB2b2lkIF9kcHVfcm1faW5pdF9od19pdGVyKAo+PiAg CQlzdHJ1Y3QgZHB1X3JtX2h3X2l0ZXIgKml0ZXIsCj4+IC0JCXVpbnQzMl90IGVuY19pZCwKPj4g IAkJZW51bSBkcHVfaHdfYmxrX3R5cGUgdHlwZSkKPj4gIHsKPj4gIAltZW1zZXQoaXRlciwgMCwg c2l6ZW9mKCppdGVyKSk7Cj4+IC0JaXRlci0+ZW5jX2lkID0gZW5jX2lkOwo+PiAgCWl0ZXItPnR5 cGUgPSB0eXBlOwo+PiAgfQo+PiAKPj4gQEAgLTkxLDE2ICs4NSwxMiBAQCBzdGF0aWMgYm9vbCBf ZHB1X3JtX2dldF9od19sb2NrZWQoc3RydWN0IGRwdV9ybSAKPj4gKnJtLAo+IHN0cnVjdCBkcHVf cm1faHdfaXRlciAqaSkKPj4gIAlpLT5ibGsgPSBsaXN0X3ByZXBhcmVfZW50cnkoaS0+YmxrLCBi bGtfbGlzdCwgbGlzdCk7Cj4+IAo+PiAgCWxpc3RfZm9yX2VhY2hfZW50cnlfY29udGludWUoaS0+ YmxrLCBibGtfbGlzdCwgbGlzdCkgewo+PiAtCQlpZiAoaS0+ZW5jX2lkID09IGktPmJsay0+ZW5j X2lkKSB7Cj4+ICsJCWlmICghaS0+YmxrLT5pbl91c2UpIHsKPj4gIAkJCWktPmh3ID0gaS0+Ymxr LT5odzsKPj4gLQkJCURQVV9ERUJVRygiZm91bmQgdHlwZSAlZCBpZCAlZCBmb3IgZW5jICVkXG4i LAo+PiAtCQkJCQlpLT50eXBlLCBpLT5ibGstPmh3LT5pZCwKPiBpLT5lbmNfaWQpOwo+PiAgCQkJ cmV0dXJuIHRydWU7Cj4+ICAJCX0KPj4gIAl9Cj4+IAo+PiAtCURQVV9ERUJVRygibm8gbWF0Y2gs IHR5cGUgJWQgZm9yIGVuYyAlZFxuIiwgaS0+dHlwZSwgaS0+ZW5jX2lkKTsKPj4gLQo+PiAgCXJl dHVybiBmYWxzZTsKPj4gIH0KPj4gCj4+IEBAIC0xOTYsNyArMTg2LDYgQEAgc3RhdGljIGludCBf ZHB1X3JtX2h3X2Jsa19jcmVhdGUoCj4+ICAJfQo+PiAKPj4gIAlibGstPmh3ID0gaHc7Cj4+IC0J YmxrLT5lbmNfaWQgPSAwOwo+PiAgCWxpc3RfYWRkX3RhaWwoJmJsay0+bGlzdCwgJnJtLT5od19i bGtzW3R5cGVdKTsKPj4gCj4+ICAJcmV0dXJuIDA7Cj4+IEBAIC0zMDEsNyArMjkwLDYgQEAgc3Rh dGljIGJvb2wgX2RwdV9ybV9uZWVkc19zcGxpdF9kaXNwbGF5KGNvbnN0IAo+PiBzdHJ1Y3QKPiBt c21fZGlzcGxheV90b3BvbG9neSAqdG9wKQo+PiAgICoJcHJvcG9zZWQgdXNlIGNhc2UgcmVxdWly ZW1lbnRzLCBpbmNsLiBoYXJkd2lyZWQgZGVwZW5kZW50IGJsb2Nrcwo+IGxpa2UKPj4gICAqCXBp bmdwb25nCj4+ICAgKiBAcm06IGRwdSByZXNvdXJjZSBtYW5hZ2VyIGhhbmRsZQo+PiAtICogQGVu Y19pZDogZW5jb2RlciBpZCByZXF1ZXN0aW5nIGZvciBhbGxvY2F0aW9uCj4+ICAgKiBAcmVxczog cHJvcG9zZWQgdXNlIGNhc2UgcmVxdWlyZW1lbnRzCj4+ICAgKiBAbG06IHByb3Bvc2VkIGxheWVy IG1peGVyLCBmdW5jdGlvbiBjaGVja3MgaWYgbG0sIGFuZCBhbGwgb3RoZXIKPiBoYXJkd2lyZWQK Pj4gICAqICAgICAgYmxvY2tzIGNvbm5lY3RlZCB0byB0aGUgbG0gKHBwKSBpcyBhdmFpbGFibGUg YW5kIGFwcHJvcHJpYXRlCj4+IEBAIC0zMTMsNyArMzAxLDYgQEAgc3RhdGljIGJvb2wgX2RwdV9y bV9uZWVkc19zcGxpdF9kaXNwbGF5KGNvbnN0IAo+PiBzdHJ1Y3QKPiBtc21fZGlzcGxheV90b3Bv bG9neSAqdG9wKQo+PiAgICovCj4+ICBzdGF0aWMgYm9vbCBfZHB1X3JtX2NoZWNrX2xtX2FuZF9n ZXRfY29ubmVjdGVkX2Jsa3MoCj4+ICAJCXN0cnVjdCBkcHVfcm0gKnJtLAo+PiAtCQl1aW50MzJf dCBlbmNfaWQsCj4+ICAJCXN0cnVjdCBkcHVfcm1fcmVxdWlyZW1lbnRzICpyZXFzLAo+PiAgCQlz dHJ1Y3QgZHB1X3JtX2h3X2JsayAqbG0sCj4+ICAJCXN0cnVjdCBkcHVfcm1faHdfYmxrICoqcHAs Cj4+IEBAIC0zMzksMTMgKzMyNiw3IEBAIHN0YXRpYyBib29sCj4gX2RwdV9ybV9jaGVja19sbV9h bmRfZ2V0X2Nvbm5lY3RlZF9ibGtzKAo+PiAgCQl9Cj4+ICAJfQo+PiAKPj4gLQkvKiBBbHJlYWR5 IHJlc2VydmVkPyAqLwo+PiAtCWlmIChSRVNFUlZFRF9CWV9PVEhFUihsbSwgZW5jX2lkKSkgewo+ PiAtCQlEUFVfREVCVUcoImxtICVkIGFscmVhZHkgcmVzZXJ2ZWRcbiIsIGxtX2NmZy0+aWQpOwo+ PiAtCQlyZXR1cm4gZmFsc2U7Cj4+IC0JfQo+PiAtCj4+IC0JX2RwdV9ybV9pbml0X2h3X2l0ZXIo Jml0ZXIsIDAsIERQVV9IV19CTEtfUElOR1BPTkcpOwo+PiArCV9kcHVfcm1faW5pdF9od19pdGVy KCZpdGVyLCBEUFVfSFdfQkxLX1BJTkdQT05HKTsKPj4gIAl3aGlsZSAoX2RwdV9ybV9nZXRfaHdf bG9ja2VkKHJtLCAmaXRlcikpIHsKPj4gIAkJaWYgKGl0ZXIuYmxrLT5ody0+aWQgPT0gbG1fY2Zn LT5waW5ncG9uZykgewo+PiAgCQkJKnBwID0gaXRlci5ibGs7Cj4+IEBAIC0zNTgsMTYgKzMzOSwx MCBAQCBzdGF0aWMgYm9vbAo+IF9kcHVfcm1fY2hlY2tfbG1fYW5kX2dldF9jb25uZWN0ZWRfYmxr cygKPj4gIAkJcmV0dXJuIGZhbHNlOwo+PiAgCX0KPj4gCj4+IC0JaWYgKFJFU0VSVkVEX0JZX09U SEVSKCpwcCwgZW5jX2lkKSkgewo+PiAtCQlEUFVfREVCVUcoImxtICVkIHBwICVkIGFscmVhZHkg cmVzZXJ2ZWRcbiIsIGxtLT5ody0+aWQsCj4+IC0JCQkJKCpwcCktPmh3LT5pZCk7Cj4+IC0JCXJl dHVybiBmYWxzZTsKPj4gLQl9Cj4+IC0KPj4gIAlyZXR1cm4gdHJ1ZTsKPj4gIH0KPj4gCj4+IC1z dGF0aWMgaW50IF9kcHVfcm1fcmVzZXJ2ZV9sbXMoc3RydWN0IGRwdV9ybSAqcm0sIHVpbnQzMl90 IGVuY19pZCwKPj4gK3N0YXRpYyBpbnQgX2RwdV9ybV9yZXNlcnZlX2xtcyhzdHJ1Y3QgZHB1X3Jt ICpybSwKPj4gIAkJCSAgICAgICBzdHJ1Y3QgZHB1X2NydGNfc3RhdGUgKmRwdV9jc3RhdGUsCj4+ ICAJCQkgICAgICAgc3RydWN0IGRwdV9ybV9yZXF1aXJlbWVudHMgKnJlcXMpCj4+IAo+PiBAQCAt Mzg0LDcgKzM1OSw3IEBAIHN0YXRpYyBpbnQgX2RwdV9ybV9yZXNlcnZlX2xtcyhzdHJ1Y3QgZHB1 X3JtICpybSwKPiB1aW50MzJfdCBlbmNfaWQsCj4+ICAJfQo+PiAKPj4gIAkvKiBGaW5kIGEgcHJp bWFyeSBtaXhlciAqLwo+PiAtCV9kcHVfcm1faW5pdF9od19pdGVyKCZpdGVyX2ksIDAsIERQVV9I V19CTEtfTE0pOwo+PiArCV9kcHVfcm1faW5pdF9od19pdGVyKCZpdGVyX2ksIERQVV9IV19CTEtf TE0pOwo+PiAgCXdoaWxlIChsbV9jb3VudCAhPSByZXFzLT50b3BvbG9neS5udW1fbG0gJiYKPj4g IAkJCV9kcHVfcm1fZ2V0X2h3X2xvY2tlZChybSwgJml0ZXJfaSkpIHsKPj4gIAkJbWVtc2V0KCZs bSwgMCwgc2l6ZW9mKGxtKSk7Cj4+IEBAIC0zOTQsMTQgKzM2OSwxNCBAQCBzdGF0aWMgaW50IF9k cHVfcm1fcmVzZXJ2ZV9sbXMoc3RydWN0IGRwdV9ybSAKPj4gKnJtLAo+IHVpbnQzMl90IGVuY19p ZCwKPj4gIAkJbG1bbG1fY291bnRdID0gaXRlcl9pLmJsazsKPj4gCj4+ICAJCWlmICghX2RwdV9y bV9jaGVja19sbV9hbmRfZ2V0X2Nvbm5lY3RlZF9ibGtzKAo+PiAtCQkJCXJtLCBlbmNfaWQsIHJl cXMsIGxtW2xtX2NvdW50XSwKPj4gKwkJCQlybSwgcmVxcywgbG1bbG1fY291bnRdLAo+PiAgCQkJ CSZwcFtsbV9jb3VudF0sIE5VTEwpKQo+PiAgCQkJY29udGludWU7Cj4+IAo+PiAgCQkrK2xtX2Nv dW50Owo+PiAKPj4gIAkJLyogVmFsaWQgcHJpbWFyeSBtaXhlciBmb3VuZCwgZmluZCBtYXRjaGlu ZyBwZWVycyAqLwo+PiAtCQlfZHB1X3JtX2luaXRfaHdfaXRlcigmaXRlcl9qLCAwLCBEUFVfSFdf QkxLX0xNKTsKPj4gKwkJX2RwdV9ybV9pbml0X2h3X2l0ZXIoJml0ZXJfaiwgRFBVX0hXX0JMS19M TSk7Cj4+IAo+PiAgCQl3aGlsZSAobG1fY291bnQgIT0gcmVxcy0+dG9wb2xvZ3kubnVtX2xtICYm Cj4+ICAJCQkJX2RwdV9ybV9nZXRfaHdfbG9ja2VkKHJtLCAmaXRlcl9qKSkgewo+PiBAQCAtNDA5 LDcgKzM4NCw3IEBAIHN0YXRpYyBpbnQgX2RwdV9ybV9yZXNlcnZlX2xtcyhzdHJ1Y3QgZHB1X3Jt ICpybSwKPiB1aW50MzJfdCBlbmNfaWQsCj4+ICAJCQkJY29udGludWU7Cj4+IAo+PiAgCQkJaWYg KCFfZHB1X3JtX2NoZWNrX2xtX2FuZF9nZXRfY29ubmVjdGVkX2Jsa3MoCj4+IC0JCQkJCXJtLCBl bmNfaWQsIHJlcXMsIGl0ZXJfai5ibGssCj4+ICsJCQkJCXJtLCByZXFzLCBpdGVyX2ouYmxrLAo+ PiAgCQkJCQkmcHBbbG1fY291bnRdLCBpdGVyX2kuYmxrKSkKPj4gIAkJCQljb250aW51ZTsKPj4g Cj4+IEBAIC00MjcsMTMgKzQwMiwxMyBAQCBzdGF0aWMgaW50IF9kcHVfcm1fcmVzZXJ2ZV9sbXMo c3RydWN0IGRwdV9ybSAKPj4gKnJtLAo+IHVpbnQzMl90IGVuY19pZCwKPj4gIAkJaWYgKCFsbVtp XSkKPj4gIAkJCWJyZWFrOwo+PiAKPj4gLQkJbG1baV0tPmVuY19pZCA9IGVuY19pZDsKPj4gLQkJ cHBbaV0tPmVuY19pZCA9IGVuY19pZDsKPj4gKwkJbG1baV0tPmluX3VzZSA9IHRydWU7Cj4+ICsJ CXBwW2ldLT5pbl91c2UgPSB0cnVlOwo+PiAKPj4gIAkJZHB1X2NzdGF0ZS0+bWl4ZXJzW2ldLmh3 X2xtID0gdG9fZHB1X2h3X21peGVyKGxtW2ldLT5odyk7Cj4+ICAJCWRwdV9jc3RhdGUtPm1peGVy c1tpXS5od19wcCA9Cj4gdG9fZHB1X2h3X3Bpbmdwb25nKHBwW2ldLT5odyk7Cj4+IAo+PiAtCQl0 cmFjZV9kcHVfcm1fcmVzZXJ2ZV9sbXMobG1baV0tPmh3LT5pZCwgRFBVX0hXX0JMS19MTSwKPiBl bmNfaWQsCj4+ICsJCXRyYWNlX2RwdV9ybV9yZXNlcnZlX2xtcyhsbVtpXS0+aHctPmlkLCBEUFVf SFdfQkxLX0xNLAo+PiAgCQkJCQkgcHBbaV0tPmh3LT5pZCk7Cj4+ICAJfQo+PiAKPj4gQEAgLTQ0 NCw3ICs0MTksNiBAQCBzdGF0aWMgaW50IF9kcHVfcm1fcmVzZXJ2ZV9sbXMoc3RydWN0IGRwdV9y bSAqcm0sCj4gdWludDMyX3QgZW5jX2lkLAo+PiAKPj4gIHN0YXRpYyBpbnQgX2RwdV9ybV9yZXNl cnZlX2N0bHMoCj4+ICAJCXN0cnVjdCBkcHVfcm0gKnJtLAo+PiAtCQl1aW50MzJfdCBlbmNfaWQs Cj4+ICAJCXN0cnVjdCBkcHVfY3J0Y19zdGF0ZSAqZHB1X2NzdGF0ZSwKPj4gIAkJY29uc3Qgc3Ry dWN0IG1zbV9kaXNwbGF5X3RvcG9sb2d5ICp0b3ApCj4+ICB7Cj4+IEBAIC00NjAsMTUgKzQzNCwx MiBAQCBzdGF0aWMgaW50IF9kcHVfcm1fcmVzZXJ2ZV9jdGxzKAo+PiAKPj4gIAluZWVkc19zcGxp dF9kaXNwbGF5ID0gX2RwdV9ybV9uZWVkc19zcGxpdF9kaXNwbGF5KHRvcCk7Cj4+IAo+PiAtCV9k cHVfcm1faW5pdF9od19pdGVyKCZpdGVyLCAwLCBEUFVfSFdfQkxLX0NUTCk7Cj4+ICsJX2RwdV9y bV9pbml0X2h3X2l0ZXIoJml0ZXIsIERQVV9IV19CTEtfQ1RMKTsKPj4gIAl3aGlsZSAoX2RwdV9y bV9nZXRfaHdfbG9ja2VkKHJtLCAmaXRlcikpIHsKPj4gIAkJY29uc3Qgc3RydWN0IGRwdV9od19j dGwgKmN0bCA9Cj4gdG9fZHB1X2h3X2N0bChpdGVyLmJsay0+aHcpOwo+PiAgCQl1bnNpZ25lZCBs b25nIGZlYXR1cmVzID0gY3RsLT5jYXBzLT5mZWF0dXJlczsKPj4gIAkJYm9vbCBoYXNfc3BsaXRf ZGlzcGxheTsKPj4gCj4+IC0JCWlmIChSRVNFUlZFRF9CWV9PVEhFUihpdGVyLmJsaywgZW5jX2lk KSkKPj4gLQkJCWNvbnRpbnVlOwo+PiAtCj4+ICAJCWhhc19zcGxpdF9kaXNwbGF5ID0gQklUKERQ VV9DVExfU1BMSVRfRElTUExBWSkgJiBmZWF0dXJlczsKPj4gCj4+ICAJCURQVV9ERUJVRygiY3Rs ICVkIGNhcHMgMHglbFhcbiIsIGl0ZXIuYmxrLT5ody0+aWQsCj4gZmVhdHVyZXMpOwo+PiBAQCAt NDg3LDExICs0NTgsMTAgQEAgc3RhdGljIGludCBfZHB1X3JtX3Jlc2VydmVfY3RscygKPj4gIAkJ cmV0dXJuIC1FTkFWQUlMOwo+PiAKPj4gIAlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShjdGxz KSAmJiBpIDwgbnVtX2N0bHM7IGkrKykgewo+PiAtCQljdGxzW2ldLT5lbmNfaWQgPSBlbmNfaWQ7 Cj4+ICsJCWN0bHNbaV0tPmluX3VzZSA9IHRydWU7Cj4+ICAJCWRwdV9jc3RhdGUtPmh3X2N0bHNb aV0gPSB0b19kcHVfaHdfY3RsKGN0bHNbaV0tPmh3KTsKPj4gCj4+IC0JCXRyYWNlX2RwdV9ybV9y ZXNlcnZlX2N0bHMoY3Rsc1tpXS0+aHctPmlkLCBEUFVfSFdfQkxLX0NUTCwKPj4gLQkJCQkJICBl bmNfaWQpOwo+PiArCQl0cmFjZV9kcHVfcm1fcmVzZXJ2ZV9jdGxzKGN0bHNbaV0tPmh3LT5pZCwK PiBEUFVfSFdfQkxLX0NUTCk7Cj4+ICAJfQo+PiAKPj4gIAlkcHVfY3N0YXRlLT5udW1fY3RscyA9 IG51bV9jdGxzOwo+PiBAQCAtNTAxLDI2ICs0NzEsMTkgQEAgc3RhdGljIGludCBfZHB1X3JtX3Jl c2VydmVfY3RscygKPj4gCj4+ICBzdGF0aWMgc3RydWN0IGRwdV9ybV9od19ibGsgKl9kcHVfcm1f cmVzZXJ2ZV9pbnRmKAo+PiAgCQlzdHJ1Y3QgZHB1X3JtICpybSwKPj4gLQkJdWludDMyX3QgZW5j X2lkLAo+PiAgCQl1aW50MzJfdCBpZCwKPj4gIAkJZW51bSBkcHVfaHdfYmxrX3R5cGUgdHlwZSkK Pj4gIHsKPj4gIAlzdHJ1Y3QgZHB1X3JtX2h3X2l0ZXIgaXRlcjsKPj4gCj4+ICAJLyogRmluZCB0 aGUgYmxvY2sgZW50cnkgaW4gdGhlIHJtLCBhbmQgbm90ZSB0aGUgcmVzZXJ2YXRpb24gKi8KPj4g LQlfZHB1X3JtX2luaXRfaHdfaXRlcigmaXRlciwgMCwgdHlwZSk7Cj4+ICsJX2RwdV9ybV9pbml0 X2h3X2l0ZXIoJml0ZXIsIHR5cGUpOwo+PiAgCXdoaWxlIChfZHB1X3JtX2dldF9od19sb2NrZWQo cm0sICZpdGVyKSkgewo+PiAgCQlpZiAoaXRlci5ibGstPmh3LT5pZCAhPSBpZCkKPj4gIAkJCWNv bnRpbnVlOwo+PiAKPj4gLQkJaWYgKFJFU0VSVkVEX0JZX09USEVSKGl0ZXIuYmxrLCBlbmNfaWQp KSB7Cj4+IC0JCQlEUFVfRVJST1IoInR5cGUgJWQgaWQgJWQgYWxyZWFkeSByZXNlcnZlZFxuIiwK PiB0eXBlLCBpZCk7Cj4+IC0JCQlyZXR1cm4gTlVMTDsKPj4gLQkJfQo+PiArCQl0cmFjZV9kcHVf cm1fcmVzZXJ2ZV9pbnRmKGl0ZXIuYmxrLT5ody0+aWQsCj4gRFBVX0hXX0JMS19JTlRGKTsKPj4g Cj4+IC0JCWl0ZXIuYmxrLT5lbmNfaWQgPSBlbmNfaWQ7Cj4+IC0JCXRyYWNlX2RwdV9ybV9yZXNl cnZlX2ludGYoaXRlci5ibGstPmh3LT5pZCwKPiBEUFVfSFdfQkxLX0lOVEYsCj4+IC0JCQkJCSAg ZW5jX2lkKTsKPj4gIAkJYnJlYWs7Cj4+ICAJfQo+PiAKPj4gQEAgLTUzNSw3ICs0OTgsNiBAQCBz dGF0aWMgc3RydWN0IGRwdV9ybV9od19ibGsgKl9kcHVfcm1fcmVzZXJ2ZV9pbnRmKAo+PiAKPj4g IHN0YXRpYyBpbnQgX2RwdV9ybV9yZXNlcnZlX2ludGZfcmVsYXRlZF9odygKPj4gIAkJc3RydWN0 IGRwdV9ybSAqcm0sCj4+IC0JCXVpbnQzMl90IGVuY19pZCwKPj4gIAkJc3RydWN0IGRwdV9jcnRj X3N0YXRlICpkcHVfY3N0YXRlLAo+PiAgCQlzdHJ1Y3QgZHB1X2VuY29kZXJfaHdfcmVzb3VyY2Vz ICpod19yZXMpCj4+ICB7Cj4+IEBAIC01NDYsMTEgKzUwOCwxMiBAQCBzdGF0aWMgaW50IF9kcHVf cm1fcmVzZXJ2ZV9pbnRmX3JlbGF0ZWRfaHcoCj4+ICAJCWlmIChod19yZXMtPmludGZzW2ldID09 IElOVEZfTU9ERV9OT05FKQo+PiAgCQkJY29udGludWU7Cj4+IAo+PiAtCQlibGsgPSBfZHB1X3Jt X3Jlc2VydmVfaW50ZihybSwgZW5jX2lkLCBpICsgSU5URl8wLAo+PiArCQlibGsgPSBfZHB1X3Jt X3Jlc2VydmVfaW50ZihybSwgaSArIElOVEZfMCwKPj4gIAkJCQlEUFVfSFdfQkxLX0lOVEYpOwo+ PiAgCQlpZiAoIWJsaykKPj4gIAkJCXJldHVybiAtRU5BVkFJTDsKPj4gCj4+ICsJCWJsay0+aW5f dXNlID0gdHJ1ZTsKPj4gIAkJZHB1X2NzdGF0ZS0+aHdfaW50ZnNbbnVtX2ludGZzKytdID0KPiB0 b19kcHVfaHdfaW50ZihibGstPmh3KTsKPj4gIAl9Cj4+IAo+PiBAQCAtNTYxLDI3ICs1MjQsMjQg QEAgc3RhdGljIGludCBfZHB1X3JtX3Jlc2VydmVfaW50Zl9yZWxhdGVkX2h3KAo+PiAKPj4gIHN0 YXRpYyBpbnQgX2RwdV9ybV9tYWtlX3Jlc2VydmF0aW9uKAo+PiAgCQlzdHJ1Y3QgZHB1X3JtICpy bSwKPj4gLQkJc3RydWN0IGRybV9lbmNvZGVyICplbmMsCj4+ICAJCXN0cnVjdCBkcHVfY3J0Y19z dGF0ZSAqZHB1X2NzdGF0ZSwKPj4gIAkJc3RydWN0IGRwdV9ybV9yZXF1aXJlbWVudHMgKnJlcXMp Cj4+ICB7Cj4+ICAJaW50IHJldDsKPj4gCj4+IC0JcmV0ID0gX2RwdV9ybV9yZXNlcnZlX2xtcyhy bSwgZW5jLT5iYXNlLmlkLCBkcHVfY3N0YXRlLCByZXFzKTsKPj4gKwlyZXQgPSBfZHB1X3JtX3Jl c2VydmVfbG1zKHJtLCBkcHVfY3N0YXRlLCByZXFzKTsKPj4gIAlpZiAocmV0KSB7Cj4+ICAJCURQ VV9FUlJPUigidW5hYmxlIHRvIGZpbmQgYXBwcm9wcmlhdGUgbWl4ZXJzXG4iKTsKPj4gIAkJcmV0 dXJuIHJldDsKPj4gIAl9Cj4+IAo+PiAtCXJldCA9IF9kcHVfcm1fcmVzZXJ2ZV9jdGxzKHJtLCBl bmMtPmJhc2UuaWQsIGRwdV9jc3RhdGUsCj4+IC0JCQkJICAgJnJlcXMtPnRvcG9sb2d5KTsKPj4g KwlyZXQgPSBfZHB1X3JtX3Jlc2VydmVfY3RscyhybSwgZHB1X2NzdGF0ZSwgJnJlcXMtPnRvcG9s b2d5KTsKPj4gIAlpZiAocmV0KSB7Cj4+ICAJCURQVV9FUlJPUigidW5hYmxlIHRvIGZpbmQgYXBw cm9wcmlhdGUgQ1RMXG4iKTsKPj4gIAkJcmV0dXJuIHJldDsKPj4gIAl9Cj4+IAo+PiAtCXJldCA9 IF9kcHVfcm1fcmVzZXJ2ZV9pbnRmX3JlbGF0ZWRfaHcocm0sIGVuYy0+YmFzZS5pZCwKPiBkcHVf Y3N0YXRlLAo+PiAtCQkJCQkgICAgICAmcmVxcy0+aHdfcmVzKTsKPj4gKwlyZXQgPSBfZHB1X3Jt X3Jlc2VydmVfaW50Zl9yZWxhdGVkX2h3KHJtLCBkcHVfY3N0YXRlLAo+ICZyZXFzLT5od19yZXMp Owo+PiAgCWlmIChyZXQpCj4+ICAJCXJldHVybiByZXQ7Cj4+IAo+PiBAQCAtNjEyLDcgKzU3Miw3 IEBAIHN0YXRpYyBpbnQgX2RwdV9ybV9yZWxlYXNlX2h3KHN0cnVjdCBkcHVfcm0gKnJtLAo+IGVu dW0gZHB1X2h3X2Jsa190eXBlIHR5cGUsCj4+IAo+PiAgCWxpc3RfZm9yX2VhY2hfZW50cnkoYmxr LCAmcm0tPmh3X2Jsa3NbdHlwZV0sIGxpc3QpIHsKPj4gIAkJaWYgKGJsay0+aHctPmlkID09IGlk KSB7Cj4+IC0JCQlibGstPmVuY19pZCA9IDA7Cj4+ICsJCQlibGstPmluX3VzZSA9IGZhbHNlOwo+ PiAgCQkJcmV0dXJuIDA7Cj4+ICAJCX0KPj4gIAl9Cj4+IEBAIC02OTksNyArNjU5LDcgQEAgaW50 IGRwdV9ybV9yZXNlcnZlKAo+PiAgCQlnb3RvIGVuZDsKPj4gIAl9Cj4+IAo+PiAtCXJldCA9IF9k cHVfcm1fbWFrZV9yZXNlcnZhdGlvbihybSwgZW5jLCBkcHVfY3N0YXRlLCAmcmVxcyk7Cj4+ICsJ cmV0ID0gX2RwdV9ybV9tYWtlX3Jlc2VydmF0aW9uKHJtLCBkcHVfY3N0YXRlLCAmcmVxcyk7Cj4+ ICAJaWYgKHJldCkgewo+PiAgCQlEUFVfRVJST1IoImZhaWxlZCB0byByZXNlcnZlIGh3IHJlc291 cmNlczogJWRcbiIsIHJldCk7Cj4+ICAJCV9kcHVfcm1fcmVsZWFzZV9yZXNlcnZhdGlvbihybSwg ZHB1X2NzdGF0ZSk7Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1 MS9kcHVfdHJhY2UuaAo+IGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3RyYWNl LmgKPj4gaW5kZXggNjM2YjMxYi4uMzA2MTk3OCAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL21zbS9kaXNwL2RwdTEvZHB1X3RyYWNlLmgKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21z bS9kaXNwL2RwdTEvZHB1X3RyYWNlLmgKPj4gQEAgLTg2OSw0OCArODY5LDQyIEBACj4+ICApOwo+ PiAKPj4gIERFQ0xBUkVfRVZFTlRfQ0xBU1MoZHB1X3JtX2l0ZXJfdGVtcGxhdGUsCj4+IC0JVFBf UFJPVE8odWludDMyX3QgaWQsIGVudW0gZHB1X2h3X2Jsa190eXBlIHR5cGUsIHVpbnQzMl90IGVu Y19pZCksCj4+IC0JVFBfQVJHUyhpZCwgdHlwZSwgZW5jX2lkKSwKPj4gKwlUUF9QUk9UTyh1aW50 MzJfdCBpZCwgZW51bSBkcHVfaHdfYmxrX3R5cGUgdHlwZSksCj4+ICsJVFBfQVJHUyhpZCwgdHlw ZSksCj4+ICAJVFBfU1RSVUNUX19lbnRyeSgKPj4gIAkJX19maWVsZCgJdWludDMyX3QsCQlpZAkp Cj4+ICAJCV9fZmllbGQoCWVudW0gZHB1X2h3X2Jsa190eXBlLAl0eXBlCSkKPj4gLQkJX19maWVs ZCgJdWludDMyX3QsCQllbmNfaWQJKQo+PiAgCSksCj4+ICAJVFBfZmFzdF9hc3NpZ24oCj4+ICAJ CV9fZW50cnktPmlkID0gaWQ7Cj4+ICAJCV9fZW50cnktPnR5cGUgPSB0eXBlOwo+PiAtCQlfX2Vu dHJ5LT5lbmNfaWQgPSBlbmNfaWQ7Cj4+ICAJKSwKPj4gLQlUUF9wcmludGsoImlkOiVkIHR5cGU6 JWQgZW5jX2lkOiV1IiwgX19lbnRyeS0+aWQsIF9fZW50cnktPnR5cGUsCj4+IC0JCSAgX19lbnRy eS0+ZW5jX2lkKQo+PiArCVRQX3ByaW50aygiaWQ6JWQgdHlwZTolZCAiLCBfX2VudHJ5LT5pZCwg X19lbnRyeS0+dHlwZSkKPj4gICk7Cj4+ICBERUZJTkVfRVZFTlQoZHB1X3JtX2l0ZXJfdGVtcGxh dGUsIGRwdV9ybV9yZXNlcnZlX2ludGYsCj4+IC0JVFBfUFJPVE8odWludDMyX3QgaWQsIGVudW0g ZHB1X2h3X2Jsa190eXBlIHR5cGUsIHVpbnQzMl90IGVuY19pZCksCj4+IC0JVFBfQVJHUyhpZCwg dHlwZSwgZW5jX2lkKQo+PiArCVRQX1BST1RPKHVpbnQzMl90IGlkLCBlbnVtIGRwdV9od19ibGtf dHlwZSB0eXBlKSwKPj4gKwlUUF9BUkdTKGlkLCB0eXBlKQo+PiAgKTsKPj4gIERFRklORV9FVkVO VChkcHVfcm1faXRlcl90ZW1wbGF0ZSwgZHB1X3JtX3Jlc2VydmVfY3RscywKPj4gLQlUUF9QUk9U Tyh1aW50MzJfdCBpZCwgZW51bSBkcHVfaHdfYmxrX3R5cGUgdHlwZSwgdWludDMyX3QgZW5jX2lk KSwKPj4gLQlUUF9BUkdTKGlkLCB0eXBlLCBlbmNfaWQpCj4+ICsJVFBfUFJPVE8odWludDMyX3Qg aWQsIGVudW0gZHB1X2h3X2Jsa190eXBlIHR5cGUpLAo+PiArCVRQX0FSR1MoaWQsIHR5cGUpCj4+ ICApOwo+PiAKPj4gIFRSQUNFX0VWRU5UKGRwdV9ybV9yZXNlcnZlX2xtcywKPj4gLQlUUF9QUk9U Tyh1aW50MzJfdCBpZCwgZW51bSBkcHVfaHdfYmxrX3R5cGUgdHlwZSwgdWludDMyX3QgZW5jX2lk LAo+PiAtCQkgdWludDMyX3QgcHBfaWQpLAo+PiAtCVRQX0FSR1MoaWQsIHR5cGUsIGVuY19pZCwg cHBfaWQpLAo+PiArCVRQX1BST1RPKHVpbnQzMl90IGlkLCBlbnVtIGRwdV9od19ibGtfdHlwZSB0 eXBlLCB1aW50MzJfdCBwcF9pZCksCj4+ICsJVFBfQVJHUyhpZCwgdHlwZSwgcHBfaWQpLAo+PiAg CVRQX1NUUlVDVF9fZW50cnkoCj4+ICAJCV9fZmllbGQoCXVpbnQzMl90LAkJaWQJKQo+PiAgCQlf X2ZpZWxkKAllbnVtIGRwdV9od19ibGtfdHlwZSwJdHlwZQkpCj4+IC0JCV9fZmllbGQoCXVpbnQz Ml90LAkJZW5jX2lkCSkKPj4gIAkJX19maWVsZCgJdWludDMyX3QsCQlwcF9pZAkpCj4+ICAJKSwK Pj4gIAlUUF9mYXN0X2Fzc2lnbigKPj4gIAkJX19lbnRyeS0+aWQgPSBpZDsKPj4gIAkJX19lbnRy eS0+dHlwZSA9IHR5cGU7Cj4+IC0JCV9fZW50cnktPmVuY19pZCA9IGVuY19pZDsKPj4gIAkJX19l bnRyeS0+cHBfaWQgPSBwcF9pZDsKPj4gIAkpLAo+PiAtCVRQX3ByaW50aygiaWQ6JWQgdHlwZTol ZCBlbmNfaWQ6JXUgcHBfaWQ6JXUiLCBfX2VudHJ5LT5pZCwKPj4gLQkJICBfX2VudHJ5LT50eXBl LCBfX2VudHJ5LT5lbmNfaWQsIF9fZW50cnktPnBwX2lkKQo+PiArCVRQX3ByaW50aygiaWQ6JWQg dHlwZTolZCBwcF9pZDoldSIsIF9fZW50cnktPmlkLAo+PiArCQkgIF9fZW50cnktPnR5cGUsIF9f ZW50cnktPnBwX2lkKQo+PiAgKTsKPj4gCj4+ICBUUkFDRV9FVkVOVChkcHVfdmJpZl93YWl0X3hp bl9oYWx0X2ZhaWwsCj4+IC0tCj4+IFRoZSBRdWFsY29tbSBJbm5vdmF0aW9uIENlbnRlciwgSW5j LiBpcyBhIG1lbWJlciBvZiB0aGUgQ29kZSBBdXJvcmEKPiBGb3J1bSwKPj4gYSBMaW51eCBGb3Vu ZGF0aW9uIENvbGxhYm9yYXRpdmUgUHJvamVjdAo+PiAKCi0tIApKZXlrdW1hciBTCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkZyZWVkcmVubyBtYWlsaW5n IGxpc3QKRnJlZWRyZW5vQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZyZWVkcmVubwo=