From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 05/23] drm/i915: Complete sw/hw split Date: Wed, 25 Sep 2019 17:54:34 +0300 Message-ID: <20190925145434.GG1208@intel.com> References: <20190920114235.22411-1-maarten.lankhorst@linux.intel.com> <20190920114235.22411-5-maarten.lankhorst@linux.intel.com> <20190925130111.GY1208@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by gabe.freedesktop.org (Postfix) with ESMTPS id 224AC6EBD5 for ; Wed, 25 Sep 2019 14:54:38 +0000 (UTC) Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Maarten Lankhorst Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBTZXAgMjUsIDIwMTkgYXQgMDQ6MTg6MDlQTSArMDIwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gT3AgMjUtMDktMjAxOSBvbSAxNTowMSBzY2hyZWVmIFZpbGxlIFN5cmrDpGzD pDoKPiA+IE9uIEZyaSwgU2VwIDIwLCAyMDE5IGF0IDAxOjQyOjE3UE0gKzAyMDAsIE1hYXJ0ZW4g TGFua2hvcnN0IHdyb3RlOgo+ID4+IE5vdyB0aGF0IHdlIHNlcGFyYXRlZCBldmVyeXRoaW5nIGlu dG8gdWFwaSBhbmQgaHcsIGl0J3MKPiA+PiB0aW1lIHRvIG1ha2UgdGhlIHNwbGl0IGRlZmluaXRp dmUuIFJlbW92ZSB0aGUgdW5pb24gYW5kCj4gPj4gbWFrZSBhIGNvcHkgb2YgdGhlIGh3IHN0YXRl IG9uIG1vZGVzZXQgYW5kIGZhc3RzZXQuCj4gPj4KPiA+PiBDb2xvciBibG9icyBhcmUgY29waWVk IGluIGNydGMgYXRvbWljX2NoZWNrKCksIHJpZ2h0Cj4gPj4gYmVmb3JlIGNvbG9yIG1hbmFnZW1l bnQgaXMgY2hlY2tlZC4KPiA+IERvbid0IGxpa2UuIElNTyB0aGVyZSBzaG91bGQgYmUgb25lIGFu ZCBvbmx5IG9uZSBwbGFjZSB3aGVyZSBjb3B5IG92ZXIKPiA+IHRoZSB1YXBpIHN0YXRlIGludG8g dGhlIGh3IHN0YXRlLiBPdGhlcndpc2UgaXQncyBhIG1lc3MgYmVjYXVzZSB5b3UKPiA+IGNvbnN0 YW50bHkgaGF2ZSB0byByZW1pbmQgeW91cnNlbGYgd2hpY2ggYml0cyBvZiBzdGF0ZSBhbHJlYWR5 IGdvdAo+ID4gY29waWVkIGFuZCB3aGljaCBkaWRuJ3QuCj4gCj4gT2ggbm93IEkgcmVtZW1iZXIs IGJlY2F1c2UgYmlnam9pbmVyIGlzIGFzc2lnbmVkIGxhdGVyIG9uIHdlIGNhbid0IGNvcHkgYmxv YnMgeWV0Cj4gCj4gYW5kIGJpZ2pvaW5lciB3YXMgdGhlIHdob2xlIHJlYW9uIHdlIHdhbnRlZCBz ZXBhcmF0ZSBibG9icyBzbyBpdCBkaWRuJ3QgaGF2ZSB0byBsb29rIGF0IHRoZSBvdGhlciBjcnRj X3N0YXRlLi4KPiAKPiBXb3VsZCBpdCBoZWxwIGlmIEkgY29weSB0aGUgYmxvYnMgaW4gaW50ZWxf Y29sb3JfY2hlY2soKSBpbnN0ZWFkPwoKQ2FuJ3Qgd2UganVzdCBkbyBzb21ldGhpbmcgbGlrZToK CmRybV9hdG9taWNfaGVscGVyX2NoZWNrX21vZGVzZXQoKTsKZm9yX2VhY2hfY3J0Y19pbl9zdGF0 ZSgpIHsKCWlmIChjcnRjX3N0YXRlLT5lbmFibGUpCgkJY29weV91YXBpX3RvX2h3KCk7Cn0KCmNv bXB1dGVfY29uZmlnKCkgewoJaWYgKG5lZWRfYmlnam9pbmVyKSB7CgkJZ2V0X290aGVyX2NydGNf c3RhdGUoKTsKCQlpZiAob3RoZXJfY3J0Y19zdGF0ZS0+dWFwaS5lbmFibGUpCgkJCWZhaWw7CgkJ b3RoZXJfaHcgPSBjdXJyZW50X2h3OwoJCWFkanVzdF9od19zdGF0ZV9mb3JfYmlnam9pbmVyKG90 aGVyX2h3KTsKCX0KfQoKPwoKPiAKPiA+PiBTaWduZWQtb2ZmLWJ5OiBNYWFydGVuIExhbmtob3Jz dCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPgo+ID4+IC0tLQo+ID4+ICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2F0b21pYy5jICAgfCA0NCArKysrKysrKysr KysrKysrKysrCj4gPj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYXRvbWlj LmggICB8ICAyICsKPiA+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNw bGF5LmMgIHwgMzkgKysrKysrKysrKysrKy0tLQo+ID4+ICAuLi4vZHJtL2k5MTUvZGlzcGxheS9p bnRlbF9kaXNwbGF5X3R5cGVzLmggICAgfCAgOCArKy0tCj4gPj4gIDQgZmlsZXMgY2hhbmdlZCwg ODUgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKPiA+Pgo+ID4+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2F0b21pYy5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9hdG9taWMuYwo+ID4+IGluZGV4IGY0NDQwZWRlOTVjNS4u ZmI1NTBkM2NlYTdmIDEwMDY0NAo+ID4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfYXRvbWljLmMKPiA+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5 L2ludGVsX2F0b21pYy5jCj4gPj4gQEAgLTE5NSw2ICsxOTUsMTQgQEAgaW50ZWxfY3J0Y19kdXBs aWNhdGVfc3RhdGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ID4+ICAKPiA+PiAgCV9fZHJtX2F0 b21pY19oZWxwZXJfY3J0Y19kdXBsaWNhdGVfc3RhdGUoY3J0YywgJmNydGNfc3RhdGUtPnVhcGkp Owo+ID4+ICAKPiA+PiArCS8qIGNvcHkgY29sb3IgYmxvYnMgKi8KPiA+PiArCWlmIChjcnRjX3N0 YXRlLT5ody5kZWdhbW1hX2x1dCkKPiA+PiArCQlkcm1fcHJvcGVydHlfYmxvYl9nZXQoY3J0Y19z dGF0ZS0+aHcuZGVnYW1tYV9sdXQpOwo+ID4+ICsJaWYgKGNydGNfc3RhdGUtPmh3LmN0bSkKPiA+ PiArCQlkcm1fcHJvcGVydHlfYmxvYl9nZXQoY3J0Y19zdGF0ZS0+aHcuY3RtKTsKPiA+PiArCWlm IChjcnRjX3N0YXRlLT5ody5nYW1tYV9sdXQpCj4gPj4gKwkJZHJtX3Byb3BlcnR5X2Jsb2JfZ2V0 KGNydGNfc3RhdGUtPmh3LmdhbW1hX2x1dCk7Cj4gPj4gKwo+ID4+ICAJY3J0Y19zdGF0ZS0+dXBk YXRlX3BpcGUgPSBmYWxzZTsKPiA+PiAgCWNydGNfc3RhdGUtPmRpc2FibGVfbHBfd20gPSBmYWxz ZTsKPiA+PiAgCWNydGNfc3RhdGUtPmRpc2FibGVfY3hzciA9IGZhbHNlOwo+ID4+IEBAIC0yMDks NiArMjE3LDQxIEBAIGludGVsX2NydGNfZHVwbGljYXRlX3N0YXRlKHN0cnVjdCBkcm1fY3J0YyAq Y3J0YykKPiA+PiAgCXJldHVybiAmY3J0Y19zdGF0ZS0+dWFwaTsKPiA+PiAgfQo+ID4+ICAKPiA+ PiArc3RhdGljIHZvaWQgaW50ZWxfY3J0Y19wdXRfY29sb3JfYmxvYnMoc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gPj4gK3sKPiA+PiArCWRybV9wcm9wZXJ0eV9ibG9iX3B1 dChjcnRjX3N0YXRlLT5ody5kZWdhbW1hX2x1dCk7Cj4gPj4gKwlkcm1fcHJvcGVydHlfYmxvYl9w dXQoY3J0Y19zdGF0ZS0+aHcuZ2FtbWFfbHV0KTsKPiA+PiArCWRybV9wcm9wZXJ0eV9ibG9iX3B1 dChjcnRjX3N0YXRlLT5ody5jdG0pOwo+ID4+ICt9Cj4gPj4gKwo+ID4+ICt2b2lkIGludGVsX2Ny dGNfZnJlZV9od19zdGF0ZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiA+ PiArewo+ID4+ICsJaW50ZWxfY3J0Y19wdXRfY29sb3JfYmxvYnMoY3J0Y19zdGF0ZSk7Cj4gPj4g K30KPiA+PiArCj4gPj4gK3ZvaWQgaW50ZWxfY3J0Y19jb3B5X2NvbG9yX2Jsb2JzKHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ID4+ICt7Cj4gPj4gKwlpbnRlbF9jcnRjX3B1 dF9jb2xvcl9ibG9icyhjcnRjX3N0YXRlKTsKPiA+PiArCj4gPj4gKwlpZiAoY3J0Y19zdGF0ZS0+ dWFwaS5kZWdhbW1hX2x1dCkKPiA+PiArCQljcnRjX3N0YXRlLT5ody5kZWdhbW1hX2x1dCA9Cj4g Pj4gKwkJCWRybV9wcm9wZXJ0eV9ibG9iX2dldChjcnRjX3N0YXRlLT51YXBpLmRlZ2FtbWFfbHV0 KTsKPiA+PiArCWVsc2UKPiA+PiArCQljcnRjX3N0YXRlLT5ody5kZWdhbW1hX2x1dCA9IE5VTEw7 Cj4gPj4gKwo+ID4+ICsJaWYgKGNydGNfc3RhdGUtPnVhcGkuZ2FtbWFfbHV0KQo+ID4+ICsJCWNy dGNfc3RhdGUtPmh3LmdhbW1hX2x1dCA9Cj4gPj4gKwkJCWRybV9wcm9wZXJ0eV9ibG9iX2dldChj cnRjX3N0YXRlLT51YXBpLmdhbW1hX2x1dCk7Cj4gPj4gKwllbHNlCj4gPj4gKwkJY3J0Y19zdGF0 ZS0+aHcuZ2FtbWFfbHV0ID0gTlVMTDsKPiA+PiArCj4gPj4gKwlpZiAoY3J0Y19zdGF0ZS0+dWFw aS5jdG0pCj4gPj4gKwkJY3J0Y19zdGF0ZS0+aHcuY3RtID0KPiA+PiArCQkJZHJtX3Byb3BlcnR5 X2Jsb2JfZ2V0KGNydGNfc3RhdGUtPnVhcGkuY3RtKTsKPiA+PiArCWVsc2UKPiA+PiArCQljcnRj X3N0YXRlLT5ody5jdG0gPSBOVUxMOwo+ID4+ICt9Cj4gPj4gKwo+ID4+ICAvKioKPiA+PiAgICog aW50ZWxfY3J0Y19kZXN0cm95X3N0YXRlIC0gZGVzdHJveSBjcnRjIHN0YXRlCj4gPj4gICAqIEBj cnRjOiBkcm0gY3J0Ywo+ID4+IEBAIC0yMjQsNiArMjY3LDcgQEAgaW50ZWxfY3J0Y19kZXN0cm95 X3N0YXRlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiA+PiAgCXN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpjcnRjX3N0YXRlID0gdG9faW50ZWxfY3J0Y19zdGF0ZShzdGF0ZSk7Cj4gPj4gIAo+ID4+ ICAJX19kcm1fYXRvbWljX2hlbHBlcl9jcnRjX2Rlc3Ryb3lfc3RhdGUoJmNydGNfc3RhdGUtPnVh cGkpOwo+ID4+ICsJaW50ZWxfY3J0Y19mcmVlX2h3X3N0YXRlKGNydGNfc3RhdGUpOwo+ID4+ICAJ a2ZyZWUoY3J0Y19zdGF0ZSk7Cj4gPj4gIH0KPiA+PiAgCj4gPj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYXRvbWljLmggYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2F0b21pYy5oCj4gPj4gaW5kZXggNTgwNjVkMzE2MWEzLi40MmJl OTFlMDc3MmEgMTAwNjQ0Cj4gPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9p bnRlbF9hdG9taWMuaAo+ID4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50 ZWxfYXRvbWljLmgKPiA+PiBAQCAtMzUsNiArMzUsOCBAQCBpbnRlbF9kaWdpdGFsX2Nvbm5lY3Rv cl9kdXBsaWNhdGVfc3RhdGUoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rvcik7Cj4gPj4g IHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqaW50ZWxfY3J0Y19kdXBsaWNhdGVfc3RhdGUoc3RydWN0 IGRybV9jcnRjICpjcnRjKTsKPiA+PiAgdm9pZCBpbnRlbF9jcnRjX2Rlc3Ryb3lfc3RhdGUoc3Ry dWN0IGRybV9jcnRjICpjcnRjLAo+ID4+ICAJCQkgICAgICAgc3RydWN0IGRybV9jcnRjX3N0YXRl ICpzdGF0ZSk7Cj4gPj4gK3ZvaWQgaW50ZWxfY3J0Y19mcmVlX2h3X3N0YXRlKHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKTsKPiA+PiArdm9pZCBpbnRlbF9jcnRjX2NvcHlfY29s b3JfYmxvYnMoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpOwo+ID4+ICBzdHJ1 Y3QgZHJtX2F0b21pY19zdGF0ZSAqaW50ZWxfYXRvbWljX3N0YXRlX2FsbG9jKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYpOwo+ID4+ICB2b2lkIGludGVsX2F0b21pY19zdGF0ZV9jbGVhcihzdHJ1Y3Qg ZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpOwo+ID4+ICAKPiA+PiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYwo+ID4+IGluZGV4IDMyYmJiNWJmNDhmMy4uZTQw NDg1YTFlNTAzIDEwMDY0NAo+ID4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkv aW50ZWxfZGlzcGxheS5jCj4gPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9p bnRlbF9kaXNwbGF5LmMKPiA+PiBAQCAtMTE0LDYgKzExNCw3IEBAIHN0YXRpYyBjb25zdCB1NjQg Y3Vyc29yX2Zvcm1hdF9tb2RpZmllcnNbXSA9IHsKPiA+PiAgCURSTV9GT1JNQVRfTU9EX0lOVkFM SUQKPiA+PiAgfTsKPiA+PiAgCj4gPj4gK3N0YXRpYyB2b2lkIGNvcHlfdWFwaV90b19od19zdGF0 ZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSk7Cj4gPj4gIHN0YXRpYyB2b2lk IGk5eHhfY3J0Y19jbG9ja19nZXQoc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4gPj4gIAkJCQlz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpOwo+ID4+ICBzdGF0aWMgdm9pZCBp cm9ubGFrZV9wY2hfY2xvY2tfZ2V0KHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ID4+IEBAIC03 MDk3LDYgKzcwOTgsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9jcnRjX2Rpc2FibGVfbm9hdG9taWMo c3RydWN0IGRybV9jcnRjICpjcnRjLAo+ID4+ICAJY3J0Yy0+ZW5hYmxlZCA9IGZhbHNlOwo+ID4+ ICAJY3J0Yy0+c3RhdGUtPmNvbm5lY3Rvcl9tYXNrID0gMDsKPiA+PiAgCWNydGMtPnN0YXRlLT5l bmNvZGVyX21hc2sgPSAwOwo+ID4+ICsJY29weV91YXBpX3RvX2h3X3N0YXRlKHRvX2ludGVsX2Ny dGNfc3RhdGUoY3J0Yy0+c3RhdGUpKTsKPiA+PiAgCj4gPj4gIAlmb3JfZWFjaF9lbmNvZGVyX29u X2NydGMoY3J0Yy0+ZGV2LCBjcnRjLCBlbmNvZGVyKQo+ID4+ICAJCWVuY29kZXItPmJhc2UuY3J0 YyA9IE5VTEw7Cj4gPj4gQEAgLTExODA0LDYgKzExODA2LDkgQEAgc3RhdGljIGludCBpbnRlbF9j cnRjX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX2NydGMgKl9jcnRjLAo+ID4+ICAKPiA+PiAgCWlm IChtb2RlX2NoYW5nZWQgfHwgY3J0Y19zdGF0ZS0+dXBkYXRlX3BpcGUgfHwKPiA+PiAgCSAgICBj cnRjX3N0YXRlLT51YXBpLmNvbG9yX21nbXRfY2hhbmdlZCkgewo+ID4+ICsJCS8qIENvcHkgY29s b3IgYmxvYnMgdG8gaHcgc3RhdGUgKi8KPiA+PiArCQlpbnRlbF9jcnRjX2NvcHlfY29sb3JfYmxv YnMoY3J0Y19zdGF0ZSk7Cj4gPj4gKwo+ID4+ICAJCXJldCA9IGludGVsX2NvbG9yX2NoZWNrKGNy dGNfc3RhdGUpOwo+ID4+ICAJCWlmIChyZXQpCj4gPj4gIAkJCXJldHVybiByZXQ7Cj4gPj4gQEAg LTEyMjUxLDYgKzEyMjU2LDIyIEBAIHN0YXRpYyBib29sIGNoZWNrX2RpZ2l0YWxfcG9ydF9jb25m bGljdHMoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gPj4gIAlyZXR1cm4gcmV0 Owo+ID4+ICB9Cj4gPj4gIAo+ID4+ICtzdGF0aWMgdm9pZCBjb3B5X3VhcGlfdG9faHdfc3RhdGUo c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gPj4gK3sKPiA+PiArCWNydGNf c3RhdGUtPmh3LmVuYWJsZSA9IGNydGNfc3RhdGUtPnVhcGkuZW5hYmxlOwo+ID4+ICsJY3J0Y19z dGF0ZS0+aHcuYWN0aXZlID0gY3J0Y19zdGF0ZS0+dWFwaS5hY3RpdmU7Cj4gPj4gKwljcnRjX3N0 YXRlLT5ody5tb2RlID0gY3J0Y19zdGF0ZS0+dWFwaS5tb2RlOwo+ID4+ICsJY3J0Y19zdGF0ZS0+ aHcuYWRqdXN0ZWRfbW9kZSA9IGNydGNfc3RhdGUtPnVhcGkuYWRqdXN0ZWRfbW9kZTsKPiA+PiAr fQo+ID4+ICsKPiA+PiArc3RhdGljIHZvaWQgY29weV9od190b191YXBpX3N0YXRlKHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ID4+ICt7Cj4gPj4gKwljcnRjX3N0YXRlLT51 YXBpLmVuYWJsZSA9IGNydGNfc3RhdGUtPmh3LmVuYWJsZTsKPiA+PiArCWNydGNfc3RhdGUtPnVh cGkuYWN0aXZlID0gY3J0Y19zdGF0ZS0+aHcuYWN0aXZlOwo+ID4+ICsJY3J0Y19zdGF0ZS0+dWFw aS5tb2RlID0gY3J0Y19zdGF0ZS0+aHcubW9kZTsKPiA+PiArCWNydGNfc3RhdGUtPnVhcGkuYWRq dXN0ZWRfbW9kZSA9IGNydGNfc3RhdGUtPmh3LmFkanVzdGVkX21vZGU7Cj4gPj4gK30KPiA+PiAr Cj4gPj4gIHN0YXRpYyBpbnQKPiA+PiAgY2xlYXJfaW50ZWxfY3J0Y19zdGF0ZShzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiA+PiAgewo+ID4+IEBAIC0xMjI2Nyw2ICsxMjI4 OCw3IEBAIGNsZWFyX2ludGVsX2NydGNfc3RhdGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNy dGNfc3RhdGUpCj4gPj4gIAkgKiBmaXhlZCwgc28gdGhhdCB0aGUgY3J0Y19zdGF0ZSBjYW4gYmUg c2FmZWx5IGR1cGxpY2F0ZWQuIEZvciBub3csCj4gPj4gIAkgKiBvbmx5IGZpZWxkcyB0aGF0IGFy ZSBrbm93IHRvIG5vdCBjYXVzZSBwcm9ibGVtcyBhcmUgcHJlc2VydmVkLiAqLwo+ID4+ICAKPiA+ PiArCXNhdmVkX3N0YXRlLT51YXBpID0gY3J0Y19zdGF0ZS0+dWFwaTsKPiA+PiAgCXNhdmVkX3N0 YXRlLT5zY2FsZXJfc3RhdGUgPSBjcnRjX3N0YXRlLT5zY2FsZXJfc3RhdGU7Cj4gPj4gIAlzYXZl ZF9zdGF0ZS0+c2hhcmVkX2RwbGwgPSBjcnRjX3N0YXRlLT5zaGFyZWRfZHBsbDsKPiA+PiAgCXNh dmVkX3N0YXRlLT5kcGxsX2h3X3N0YXRlID0gY3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0ZTsKPiA+ PiBAQCAtMTIyNzcsMTEgKzEyMjk5LDkgQEAgY2xlYXJfaW50ZWxfY3J0Y19zdGF0ZShzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiA+PiAgCSAgICBJU19WQUxMRVlWSUVXKGRl dl9wcml2KSB8fCBJU19DSEVSUllWSUVXKGRldl9wcml2KSkKPiA+PiAgCQlzYXZlZF9zdGF0ZS0+ d20gPSBjcnRjX3N0YXRlLT53bTsKPiA+PiAgCj4gPj4gLQkvKiBLZWVwIGJhc2UgZHJtX2NydGNf c3RhdGUgaW50YWN0LCBvbmx5IGNsZWFyIG91ciBleHRlbmRlZCBzdHJ1Y3QgKi8KPiA+PiAtCUJV SUxEX0JVR19PTihvZmZzZXRvZihzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSwgdWFwaSkpOwo+ID4+ IC0JQlVJTERfQlVHX09OKG9mZnNldG9mKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlLCBodykpOwo+ ID4+IC0JbWVtY3B5KCZjcnRjX3N0YXRlLT51YXBpICsgMSwgJnNhdmVkX3N0YXRlLT51YXBpICsg MSwKPiA+PiAtCSAgICAgICBzaXplb2YoKmNydGNfc3RhdGUpIC0gc2l6ZW9mKGNydGNfc3RhdGUt PnVhcGkpKTsKPiA+PiArCWludGVsX2NydGNfZnJlZV9od19zdGF0ZShjcnRjX3N0YXRlKTsKPiA+ PiArCW1lbWNweShjcnRjX3N0YXRlLCBzYXZlZF9zdGF0ZSwgc2l6ZW9mKCpjcnRjX3N0YXRlKSk7 Cj4gPj4gKwljb3B5X3VhcGlfdG9faHdfc3RhdGUoY3J0Y19zdGF0ZSk7Cj4gPj4gIAo+ID4+ICAJ a2ZyZWUoc2F2ZWRfc3RhdGUpOwo+ID4+ICAJcmV0dXJuIDA7Cj4gPj4gQEAgLTEyNDIxLDYgKzEy NDQxLDkgQEAgaW50ZWxfbW9kZXNldF9waXBlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqcGlwZV9jb25maWcpCj4gPj4gIAlEUk1fREVCVUdfS01TKCJodyBtYXggYnBwOiAlaSwgcGlw ZSBicHA6ICVpLCBkaXRoZXJpbmc6ICVpXG4iLAo+ID4+ICAJCSAgICAgIGJhc2VfYnBwLCBwaXBl X2NvbmZpZy0+cGlwZV9icHAsIHBpcGVfY29uZmlnLT5kaXRoZXIpOwo+ID4+ICAKPiA+PiArCS8q IHVhcGkgd2FudHMgYSBjb3B5IG9mIHRoZSBhZGp1c3RlZF9tb2RlIGZvciB2YmxhbmsgYm9va2tl ZXBpbmcgKi8KPiA+PiArCXBpcGVfY29uZmlnLT51YXBpLmFkanVzdGVkX21vZGUgPSBwaXBlX2Nv bmZpZy0+aHcuYWRqdXN0ZWRfbW9kZTsKPiA+PiArCj4gPj4gIAlyZXR1cm4gMDsKPiA+PiAgfQo+ ID4+ICAKPiA+PiBAQCAtMTMxNDIsNiArMTMxNjUsOCBAQCB2ZXJpZnlfY3J0Y19zdGF0ZShzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiA+PiAgCj4gPj4gIAlzdGF0ZSA9IG9sZF9jcnRjX3N0YXRl LT51YXBpLnN0YXRlOwo+ID4+ICAJX19kcm1fYXRvbWljX2hlbHBlcl9jcnRjX2Rlc3Ryb3lfc3Rh dGUoJm9sZF9jcnRjX3N0YXRlLT51YXBpKTsKPiA+PiArCWludGVsX2NydGNfZnJlZV9od19zdGF0 ZShvbGRfY3J0Y19zdGF0ZSk7Cj4gPj4gKwo+ID4+ICAJcGlwZV9jb25maWcgPSBvbGRfY3J0Y19z dGF0ZTsKPiA+PiAgCW1lbXNldChwaXBlX2NvbmZpZywgMCwgc2l6ZW9mKCpwaXBlX2NvbmZpZykp Owo+ID4+ICAJcGlwZV9jb25maWctPnVhcGkuY3J0YyA9ICZjcnRjLT5iYXNlOwo+ID4+IEBAIC0x MzU2OCw2ICsxMzU5Myw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfYXRvbWljX2NoZWNrKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsCj4gPj4gIAo+ID4+ICAJCWlmICghbmV3X2NydGNfc3RhdGUtPnVhcGku ZW5hYmxlKSB7Cj4gPj4gIAkJCWFueV9tcyA9IHRydWU7Cj4gPj4gKwkJCWNsZWFyX2ludGVsX2Ny dGNfc3RhdGUobmV3X2NydGNfc3RhdGUpOwo+ID4+ICAJCQljb250aW51ZTsKPiA+PiAgCQl9Cj4g Pj4gIAo+ID4+IEBAIC0xNjY4Niw2ICsxNjcxMiw3IEBAIHN0YXRpYyB2b2lkIGludGVsX21vZGVz ZXRfcmVhZG91dF9od19zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ID4+ICAJCQl0b19p bnRlbF9jcnRjX3N0YXRlKGNydGMtPmJhc2Uuc3RhdGUpOwo+ID4+ICAKPiA+PiAgCQlfX2RybV9h dG9taWNfaGVscGVyX2NydGNfZGVzdHJveV9zdGF0ZSgmY3J0Y19zdGF0ZS0+dWFwaSk7Cj4gPj4g KwkJaW50ZWxfY3J0Y19mcmVlX2h3X3N0YXRlKGNydGNfc3RhdGUpOwo+ID4+ICAJCW1lbXNldChj cnRjX3N0YXRlLCAwLCBzaXplb2YoKmNydGNfc3RhdGUpKTsKPiA+PiAgCQlfX2RybV9hdG9taWNf aGVscGVyX2NydGNfcmVzZXQoJmNydGMtPmJhc2UsICZjcnRjX3N0YXRlLT51YXBpKTsKPiA+PiAg Cj4gPj4gQEAgLTE2ODAyLDYgKzE2ODI5LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfbW9kZXNldF9y ZWFkb3V0X2h3X3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gPj4gIAkJCWNydGMtPmJh c2UubW9kZS52ZGlzcGxheSA9IGNydGNfc3RhdGUtPnBpcGVfc3JjX2g7Cj4gPj4gIAkJCWludGVs X21vZGVfZnJvbV9waXBlX2NvbmZpZygmY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZSwKPiA+ PiAgCQkJCQkJICAgIGNydGNfc3RhdGUpOwo+ID4+ICsJCQljcnRjX3N0YXRlLT5ody5tb2RlID0g Y3J0Yy0+YmFzZS5tb2RlOwo+ID4+ICAJCQlXQVJOX09OKGRybV9hdG9taWNfc2V0X21vZGVfZm9y X2NydGMoY3J0Yy0+YmFzZS5zdGF0ZSwgJmNydGMtPmJhc2UubW9kZSkpOwo+ID4+ICAKPiA+PiAg CQkJLyoKPiA+PiBAQCAtMTY4NDcsNiArMTY4NzUsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9tb2Rl c2V0X3JlYWRvdXRfaHdfc3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiA+PiAgCj4gPj4g IAkJaW50ZWxfYndfY3J0Y191cGRhdGUoYndfc3RhdGUsIGNydGNfc3RhdGUpOwo+ID4+ICAKPiA+ PiArCQljb3B5X2h3X3RvX3VhcGlfc3RhdGUoY3J0Y19zdGF0ZSk7Cj4gPj4gIAkJaW50ZWxfcGlw ZV9jb25maWdfc2FuaXR5X2NoZWNrKGRldl9wcml2LCBjcnRjX3N0YXRlKTsKPiA+PiAgCX0KPiA+ PiAgfQo+ID4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X2Rpc3BsYXlfdHlwZXMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlz cGxheV90eXBlcy5oCj4gPj4gaW5kZXggMmMzNTY3MDgxZTE2Li5lODFiNzg1Y2M4ZjIgMTAwNjQ0 Cj4gPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3R5 cGVzLmgKPiA+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3Bs YXlfdHlwZXMuaAo+ID4+IEBAIC03NDksNyArNzQ5LDYgQEAgZW51bSBpbnRlbF9vdXRwdXRfZm9y bWF0IHsKPiA+PiAgfTsKPiA+PiAgCj4gPj4gIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlIHsKPiA+ PiAtCXVuaW9uIHsKPiA+PiAgCS8qCj4gPj4gIAkgKiB1YXBpIChkcm0pIHN0YXRlLiBUaGlzIGlz IHRoZSBzb2Z0d2FyZSBzdGF0ZSBzaG93biB0byB1c2Vyc3BhY2UuCj4gPj4gIAkgKiBJbiBwYXJ0 aWN1bGFyLCB0aGUgZm9sbG93aW5nIG1lbWJlcnMgYXJlIHVzZWQgZm9yIGJvb2trZWVwaW5nOgo+ ID4+IEBAIC03NzIsOCArNzcxLDExIEBAIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlIHsKPiA+PiAg CSAqCj4gPj4gIAkgKiBEdXJpbmcgaW5pdGlhbCBodyByZWFkb3V0LCB0aGV5IG5lZWQgdG8gYmUg Y29waWVkIHRvIHVhcGkuCj4gPj4gIAkgKi8KPiA+PiAtCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSBo dzsKPiA+PiAtCX07Cj4gPj4gKwlzdHJ1Y3Qgewo+ID4+ICsJCWJvb2wgYWN0aXZlLCBlbmFibGU7 Cj4gPj4gKwkJc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpkZWdhbW1hX2x1dCwgKmdhbW1hX2x1 dCwgKmN0bTsKPiA+PiArCQlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSBtb2RlLCBhZGp1c3RlZF9t b2RlOwo+ID4+ICsJfSBodzsKPiA+PiAgCj4gPj4gIAkvKioKPiA+PiAgCSAqIHF1aXJrcyAtIGJp dGZpZWxkIHdpdGggaHcgc3RhdGUgcmVhZG91dCBxdWlya3MKPiA+PiAtLSAKPiA+PiAyLjIwLjEK PiA+Pgo+ID4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Cj4gPj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+ID4+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKPiA+PiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2ludGVsLWdmeAo+IAoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbApfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0 CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=