From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anshuman Gupta Subject: Re: [PATCH v8 1/3] drm/i915/psr: Make PSR registers relative to transcoders Date: Wed, 21 Aug 2019 10:06:01 +0530 Message-ID: <20190821043601.GB30506@intel.com> References: <20190820223325.27490-1-jose.souza@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 51BD56E8FA for ; Wed, 21 Aug 2019 04:39:22 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190820223325.27490-1-jose.souza@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: =?utf-8?B?Sm9zw6k=?= Roberto de Souza Cc: intel-gfx@lists.freedesktop.org, Lucas De Marchi , Dhinakaran Pandiyan List-Id: intel-gfx@lists.freedesktop.org T24gMjAxOS0wOC0yMCBhdCAxNTozMzoyMyAtMDcwMCwgSm9zw6kgUm9iZXJ0byBkZSBTb3V6YSB3 cm90ZToKPiBQU1IgcmVnaXN0ZXJzIGFyZSBhIG1lc3MsIHNvbWUgaGF2ZSB0aGUgZnVsbCBhZGRy ZXNzIHdoaWxlIG90aGVycyBqdXN0Cj4gaGF2ZSB0aGUgYWRkaXRpb25hbCBvZmZzZXQgZnJvbSBw c3JfbW1pb19iYXNlLgo+IAo+IEZvciBCRFcrIHBzcl9tbWlvX2Jhc2UgaXMgbm90aGluZyBtb3Jl IHRoYW4gVFJBTlNDT0RFUl9FRFBfT0ZGU0VUICsKPiAweDgwMCBhbmQgdXNpbmcgaXQgbWFrZXMg bW9yZSBkaWZmaWN1bHQgZm9yIHBlb3BsZSB3aXRoIGFuIFBTUgo+IHJlZ2lzdGVyIGFkZHJlc3Mg b3IgUFNSIHJlZ2lzdGVyIG5hbWUgZnJvbSBmcm9tIEJTcGVjIGFzIGk5MTUgYWxzbwo+IGRvbid0 IG1hdGNoIHRoZSBCU3BlYyBuYW1lcy4KPiBGb3IgSFNXIHBzcl9tbWlvX2Jhc2UgaXMgX0RESV9C VUZfQ1RMX0EgKyAweDgwMCBhbmQgUFNSIHJlZ2lzdGVycyBhcmUKPiBvbmx5IGF2YWlsYWJsZSBp biBERElBLgo+IAo+IE90aGVyIHJlYXNvbiB0byBtYWtlIHJlbGF0aXZlIHRvIHRyYW5zY29kZXIg aXMgdGhhdCBzaW5jZSBCRFcgZXZlcnkKPiB0cmFuc2NvZGVyIGhhdmUgUFNSIHJlZ2lzdGVycywg c28gaW4gdGhlb3J5IGl0IHNob3VsZCBiZSBwb3NzaWJsZSB0bwo+IGhhdmUgUFNSIGVuYWJsZWQg aW4gYSBub24tZURQIHRyYW5zY29kZXIuCj4gCj4gU28gZm9yIEJEVysgd2UgY2FuIHVzZSBfVFJB TlMyKCkgdG8gZ2V0IHRoZSByZWdpc3RlciBvZmZzZXQgb2YgYW55Cj4gUFNSIHJlZ2lzdGVyIGlu IGFueSB0cmFuc2NvZGVyIHdoaWxlIGZvciBIU1cgd2UgaGF2ZSBfSFNXX1BTUl9BREoKPiB0aGF0 IHdpbGwgY2FsY3VsYXRlIHRoZSByZWdpc3RlciBvZmZzZXQgZm9yIHRoZSBzaW5nbGUgUFNSIGlu c3RhbmNlLAo+IG5vdGluZyB0aGF0IHdlIGFyZSBhbHJlYWR5IGd1YXJkZWQgYWJvdXQgdHJ5aW5n IHRvIGVuYWJsZSBQU1IgaW4gb3RoZXIKPiBwb3J0IHRoYW4gRERJQSBvbiBIU1cgYnkgdGhlICdp ZiAoZGlnX3BvcnQtPmJhc2UucG9ydCAhPSBQT1JUX0EpJyBpbgo+IGludGVsX3Bzcl9jb21wdXRl X2NvbmZpZygpLCB0aGlzIGNoZWNrIHNob3VsZCBvbmx5IGJlIHZhbGlkIGZvciBIU1cKPiBhbmQg d2lsbCBiZSBjaGFuZ2VkIGluIGZ1dHVyZS4KPiBQU1IyIHJlZ2lzdGVycyBhbmQgUFNSX0VWRU5U IHdhcyBhZGRlZCBhZnRlciBIYXN3ZWxsIHNvIHRoYXQgaXMgd2h5Cj4gX1BTUl9BREooKSBpcyBu b3QgdXNlZCBpbiBzb21lIG1hY3Jvcy4KPiAKPiBUaGUgb25seSByZWdpc3RlcnMgdGhhdCBjYW4g bm90IGJlIHJlbGF0aXZlIHRvIHRyYW5zY29kZXIgYXJlCj4gUFNSX0lNUiBhbmQgUFNSX0lJUiB0 aGF0IGFyZSBub3QgcmVsYXRpdmUgdG8gYW55dGhpbmcsIHNvIGtlZXBpbmcgaXQKPiBoYXJkY29k ZWQuIFRoYXQgY2hhbmdlZCBmb3IgVEdMIGJ1dCBpdCB3aWxsIGJlIGhhbmRsZWQgaW4gYW5vdGhl cgo+IHBhdGNoLgo+IAo+IEFsc28gcmVtb3ZpbmcgQkRXX0VEUF9QU1JfQkFTRSBmcm9tIEdWVCBi ZWNhdXNlIGl0IGlzIG5vdCB1c2VkIGFzIGl0Cj4gaXMgdGhlIG9ubHkgUFNSIHJlZ2lzdGVyIHRo YXQgR1ZUIGhhdmUuCj4gCj4gdjU6Cj4gLSBNYWNyb3MgY2hhbmdlZCB0byBiZSBtb3JlIGV4cGxp Y2l0IGFib3V0IEhTVyAoRGhpbmFrYXJhbikKPiAtIFNxdWFzaGVkIHdpdGggdGhlIHBhdGNoIHRo YXQgYWRkZWQgdGhlIHRyYW4gcGFyYW1ldGVyIHRvIHRoZQo+IG1hY3JvcyAoRGhpbmFrYXJhbikK PiAKPiB2NjoKPiAtIENoZWNraW5nIGZvciBpbnRlcnJ1cHRpb24gZXJyb3JzIGFmdGVyIG1vZHVs ZSByZWxvYWQgaW4gdGhlCj4gdHJhbnNjb2RlciB0aGF0IHdpbGwgYmUgdXNlZCAoRGhpbmFrYXJh bikKPiAtIFVzaW5nIGxvd2VyY2FzZSB0byB0aGUgcmVnaXN0ZXJzIG9mZnNldHMKPiAKPiB2NzoK PiAtIFJlbW92aW5nIElTX0hBU1dFTEwoKSBmcm9tIHJlZ2lzdGVycyBtYWNyb3MoSmFuaSkKPiAK PiBDYzogRGhpbmFrYXJhbiBQYW5kaXlhbiA8ZGhpbmFrYXJhbi5wYW5kaXlhbkBpbnRlbC5jb20+ Cj4gQ2M6IFJvZHJpZ28gVml2aSA8cm9kcmlnby52aXZpQGludGVsLmNvbT4KPiBDYzogSmFuaSBO aWt1bGEgPGphbmkubmlrdWxhQGxpbnV4LmludGVsLmNvbT4KPiBDYzogVmlsbGUgU3lyasOkbMOk IDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiBDYzogWmhpIFdhbmcgPHpoaS5hLndh bmdAaW50ZWwuY29tPgo+IFJldmlld2VkLWJ5OiBMdWNhcyBEZSBNYXJjaGkgPGx1Y2FzLmRlbWFy Y2hpQGludGVsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBKb3PDqSBSb2JlcnRvIGRlIFNvdXphIDxq b3NlLnNvdXphQGludGVsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBMdWNhcyBEZSBNYXJjaGkgPGx1 Y2FzLmRlbWFyY2hpQGludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF9wc3IuYyB8IDEwNCArKysrKysrKysrKysrLS0tLS0tLS0tLQo+ICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9ndnQvaGFuZGxlcnMuYyAgICAgIHwgICAyICstCj4gIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jICAgICAgfCAgMTggKystLQo+ICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgIHwgICA1ICstCj4gIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfcmVnLmggICAgICAgICAgfCAgNTcgKysrKysrKysrLS0tLQo+ICA1IGZpbGVzIGNo YW5nZWQsIDExMyBpbnNlcnRpb25zKCspLCA3MyBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9wc3IuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfcHNyLmMKPiBpbmRleCAzYmZiNzIwNTYwYzIuLjc3MjMy ZjZiY2ExNyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X3Bzci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9wc3IuYwo+ IEBAIC0zOTAsNyArMzkwLDcgQEAgc3RhdGljIHZvaWQgaHN3X3Bzcl9zZXR1cF9hdXgoc3RydWN0 IGludGVsX2RwICppbnRlbF9kcCkKPiAgCj4gIAlCVUlMRF9CVUdfT04oc2l6ZW9mKGF1eF9tc2cp ID4gMjApOwo+ICAJZm9yIChpID0gMDsgaSA8IHNpemVvZihhdXhfbXNnKTsgaSArPSA0KQo+IC0J CUk5MTVfV1JJVEUoRURQX1BTUl9BVVhfREFUQShpID4+IDIpLAo+ICsJCUk5MTVfV1JJVEUoRURQ X1BTUl9BVVhfREFUQShkZXZfcHJpdi0+cHNyLnRyYW5zY29kZXIsIGkgPj4gMiksCj4gIAkJCSAg IGludGVsX2RwX3BhY2tfYXV4KCZhdXhfbXNnW2ldLCBzaXplb2YoYXV4X21zZykgLSBpKSk7Cj4g IAo+ICAJYXV4X2Nsb2NrX2RpdmlkZXIgPSBpbnRlbF9kcC0+Z2V0X2F1eF9jbG9ja19kaXZpZGVy KGludGVsX2RwLCAwKTsKPiBAQCAtNDAxLDcgKzQwMSw3IEBAIHN0YXRpYyB2b2lkIGhzd19wc3Jf c2V0dXBfYXV4KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gIAo+ICAJLyogU2VsZWN0IG9u bHkgdmFsaWQgYml0cyBmb3IgU1JEX0FVWF9DVEwgKi8KPiAgCWF1eF9jdGwgJj0gcHNyX2F1eF9t YXNrOwo+IC0JSTkxNV9XUklURShFRFBfUFNSX0FVWF9DVEwsIGF1eF9jdGwpOwo+ICsJSTkxNV9X UklURShFRFBfUFNSX0FVWF9DVEwoZGV2X3ByaXYtPnBzci50cmFuc2NvZGVyKSwgYXV4X2N0bCk7 Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkIGludGVsX3Bzcl9lbmFibGVfc2luayhzdHJ1Y3QgaW50 ZWxfZHAgKmludGVsX2RwKQo+IEBAIC00OTEsOCArNDkxLDkgQEAgc3RhdGljIHZvaWQgaHN3X2Fj dGl2YXRlX3BzcjEoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiAgCWlmIChJTlRFTF9HRU4o ZGV2X3ByaXYpID49IDgpCj4gIAkJdmFsIHw9IEVEUF9QU1JfQ1JDX0VOQUJMRTsKPiAgCj4gLQl2 YWwgfD0gSTkxNV9SRUFEKEVEUF9QU1JfQ1RMKSAmIEVEUF9QU1JfUkVTVE9SRV9QU1JfQUNUSVZF X0NUWF9NQVNLOwo+IC0JSTkxNV9XUklURShFRFBfUFNSX0NUTCwgdmFsKTsKPiArCXZhbCB8PSAo STkxNV9SRUFEKEVEUF9QU1JfQ1RMKGRldl9wcml2LT5wc3IudHJhbnNjb2RlcikpICYKPiArCQlF RFBfUFNSX1JFU1RPUkVfUFNSX0FDVElWRV9DVFhfTUFTSyk7Cj4gKwlJOTE1X1dSSVRFKEVEUF9Q U1JfQ1RMKGRldl9wcml2LT5wc3IudHJhbnNjb2RlciksIHZhbCk7Cj4gIH0KPiAgCj4gIHN0YXRp YyB2b2lkIGhzd19hY3RpdmF0ZV9wc3IyKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gQEAg LTUyOCw5ICs1MjksOSBAQCBzdGF0aWMgdm9pZCBoc3dfYWN0aXZhdGVfcHNyMihzdHJ1Y3QgaW50 ZWxfZHAgKmludGVsX2RwKQo+ICAJICogUFNSMiBIVyBpcyBpbmNvcnJlY3RseSB1c2luZyBFRFBf UFNSX1RQMV9UUDNfU0VMIGFuZCBCU3BlYyBpcwo+ICAJICogcmVjb21tZW5kaW5nIGtlZXAgdGhp cyBiaXQgdW5zZXQgd2hpbGUgUFNSMiBpcyBlbmFibGVkLgo+ICAJICovCj4gLQlJOTE1X1dSSVRF KEVEUF9QU1JfQ1RMLCAwKTsKPiArCUk5MTVfV1JJVEUoRURQX1BTUl9DVEwoZGV2X3ByaXYtPnBz ci50cmFuc2NvZGVyKSwgMCk7Cj4gIAo+IC0JSTkxNV9XUklURShFRFBfUFNSMl9DVEwsIHZhbCk7 Cj4gKwlJOTE1X1dSSVRFKEVEUF9QU1IyX0NUTChkZXZfcHJpdi0+cHNyLnRyYW5zY29kZXIpLCB2 YWwpOwo+ICB9Cj4gIAo+ICBzdGF0aWMgYm9vbCBpbnRlbF9wc3IyX2NvbmZpZ192YWxpZChzdHJ1 Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+IEBAIC02MDYsMTAgKzYwNyw5IEBAIHZvaWQgaW50ZWxf cHNyX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gIAo+ICAJLyoK PiAgCSAqIEhTVyBzcGVjIGV4cGxpY2l0bHkgc2F5cyBQU1IgaXMgdGllZCB0byBwb3J0IEEuCj4g LQkgKiBCRFcrIHBsYXRmb3JtcyB3aXRoIERESSBpbXBsZW1lbnRhdGlvbiBvZiBQU1IgaGF2ZSBk aWZmZXJlbnQKPiAtCSAqIFBTUiByZWdpc3RlcnMgcGVyIHRyYW5zY29kZXIgYW5kIHdlIG9ubHkg aW1wbGVtZW50IHRyYW5zY29kZXIgRURQCj4gLQkgKiBvbmVzLiBTaW5jZSBieSBEaXNwbGF5IGRl c2lnbiB0cmFuc2NvZGVyIEVEUCBpcyB0aWVkIHRvIHBvcnQgQQo+IC0JICogd2UgY2FuIHNhZmVs eSBlc2NhcGUgYmFzZWQgb24gdGhlIHBvcnQgQS4KPiArCSAqIEJEVysgcGxhdGZvcm1zIGhhdmUg YSBpbnN0YW5jZSBvZiBQU1IgcmVnaXN0ZXJzIHBlciB0cmFuc2NvZGVyIGJ1dAo+ICsJICogZm9y IG5vdyBpdCBvbmx5IHN1cHBvcnRzIG9uZSBpbnN0YW5jZSBvZiBQU1IsIHNvIGxldHMga2VlcCBp dAo+ICsJICogaGFyZGNvZGVkIHRvIFBPUlRfQQo+ICAJICovCj4gIAlpZiAoZGlnX3BvcnQtPmJh c2UucG9ydCAhPSBQT1JUX0EpIHsKPiAgCQlEUk1fREVCVUdfS01TKCJQU1IgY29uZGl0aW9uIGZh aWxlZDogUG9ydCBub3Qgc3VwcG9ydGVkXG4iKTsKPiBAQCAtNjQ5LDggKzY0OSw4IEBAIHN0YXRp YyB2b2lkIGludGVsX3Bzcl9hY3RpdmF0ZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ICAJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZHBfdG9faTkxNShpbnRlbF9kcCk7 Cj4gIAo+ICAJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOSkKPiAtCQlXQVJOX09OKEk5MTVf UkVBRChFRFBfUFNSMl9DVEwpICYgRURQX1BTUjJfRU5BQkxFKTsKPiAtCVdBUk5fT04oSTkxNV9S RUFEKEVEUF9QU1JfQ1RMKSAmIEVEUF9QU1JfRU5BQkxFKTsKPiArCQlXQVJOX09OKEk5MTVfUkVB RChFRFBfUFNSMl9DVEwoZGV2X3ByaXYtPnBzci50cmFuc2NvZGVyKSkgJiBFRFBfUFNSMl9FTkFC TEUpOwo+ICsJV0FSTl9PTihJOTE1X1JFQUQoRURQX1BTUl9DVEwoZGV2X3ByaXYtPnBzci50cmFu c2NvZGVyKSkgJiBFRFBfUFNSX0VOQUJMRSk7Cj4gIAlXQVJOX09OKGRldl9wcml2LT5wc3IuYWN0 aXZlKTsKPiAgCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmRldl9wcml2LT5wc3IubG9jayk7Cj4gIAo+ IEBAIC03MjAsMTkgKzcyMCwzNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9wc3JfZW5hYmxlX3NvdXJj ZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ICAJaWYgKElOVEVMX0dFTihkZXZfcHJpdikg PCAxMSkKPiAgCQltYXNrIHw9IEVEUF9QU1JfREVCVUdfTUFTS19ESVNQX1JFR19XUklURTsKPiAg Cj4gLQlJOTE1X1dSSVRFKEVEUF9QU1JfREVCVUcsIG1hc2spOwo+ICsJSTkxNV9XUklURShFRFBf UFNSX0RFQlVHKGRldl9wcml2LT5wc3IudHJhbnNjb2RlciksIG1hc2spOwo+ICB9Cj4gIAo+ICBz dGF0aWMgdm9pZCBpbnRlbF9wc3JfZW5hYmxlX2xvY2tlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsCj4gIAkJCQkgICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNy dGNfc3RhdGUpCj4gIHsKPiAgCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBkZXZfcHJpdi0+ cHNyLmRwOwo+ICsJdTMyIHZhbDsKPiAgCj4gIAlXQVJOX09OKGRldl9wcml2LT5wc3IuZW5hYmxl ZCk7Cj4gIAo+ICAJZGV2X3ByaXYtPnBzci5wc3IyX2VuYWJsZWQgPSBpbnRlbF9wc3IyX2VuYWJs ZWQoZGV2X3ByaXYsIGNydGNfc3RhdGUpOwo+ICAJZGV2X3ByaXYtPnBzci5idXN5X2Zyb250YnVm ZmVyX2JpdHMgPSAwOwo+ICAJZGV2X3ByaXYtPnBzci5waXBlID0gdG9faW50ZWxfY3J0YyhjcnRj X3N0YXRlLT5iYXNlLmNydGMpLT5waXBlOwo+ICsJZGV2X3ByaXYtPnBzci50cmFuc2NvZGVyID0g Y3J0Y19zdGF0ZS0+Y3B1X3RyYW5zY29kZXI7Cj4gKwo+ICsJLyoKPiArCSAqIElmIGEgUFNSIGVy cm9yIGhhcHBlbmVkIGFuZCB0aGUgZHJpdmVyIGlzIHJlbG9hZGVkLCB0aGUgRURQX1BTUl9JSVIK PiArCSAqIHdpbGwgc3RpbGwga2VlcCB0aGUgZXJyb3Igc2V0IGV2ZW4gYWZ0ZXIgdGhlIHJlc2V0 IGRvbmUgaW4gdGhlCj4gKwkgKiBpcnFfcHJlaW5zdGFsbCBhbmQgaXJxX3VuaW5zdGFsbCBob29r cy4KPiArCSAqIEFuZCBlbmFibGluZyBpbiB0aGlzIHNpdHVhdGlvbiBjYXVzZSB0aGUgc2NyZWVu IHRvIGZyZWV6ZSBpbiB0aGUKPiArCSAqIGZpcnN0IHRpbWUgdGhhdCBQU1IgSFcgdHJpZXMgdG8g YWN0aXZhdGUgc28gbGV0cyBrZWVwIFBTUiBkaXNhYmxlZAo+ICsJICogdG8gYXZvaWQgYW55IHJl bmRlcmluZyBwcm9ibGVtcy4KPiArCSAqLwo+ICsJdmFsID0gSTkxNV9SRUFEKEVEUF9QU1JfSUlS KTsKPiArCXZhbCAmPSBFRFBfUFNSX0VSUk9SKGVkcF9wc3Jfc2hpZnQoZGV2X3ByaXYtPnBzci50 cmFuc2NvZGVyKSk7Cj4gKwlpZiAodmFsKSB7Cj4gKwkJZGV2X3ByaXYtPnBzci5zaW5rX25vdF9y ZWxpYWJsZSA9IHRydWU7Cj4gKwkJRFJNX0RFQlVHX0tNUygiUFNSIGludGVycnVwdGlvbiBlcnJv ciBzZXQsIG5vdCBlbmFibGluZyBQU1JcbiIpOwo+ICsJCXJldHVybjsKPiArCX0KPiAgCj4gIAlE Uk1fREVCVUdfS01TKCJFbmFibGluZyBQU1Ilc1xuIiwKPiAgCQkgICAgICBkZXZfcHJpdi0+cHNy LnBzcjJfZW5hYmxlZCA/ICIyIiA6ICIxIik7Cj4gQEAgLTc4MiwyMCArODAwLDI3IEBAIHN0YXRp YyB2b2lkIGludGVsX3Bzcl9leGl0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikK PiAgCXUzMiB2YWw7Cj4gIAo+ICAJaWYgKCFkZXZfcHJpdi0+cHNyLmFjdGl2ZSkgewo+IC0JCWlm IChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDkpCj4gLQkJCVdBUk5fT04oSTkxNV9SRUFEKEVEUF9Q U1IyX0NUTCkgJiBFRFBfUFNSMl9FTkFCTEUpOwo+IC0JCVdBUk5fT04oSTkxNV9SRUFEKEVEUF9Q U1JfQ1RMKSAmIEVEUF9QU1JfRU5BQkxFKTsKPiArCQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+ PSA5KSB7Cj4gKwkJCXZhbCA9IEk5MTVfUkVBRChFRFBfUFNSMl9DVEwoZGV2X3ByaXYtPnBzci50 cmFuc2NvZGVyKSk7Cj4gKwkJCVdBUk5fT04odmFsICYgRURQX1BTUjJfRU5BQkxFKTsKPiArCQl9 Cj4gKwo+ICsJCXZhbCA9IEk5MTVfUkVBRChFRFBfUFNSX0NUTChkZXZfcHJpdi0+cHNyLnRyYW5z Y29kZXIpKTsKPiArCQlXQVJOX09OKHZhbCAmIEVEUF9QU1JfRU5BQkxFKTsKPiArCj4gIAkJcmV0 dXJuOwo+ICAJfQo+ICAKPiAgCWlmIChkZXZfcHJpdi0+cHNyLnBzcjJfZW5hYmxlZCkgewo+IC0J CXZhbCA9IEk5MTVfUkVBRChFRFBfUFNSMl9DVEwpOwo+ICsJCXZhbCA9IEk5MTVfUkVBRChFRFBf UFNSMl9DVEwoZGV2X3ByaXYtPnBzci50cmFuc2NvZGVyKSk7Cj4gIAkJV0FSTl9PTighKHZhbCAm IEVEUF9QU1IyX0VOQUJMRSkpOwo+IC0JCUk5MTVfV1JJVEUoRURQX1BTUjJfQ1RMLCB2YWwgJiB+ RURQX1BTUjJfRU5BQkxFKTsKPiArCQl2YWwgJj0gfkVEUF9QU1IyX0VOQUJMRTsKPiArCQlJOTE1 X1dSSVRFKEVEUF9QU1IyX0NUTChkZXZfcHJpdi0+cHNyLnRyYW5zY29kZXIpLCB2YWwpOwo+ICAJ fSBlbHNlIHsKPiAtCQl2YWwgPSBJOTE1X1JFQUQoRURQX1BTUl9DVEwpOwo+ICsJCXZhbCA9IEk5 MTVfUkVBRChFRFBfUFNSX0NUTChkZXZfcHJpdi0+cHNyLnRyYW5zY29kZXIpKTsKPiAgCQlXQVJO X09OKCEodmFsICYgRURQX1BTUl9FTkFCTEUpKTsKPiAtCQlJOTE1X1dSSVRFKEVEUF9QU1JfQ1RM LCB2YWwgJiB+RURQX1BTUl9FTkFCTEUpOwo+ICsJCXZhbCAmPSB+RURQX1BTUl9FTkFCTEU7Cj4g KwkJSTkxNV9XUklURShFRFBfUFNSX0NUTChkZXZfcHJpdi0+cHNyLnRyYW5zY29kZXIpLCB2YWwp Owo+ICAJfQo+ICAJZGV2X3ByaXYtPnBzci5hY3RpdmUgPSBmYWxzZTsKPiAgfQo+IEBAIC04MTcs MTAgKzg0MiwxMCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9wc3JfZGlzYWJsZV9sb2NrZWQoc3RydWN0 IGludGVsX2RwICppbnRlbF9kcCkKPiAgCWludGVsX3Bzcl9leGl0KGRldl9wcml2KTsKPiAgCj4g IAlpZiAoZGV2X3ByaXYtPnBzci5wc3IyX2VuYWJsZWQpIHsKPiAtCQlwc3Jfc3RhdHVzID0gRURQ X1BTUjJfU1RBVFVTOwo+ICsJCXBzcl9zdGF0dXMgPSBFRFBfUFNSMl9TVEFUVVMoZGV2X3ByaXYt PnBzci50cmFuc2NvZGVyKTsKPiAgCQlwc3Jfc3RhdHVzX21hc2sgPSBFRFBfUFNSMl9TVEFUVVNf U1RBVEVfTUFTSzsKPiAgCX0gZWxzZSB7Cj4gLQkJcHNyX3N0YXR1cyA9IEVEUF9QU1JfU1RBVFVT Owo+ICsJCXBzcl9zdGF0dXMgPSBFRFBfUFNSX1NUQVRVUyhkZXZfcHJpdi0+cHNyLnRyYW5zY29k ZXIpOwo+ICAJCXBzcl9zdGF0dXNfbWFzayA9IEVEUF9QU1JfU1RBVFVTX1NUQVRFX01BU0s7Cj4g IAl9Cj4gIAo+IEBAIC05NjMsNyArOTg4LDggQEAgaW50IGludGVsX3Bzcl93YWl0X2Zvcl9pZGxl KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpuZXdfY3J0Y19zdGF0ZSwKPiAgCSAqIGRl ZmVuc2l2ZSBlbm91Z2ggdG8gY292ZXIgZXZlcnl0aGluZy4KPiAgCSAqLwo+ICAKPiAtCXJldHVy biBfX2ludGVsX3dhaXRfZm9yX3JlZ2lzdGVyKCZkZXZfcHJpdi0+dW5jb3JlLCBFRFBfUFNSX1NU QVRVUywKPiArCXJldHVybiBfX2ludGVsX3dhaXRfZm9yX3JlZ2lzdGVyKCZkZXZfcHJpdi0+dW5j b3JlLAo+ICsJCQkJCSBFRFBfUFNSX1NUQVRVUyhkZXZfcHJpdi0+cHNyLnRyYW5zY29kZXIpLAo+ ICAJCQkJCSBFRFBfUFNSX1NUQVRVU19TVEFURV9NQVNLLAo+ICAJCQkJCSBFRFBfUFNSX1NUQVRV U19TVEFURV9JRExFLCAyLCA1MCwKPiAgCQkJCQkgb3V0X3ZhbHVlKTsKPiBAQCAtOTc5LDEwICsx MDA1LDEwIEBAIHN0YXRpYyBib29sIF9fcHNyX3dhaXRfZm9yX2lkbGVfbG9ja2VkKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgCQlyZXR1cm4gZmFsc2U7Cj4gIAo+ICAJaWYg KGRldl9wcml2LT5wc3IucHNyMl9lbmFibGVkKSB7Cj4gLQkJcmVnID0gRURQX1BTUjJfU1RBVFVT Owo+ICsJCXJlZyA9IEVEUF9QU1IyX1NUQVRVUyhkZXZfcHJpdi0+cHNyLnRyYW5zY29kZXIpOwo+ ICAJCW1hc2sgPSBFRFBfUFNSMl9TVEFUVVNfU1RBVEVfTUFTSzsKPiAgCX0gZWxzZSB7Cj4gLQkJ cmVnID0gRURQX1BTUl9TVEFUVVM7Cj4gKwkJcmVnID0gRURQX1BTUl9TVEFUVVMoZGV2X3ByaXYt PnBzci50cmFuc2NvZGVyKTsKPiAgCQltYXNrID0gRURQX1BTUl9TVEFUVVNfU1RBVEVfTUFTSzsK PiAgCX0KPiAgCj4gQEAgLTEyMDgsMzYgKzEyMzQsMjQgQEAgdm9pZCBpbnRlbF9wc3JfZmx1c2go c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAgKi8KPiAgdm9pZCBpbnRlbF9w c3JfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIHsKPiAtCXUzMiB2 YWw7Cj4gLQo+ICAJaWYgKCFIQVNfUFNSKGRldl9wcml2KSkKPiAgCQlyZXR1cm47Cj4gIAo+IC0J ZGV2X3ByaXYtPnBzcl9tbWlvX2Jhc2UgPSBJU19IQVNXRUxMKGRldl9wcml2KSA/Cj4gLQkJSFNX X0VEUF9QU1JfQkFTRSA6IEJEV19FRFBfUFNSX0JBU0U7Cj4gLQo+ICAJaWYgKCFkZXZfcHJpdi0+ cHNyLnNpbmtfc3VwcG9ydCkKPiAgCQlyZXR1cm47Cj4gIAo+ICsJaWYgKElTX0hBU1dFTEwoZGV2 X3ByaXYpKQo+ICsJCS8qCj4gKwkJICogSFNXIGRvbid0IGhhdmUgUFNSIHJlZ2lzdGVycyBvbiB0 aGUgc2FtZSBzcGFjZSBhcyB0cmFuc2NvZGVyCj4gKwkJICogc28gc2V0IHRoaXMgdG8gYSB2YWx1 ZSB0aGF0IHdoZW4gc3VidHJhY3QgdG8gdGhlIHJlZ2lzdGVyCj4gKwkJICogaW4gdHJhbnNjb2Rl ciBzcGFjZSByZXN1bHRzIGluIHRoZSByaWdodCBvZmZzZXQgZm9yIEhTVwo+ICsJCSAqLwo+ICsJ CWRldl9wcml2LT5oc3dfcHNyX21taW9fYWRqdXN0ID0gX1NSRF9DVExfRURQIC0gX0hTV19FRFBf UFNSX0JBU0U7Cj4gKwo+ICAJaWYgKGk5MTVfbW9kcGFyYW1zLmVuYWJsZV9wc3IgPT0gLTEpCj4g IAkJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPCA5IHx8ICFkZXZfcHJpdi0+dmJ0LnBzci5lbmFi bGUpCj4gIAkJCWk5MTVfbW9kcGFyYW1zLmVuYWJsZV9wc3IgPSAwOwo+ICAKPiAtCS8qCj4gLQkg KiBJZiBhIFBTUiBlcnJvciBoYXBwZW5lZCBhbmQgdGhlIGRyaXZlciBpcyByZWxvYWRlZCwgdGhl IEVEUF9QU1JfSUlSCj4gLQkgKiB3aWxsIHN0aWxsIGtlZXAgdGhlIGVycm9yIHNldCBldmVuIGFm dGVyIHRoZSByZXNldCBkb25lIGluIHRoZQo+IC0JICogaXJxX3ByZWluc3RhbGwgYW5kIGlycV91 bmluc3RhbGwgaG9va3MuCj4gLQkgKiBBbmQgZW5hYmxpbmcgaW4gdGhpcyBzaXR1YXRpb24gY2F1 c2UgdGhlIHNjcmVlbiB0byBmcmVlemUgaW4gdGhlCj4gLQkgKiBmaXJzdCB0aW1lIHRoYXQgUFNS IEhXIHRyaWVzIHRvIGFjdGl2YXRlIHNvIGxldHMga2VlcCBQU1IgZGlzYWJsZWQKPiAtCSAqIHRv IGF2b2lkIGFueSByZW5kZXJpbmcgcHJvYmxlbXMuCj4gLQkgKi8KPiAtCXZhbCA9IEk5MTVfUkVB RChFRFBfUFNSX0lJUik7Cj4gLQl2YWwgJj0gRURQX1BTUl9FUlJPUihlZHBfcHNyX3NoaWZ0KFRS QU5TQ09ERVJfRURQKSk7Cj4gLQlpZiAodmFsKSB7Cj4gLQkJRFJNX0RFQlVHX0tNUygiUFNSIGlu dGVycnVwdGlvbiBlcnJvciBzZXRcbiIpOwo+IC0JCWRldl9wcml2LT5wc3Iuc2lua19ub3RfcmVs aWFibGUgPSB0cnVlOwo+IC0JfQo+IC0KRWFybGllciBFRFBfUFNSX0lJUiB3YXMgYmVpbmcgY2hl Y2tlZCBvbmx5IGluIGRyaXZlciBpbml0IHBhdGgsIApub3cgaXQgaGFzIGJlZW4gY2hlY2tlZCBm b3IgZXZlcnkgbW9kZXNldC9mYXN0c2V0IHBhdGggaW4KaW50ZWxfcHNyX2VuYWJsZV9sb2NrZWQo KS4gSXMgaXQgb2sgPwpJZiBpdCBpcyBqdXN0aWZpZWQgd2h5IGFyZSB3ZSBub3QgY2hlY2tpbmcg aXQgaW4gaW50ZWxfcHNyX2ZsdXNoKCkKdGhlcmUgYWxzbyBpdCBlbmFibGVzIHBzci4KPiAgCS8q IFNldCBsaW5rX3N0YW5kYnkgeCBsaW5rX29mZiBkZWZhdWx0cyAqLwo+ICAJaWYgKElTX0hBU1dF TEwoZGV2X3ByaXYpIHx8IElTX0JST0FEV0VMTChkZXZfcHJpdikpCj4gIAkJLyogSFNXIGFuZCBC RFcgcmVxdWlyZSB3b3JrYXJvdW5kcyB0aGF0IHdlIGRvbid0IGltcGxlbWVudC4gKi8KPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2hhbmRsZXJzLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9ndnQvaGFuZGxlcnMuYwo+IGluZGV4IDI1Zjc4MTk2Yjk2NC4uNDVhOTEyNGU1 M2I2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9oYW5kbGVycy5jCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2hhbmRsZXJzLmMKPiBAQCAtMjc5Niw3ICsy Nzk2LDcgQEAgc3RhdGljIGludCBpbml0X2Jyb2Fkd2VsbF9tbWlvX2luZm8oc3RydWN0IGludGVs X2d2dCAqZ3Z0KQo+ICAJTU1JT19EKENISUNLRU5fUElQRVNMXzEoUElQRV9DKSwgRF9CRFdfUExV Uyk7Cj4gIAo+ICAJTU1JT19EKFdNX01JU0MsIERfQkRXKTsKPiAtCU1NSU9fRChfTU1JTyhCRFdf RURQX1BTUl9CQVNFKSwgRF9CRFcpOwo+ICsJTU1JT19EKF9NTUlPKF9TUkRfQ1RMX0VEUCksIERf QkRXKTsKPiAgCj4gIAlNTUlPX0QoX01NSU8oMHg2NjcxYyksIERfQkRXX1BMVVMpOwo+ICAJTU1J T19EKF9NTUlPKDB4NjZjMDApLCBEX0JEV19QTFVTKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rl YnVnZnMuYwo+IGluZGV4IGIzOTIyNmQ3ZjhkMi4uNmU0ODI0ZGFhZmFlIDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiBAQCAtMjEzMiw3ICsyMTMyLDcgQEAgcHNyX3NvdXJj ZV9zdGF0dXMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBzdHJ1Y3Qgc2VxX2Zp bGUgKm0pCj4gIAkJCSJCVUZfT04iLAo+ICAJCQkiVEdfT04iCj4gIAkJfTsKPiAtCQl2YWwgPSBJ OTE1X1JFQUQoRURQX1BTUjJfU1RBVFVTKTsKPiArCQl2YWwgPSBJOTE1X1JFQUQoRURQX1BTUjJf U1RBVFVTKGRldl9wcml2LT5wc3IudHJhbnNjb2RlcikpOwo+ICAJCXN0YXR1c192YWwgPSAodmFs ICYgRURQX1BTUjJfU1RBVFVTX1NUQVRFX01BU0spID4+Cj4gIAkJCSAgICAgIEVEUF9QU1IyX1NU QVRVU19TVEFURV9TSElGVDsKPiAgCQlpZiAoc3RhdHVzX3ZhbCA8IEFSUkFZX1NJWkUobGl2ZV9z dGF0dXMpKQo+IEBAIC0yMTQ4LDcgKzIxNDgsNyBAQCBwc3Jfc291cmNlX3N0YXR1cyhzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHN0cnVjdCBzZXFfZmlsZSAqbSkKPiAgCQkJIlNS RE9GRkFDSyIsCj4gIAkJCSJTUkRFTlRfT04iLAo+ICAJCX07Cj4gLQkJdmFsID0gSTkxNV9SRUFE KEVEUF9QU1JfU1RBVFVTKTsKPiArCQl2YWwgPSBJOTE1X1JFQUQoRURQX1BTUl9TVEFUVVMoZGV2 X3ByaXYtPnBzci50cmFuc2NvZGVyKSk7Cj4gIAkJc3RhdHVzX3ZhbCA9ICh2YWwgJiBFRFBfUFNS X1NUQVRVU19TVEFURV9NQVNLKSA+Pgo+ICAJCQkgICAgICBFRFBfUFNSX1NUQVRVU19TVEFURV9T SElGVDsKPiAgCQlpZiAoc3RhdHVzX3ZhbCA8IEFSUkFZX1NJWkUobGl2ZV9zdGF0dXMpKQo+IEBA IC0yMTkxLDEwICsyMTkxLDEwIEBAIHN0YXRpYyBpbnQgaTkxNV9lZHBfcHNyX3N0YXR1cyhzdHJ1 Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRhdGEpCj4gIAkJZ290byB1bmxvY2s7Cj4gIAo+ICAJaWYg KHBzci0+cHNyMl9lbmFibGVkKSB7Cj4gLQkJdmFsID0gSTkxNV9SRUFEKEVEUF9QU1IyX0NUTCk7 Cj4gKwkJdmFsID0gSTkxNV9SRUFEKEVEUF9QU1IyX0NUTChkZXZfcHJpdi0+cHNyLnRyYW5zY29k ZXIpKTsKPiAgCQllbmFibGVkID0gdmFsICYgRURQX1BTUjJfRU5BQkxFOwo+ICAJfSBlbHNlIHsK PiAtCQl2YWwgPSBJOTE1X1JFQUQoRURQX1BTUl9DVEwpOwo+ICsJCXZhbCA9IEk5MTVfUkVBRChF RFBfUFNSX0NUTChkZXZfcHJpdi0+cHNyLnRyYW5zY29kZXIpKTsKPiAgCQllbmFibGVkID0gdmFs ICYgRURQX1BTUl9FTkFCTEU7Cj4gIAl9Cj4gIAlzZXFfcHJpbnRmKG0sICJTb3VyY2UgUFNSIGN0 bDogJXMgWzB4JTA4eF1cbiIsCj4gQEAgLTIyMDcsNyArMjIwNyw4IEBAIHN0YXRpYyBpbnQgaTkx NV9lZHBfcHNyX3N0YXR1cyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRhdGEpCj4gIAkgKiBT S0wrIFBlcmYgY291bnRlciBpcyByZXNldCB0byAwIGV2ZXJ5dGltZSBEQyBzdGF0ZSBpcyBlbnRl cmVkCj4gIAkgKi8KPiAgCWlmIChJU19IQVNXRUxMKGRldl9wcml2KSB8fCBJU19CUk9BRFdFTEwo ZGV2X3ByaXYpKSB7Cj4gLQkJdmFsID0gSTkxNV9SRUFEKEVEUF9QU1JfUEVSRl9DTlQpICYgRURQ X1BTUl9QRVJGX0NOVF9NQVNLOwo+ICsJCXZhbCA9IEk5MTVfUkVBRChFRFBfUFNSX1BFUkZfQ05U KGRldl9wcml2LT5wc3IudHJhbnNjb2RlcikpOwo+ICsJCXZhbCAmPSBFRFBfUFNSX1BFUkZfQ05U X01BU0s7Cj4gIAkJc2VxX3ByaW50ZihtLCAiUGVyZm9ybWFuY2UgY291bnRlcjogJXVcbiIsIHZh bCk7Cj4gIAl9Cj4gIAo+IEBAIC0yMjI1LDggKzIyMjYsMTEgQEAgc3RhdGljIGludCBpOTE1X2Vk cF9wc3Jfc3RhdHVzKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkKPiAgCQkgKiBSZWFk aW5nIGFsbCAzIHJlZ2lzdGVycyBiZWZvcmUgaGFuZCB0byBtaW5pbWl6ZSBjcm9zc2luZyBhCj4g IAkJICogZnJhbWUgYm91bmRhcnkgYmV0d2VlbiByZWdpc3RlciByZWFkcwo+ICAJCSAqLwo+IC0J CWZvciAoZnJhbWUgPSAwOyBmcmFtZSA8IFBTUjJfU1VfU1RBVFVTX0ZSQU1FUzsgZnJhbWUgKz0g MykKPiAtCQkJc3VfZnJhbWVzX3ZhbFtmcmFtZSAvIDNdID0gSTkxNV9SRUFEKFBTUjJfU1VfU1RB VFVTKGZyYW1lKSk7Cj4gKwkJZm9yIChmcmFtZSA9IDA7IGZyYW1lIDwgUFNSMl9TVV9TVEFUVVNf RlJBTUVTOyBmcmFtZSArPSAzKSB7Cj4gKwkJCXZhbCA9IEk5MTVfUkVBRChQU1IyX1NVX1NUQVRV UyhkZXZfcHJpdi0+cHNyLnRyYW5zY29kZXIsCj4gKwkJCQkJCSAgICAgICBmcmFtZSkpOwo+ICsJ CQlzdV9mcmFtZXNfdmFsW2ZyYW1lIC8gM10gPSB2YWw7Cj4gKwkJfQo+ICAKPiAgCQlzZXFfcHV0 cyhtLCAiRnJhbWU6XHRQU1IyIFNVIGJsb2NrczpcbiIpOwo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmgKPiBpbmRleCBlYjMxYzE2NTZjZWEuLmJlOTk5NzkxYWJjYSAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuaAo+IEBAIC00NzksNiArNDc5LDcgQEAgc3RydWN0IGk5MTVfcHNyIHsKPiAg CWJvb2wgZW5hYmxlZDsKPiAgCXN0cnVjdCBpbnRlbF9kcCAqZHA7Cj4gIAllbnVtIHBpcGUgcGlw ZTsKPiArCWVudW0gdHJhbnNjb2RlciB0cmFuc2NvZGVyOwo+ICAJYm9vbCBhY3RpdmU7Cj4gIAlz dHJ1Y3Qgd29ya19zdHJ1Y3Qgd29yazsKPiAgCXVuc2lnbmVkIGJ1c3lfZnJvbnRidWZmZXJfYml0 czsKPiBAQCAtMTMzMCwxMSArMTMzMSwxMSBAQCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7Cj4g IAkgKi8KPiAgCXUzMiBncGlvX21taW9fYmFzZTsKPiAgCj4gKwl1MzIgaHN3X3Bzcl9tbWlvX2Fk anVzdDsKPiArCj4gIAkvKiBNTUlPIGJhc2UgYWRkcmVzcyBmb3IgTUlQSSByZWdzICovCj4gIAl1 MzIgbWlwaV9tbWlvX2Jhc2U7Cj4gIAo+IC0JdTMyIHBzcl9tbWlvX2Jhc2U7Cj4gLQo+ICAJdTMy IHBwc19tbWlvX2Jhc2U7Cj4gIAo+ICAJd2FpdF9xdWV1ZV9oZWFkX3QgZ21idXNfd2FpdF9xdWV1 ZTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiBpbmRleCAyYWJkMTk5MDkzYzUuLmEwOTJiMzRj MjY5ZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+IEBAIC00MTg2LDEwICs0MTg2LDE3 IEBAIGVudW0gewo+ICAjZGVmaW5lIFBJUEVTUkModHJhbnMpCQlfTU1JT19UUkFOUzIodHJhbnMs IF9QSVBFQVNSQykKPiAgI2RlZmluZSBQSVBFX01VTFQodHJhbnMpCV9NTUlPX1RSQU5TMih0cmFu cywgX1BJUEVfTVVMVF9BKQo+ICAKPiAtLyogSFNXKyBlRFAgUFNSIHJlZ2lzdGVycyAqLwo+IC0j ZGVmaW5lIEhTV19FRFBfUFNSX0JBU0UJMHg2NDgwMAo+IC0jZGVmaW5lIEJEV19FRFBfUFNSX0JB U0UJMHg2ZjgwMAo+IC0jZGVmaW5lIEVEUF9QU1JfQ1RMCQkJCV9NTUlPKGRldl9wcml2LT5wc3Jf bW1pb19iYXNlICsgMCkKPiArLyoKPiArICogSFNXKyBlRFAgUFNSIHJlZ2lzdGVycwo+ICsgKgo+ ICsgKiBIU1cgUFNSIHJlZ2lzdGVycyBhcmUgcmVsYXRpdmUgdG8gRERJQShfRERJX0JVRl9DVExf QSArIDB4ODAwKSB3aXRoIGp1c3Qgb25lCj4gKyAqIGluc3RhbmNlIG9mIGl0Cj4gKyAqLwo+ICsj ZGVmaW5lIF9IU1dfRURQX1BTUl9CQVNFCQkJMHg2NDgwMAo+ICsjZGVmaW5lIF9TUkRfQ1RMX0EJ CQkJMHg2MDgwMAo+ICsjZGVmaW5lIF9TUkRfQ1RMX0VEUAkJCQkweDZmODAwCj4gKyNkZWZpbmUg X1BTUl9BREoodHJhbiwgcmVnKQkJCShfVFJBTlMyKHRyYW4sIHJlZykgLSBkZXZfcHJpdi0+aHN3 X3Bzcl9tbWlvX2FkanVzdCkKPiArI2RlZmluZSBFRFBfUFNSX0NUTCh0cmFuKQkJCV9NTUlPKF9Q U1JfQURKKHRyYW4sIF9TUkRfQ1RMX0EpKQo+ICAjZGVmaW5lICAgRURQX1BTUl9FTkFCTEUJCQko MSA8PCAzMSkKPiAgI2RlZmluZSAgIEJEV19QU1JfU0lOR0xFX0ZSQU1FCQkJKDEgPDwgMzApCj4g ICNkZWZpbmUgICBFRFBfUFNSX1JFU1RPUkVfUFNSX0FDVElWRV9DVFhfTUFTSwkoMSA8PCAyOSkg LyogU1cgY2FuJ3QgbW9kaWZ5ICovCj4gQEAgLTQyMjYsMTYgKzQyMzMsMjIgQEAgZW51bSB7Cj4g ICNkZWZpbmUgICBFRFBfUFNSX1RSQU5TQ09ERVJfQV9TSElGVAkJOAo+ICAjZGVmaW5lICAgRURQ X1BTUl9UUkFOU0NPREVSX0VEUF9TSElGVAkJMAo+ICAKPiAtI2RlZmluZSBFRFBfUFNSX0FVWF9D VEwJCQkJX01NSU8oZGV2X3ByaXYtPnBzcl9tbWlvX2Jhc2UgKyAweDEwKQo+ICsjZGVmaW5lIF9T UkRfQVVYX0NUTF9BCQkJCTB4NjA4MTAKPiArI2RlZmluZSBfU1JEX0FVWF9DVExfRURQCQkJMHg2 ZjgxMAo+ICsjZGVmaW5lIEVEUF9QU1JfQVVYX0NUTCh0cmFuKQkJCV9NTUlPKF9QU1JfQURKKHRy YW4sIF9TUkRfQVVYX0NUTF9BKSkKPiAgI2RlZmluZSAgIEVEUF9QU1JfQVVYX0NUTF9USU1FX09V VF9NQVNLCQkoMyA8PCAyNikKPiAgI2RlZmluZSAgIEVEUF9QU1JfQVVYX0NUTF9NRVNTQUdFX1NJ WkVfTUFTSwkoMHgxZiA8PCAyMCkKPiAgI2RlZmluZSAgIEVEUF9QU1JfQVVYX0NUTF9QUkVDSEFS R0VfMlVTX01BU0sJKDB4ZiA8PCAxNikKPiAgI2RlZmluZSAgIEVEUF9QU1JfQVVYX0NUTF9FUlJP Ul9JTlRFUlJVUFQJKDEgPDwgMTEpCj4gICNkZWZpbmUgICBFRFBfUFNSX0FVWF9DVExfQklUX0NM T0NLXzJYX01BU0sJKDB4N2ZmKQo+ICAKPiAtI2RlZmluZSBFRFBfUFNSX0FVWF9EQVRBKGkpCQkJ X01NSU8oZGV2X3ByaXYtPnBzcl9tbWlvX2Jhc2UgKyAweDE0ICsgKGkpICogNCkgLyogNSByZWdp c3RlcnMgKi8KPiArI2RlZmluZSBfU1JEX0FVWF9EQVRBX0EJCQkJMHg2MDgxNAo+ICsjZGVmaW5l IF9TUkRfQVVYX0RBVEFfRURQCQkJMHg2ZjgxNAo+ICsjZGVmaW5lIEVEUF9QU1JfQVVYX0RBVEEo dHJhbiwgaSkJCV9NTUlPKF9QU1JfQURKKHRyYW4sIF9TUkRfQVVYX0RBVEFfQSkgKyAoaSkgKyA0 KSAvKiA1IHJlZ2lzdGVycyAqLwo+ICAKPiAtI2RlZmluZSBFRFBfUFNSX1NUQVRVUwkJCQlfTU1J TyhkZXZfcHJpdi0+cHNyX21taW9fYmFzZSArIDB4NDApCj4gKyNkZWZpbmUgX1NSRF9TVEFUVVNf QQkJCQkweDYwODQwCj4gKyNkZWZpbmUgX1NSRF9TVEFUVVNfRURQCQkJCTB4NmY4NDAKPiArI2Rl ZmluZSBFRFBfUFNSX1NUQVRVUyh0cmFuKQkJCV9NTUlPKF9QU1JfQURKKHRyYW4sIF9TUkRfU1RB VFVTX0EpKQo+ICAjZGVmaW5lICAgRURQX1BTUl9TVEFUVVNfU1RBVEVfTUFTSwkJKDcgPDwgMjkp Cj4gICNkZWZpbmUgICBFRFBfUFNSX1NUQVRVU19TVEFURV9TSElGVAkJMjkKPiAgI2RlZmluZSAg IEVEUF9QU1JfU1RBVFVTX1NUQVRFX0lETEUJCSgwIDw8IDI5KQo+IEBAIC00MjYwLDEwICs0Mjcz LDE1IEBAIGVudW0gewo+ICAjZGVmaW5lICAgRURQX1BTUl9TVEFUVVNfU0VORElOR19UUDEJCSgx IDw8IDQpCj4gICNkZWZpbmUgICBFRFBfUFNSX1NUQVRVU19JRExFX01BU0sJCTB4Zgo+ICAKPiAt I2RlZmluZSBFRFBfUFNSX1BFUkZfQ05UCQlfTU1JTyhkZXZfcHJpdi0+cHNyX21taW9fYmFzZSAr IDB4NDQpCj4gKyNkZWZpbmUgX1NSRF9QRVJGX0NOVF9BCQkJMHg2MDg0NAo+ICsjZGVmaW5lIF9T UkRfUEVSRl9DTlRfRURQCQkweDZmODQ0Cj4gKyNkZWZpbmUgRURQX1BTUl9QRVJGX0NOVCh0cmFu KQkJX01NSU8oX1BTUl9BREoodHJhbiwgX1NSRF9QRVJGX0NOVF9BKSkKPiAgI2RlZmluZSAgIEVE UF9QU1JfUEVSRl9DTlRfTUFTSwkJMHhmZmZmZmYKPiAgCj4gLSNkZWZpbmUgRURQX1BTUl9ERUJV RwkJCQlfTU1JTyhkZXZfcHJpdi0+cHNyX21taW9fYmFzZSArIDB4NjApIC8qIFBTUl9NQVNLIG9u IFNLTCsgKi8KPiArLyogUFNSX01BU0sgb24gU0tMKyAqLwo+ICsjZGVmaW5lIF9TUkRfREVCVUdf QQkJCQkweDYwODYwCj4gKyNkZWZpbmUgX1NSRF9ERUJVR19FRFAJCQkJMHg2Zjg2MAo+ICsjZGVm aW5lIEVEUF9QU1JfREVCVUcodHJhbikJCQlfTU1JTyhfUFNSX0FESih0cmFuLCBfU1JEX0RFQlVH X0EpKQo+ICAjZGVmaW5lICAgRURQX1BTUl9ERUJVR19NQVNLX01BWF9TTEVFUCAgICAgICAgICgx IDw8IDI4KQo+ICAjZGVmaW5lICAgRURQX1BTUl9ERUJVR19NQVNLX0xQU1AgICAgICAgICAgICAg ICgxIDw8IDI3KQo+ICAjZGVmaW5lICAgRURQX1BTUl9ERUJVR19NQVNLX01FTVVQICAgICAgICAg ICAgICgxIDw8IDI2KQo+IEBAIC00MjcxLDcgKzQyODksOSBAQCBlbnVtIHsKPiAgI2RlZmluZSAg IEVEUF9QU1JfREVCVUdfTUFTS19ESVNQX1JFR19XUklURSAgICAoMSA8PCAxNikgLyogUmVzZXJ2 ZWQgaW4gSUNMKyAqLwo+ICAjZGVmaW5lICAgRURQX1BTUl9ERUJVR19FWElUX09OX1BJWEVMX1VO REVSUlVOICgxIDw8IDE1KSAvKiBTS0wrICovCj4gIAo+IC0jZGVmaW5lIEVEUF9QU1IyX0NUTAkJ CV9NTUlPKDB4NmY5MDApCj4gKyNkZWZpbmUgX1BTUjJfQ1RMX0EJCQkweDYwOTAwCj4gKyNkZWZp bmUgX1BTUjJfQ1RMX0VEUAkJCTB4NmY5MDAKPiArI2RlZmluZSBFRFBfUFNSMl9DVEwodHJhbikJ CV9NTUlPX1RSQU5TMih0cmFuLCBfUFNSMl9DVExfQSkKPiAgI2RlZmluZSAgIEVEUF9QU1IyX0VO QUJMRQkJKDEgPDwgMzEpCj4gICNkZWZpbmUgICBFRFBfU1VfVFJBQ0tfRU5BQkxFCQkoMSA8PCAz MCkKPiAgI2RlZmluZSAgIEVEUF9ZX0NPT1JESU5BVEVfVkFMSUQJKDEgPDwgMjYpIC8qIEdMSyBh bmQgQ05MKyAqLwo+IEBAIC00MjkzLDggKzQzMTMsOCBAQCBlbnVtIHsKPiAgI2RlZmluZSBfUFNS X0VWRU5UX1RSQU5TX0IJCQkweDYxODQ4Cj4gICNkZWZpbmUgX1BTUl9FVkVOVF9UUkFOU19DCQkJ MHg2Mjg0OAo+ICAjZGVmaW5lIF9QU1JfRVZFTlRfVFJBTlNfRAkJCTB4NjM4NDgKPiAtI2RlZmlu ZSBfUFNSX0VWRU5UX1RSQU5TX0VEUAkJCTB4NkY4NDgKPiAtI2RlZmluZSBQU1JfRVZFTlQodHJh bnMpCQkJX01NSU9fVFJBTlMyKHRyYW5zLCBfUFNSX0VWRU5UX1RSQU5TX0EpCj4gKyNkZWZpbmUg X1BTUl9FVkVOVF9UUkFOU19FRFAJCQkweDZmODQ4Cj4gKyNkZWZpbmUgUFNSX0VWRU5UKHRyYW4p CQkJCV9NTUlPX1RSQU5TMih0cmFuLCBfUFNSX0VWRU5UX1RSQU5TX0EpCj4gICNkZWZpbmUgIFBT Ul9FVkVOVF9QU1IyX1dEX1RJTUVSX0VYUElSRQkJKDEgPDwgMTcpCj4gICNkZWZpbmUgIFBTUl9F VkVOVF9QU1IyX0RJU0FCTEVECQkoMSA8PCAxNikKPiAgI2RlZmluZSAgUFNSX0VWRU5UX1NVX0RJ UlRZX0ZJRk9fVU5ERVJSVU4JKDEgPDwgMTUpCj4gQEAgLTQzMTIsMTUgKzQzMzIsMTYgQEAgZW51 bSB7Cj4gICNkZWZpbmUgIFBTUl9FVkVOVF9MUFNQX01PREVfRVhJVAkJKDEgPDwgMSkKPiAgI2Rl ZmluZSAgUFNSX0VWRU5UX1BTUl9ESVNBQkxFCQkJKDEgPDwgMCkKPiAgCj4gLSNkZWZpbmUgRURQ X1BTUjJfU1RBVFVTCQkJX01NSU8oMHg2Zjk0MCkKPiArI2RlZmluZSBfUFNSMl9TVEFUVVNfQQkJ CTB4NjA5NDAKPiArI2RlZmluZSBfUFNSMl9TVEFUVVNfRURQCQkweDZmOTQwCj4gKyNkZWZpbmUg RURQX1BTUjJfU1RBVFVTKHRyYW4pCQlfTU1JT19UUkFOUzIodHJhbiwgX1BTUjJfU1RBVFVTX0Ep Cj4gICNkZWZpbmUgRURQX1BTUjJfU1RBVFVTX1NUQVRFX01BU0sgICAgICgweGYgPDwgMjgpCj4g ICNkZWZpbmUgRURQX1BTUjJfU1RBVFVTX1NUQVRFX1NISUZUICAgIDI4Cj4gIAo+IC0jZGVmaW5l IF9QU1IyX1NVX1NUQVRVU18wCQkweDZGOTE0Cj4gLSNkZWZpbmUgX1BTUjJfU1VfU1RBVFVTXzEJ CTB4NkY5MTgKPiAtI2RlZmluZSBfUFNSMl9TVV9TVEFUVVNfMgkJMHg2RjkxQwo+IC0jZGVmaW5l IF9QU1IyX1NVX1NUQVRVUyhpbmRleCkJCV9NTUlPKF9QSUNLX0VWRU4oKGluZGV4KSwgX1BTUjJf U1VfU1RBVFVTXzAsIF9QU1IyX1NVX1NUQVRVU18xKSkKPiAtI2RlZmluZSBQU1IyX1NVX1NUQVRV UyhmcmFtZSkJCShfUFNSMl9TVV9TVEFUVVMoKGZyYW1lKSAvIDMpKQo+ICsjZGVmaW5lIF9QU1Iy X1NVX1NUQVRVU19BCQkweDYwOTE0Cj4gKyNkZWZpbmUgX1BTUjJfU1VfU1RBVFVTX0VEUAkJMHg2 ZjkxNAo+ICsjZGVmaW5lIF9QU1IyX1NVX1NUQVRVUyh0cmFuLCBpbmRleCkJX01NSU8oX1RSQU5T Mih0cmFuLCBfUFNSMl9TVV9TVEFUVVNfQSkgKyAoaW5kZXgpICogNCkKPiArI2RlZmluZSBQU1Iy X1NVX1NUQVRVUyh0cmFuLCBmcmFtZSkJKF9QU1IyX1NVX1NUQVRVUyh0cmFuLCAoZnJhbWUpIC8g MykpCj4gICNkZWZpbmUgUFNSMl9TVV9TVEFUVVNfU0hJRlQoZnJhbWUpCSgoKGZyYW1lKSAlIDMp ICogMTApCj4gICNkZWZpbmUgUFNSMl9TVV9TVEFUVVNfTUFTSyhmcmFtZSkJKDB4M2ZmIDw8IFBT UjJfU1VfU1RBVFVTX1NISUZUKGZyYW1lKSkKPiAgI2RlZmluZSBQU1IyX1NVX1NUQVRVU19GUkFN RVMJCTgKPiAtLSAKPiAyLjIyLjEKPiAKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwo+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiBJbnRlbC1nZnhAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pbnRlbC1nZngKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v aW50ZWwtZ2Z4