From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v2 3/8] drm/i915/gen11: Link nv12 Y and UV planes in the atomic state, v4. Date: Thu, 18 Oct 2018 19:00:30 +0300 Message-ID: <20181018160030.GM9144@intel.com> References: <20181018115134.9061-1-maarten.lankhorst@linux.intel.com> <20181018115134.9061-4-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6DBF46E046 for ; Thu, 18 Oct 2018 16:00:33 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20181018115134.9061-4-maarten.lankhorst@linux.intel.com> 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 T24gVGh1LCBPY3QgMTgsIDIwMTggYXQgMDE6NTE6MjlQTSArMDIwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gVG8gbWFrZSBOVjEyIHdvcmtpbmcgb24gaWNsLCB3ZSBuZWVkIHRvIHVwZGF0 ZSAyIHBsYW5lcyBzaW11bHRhbmVvdXNseS4KPiBJJ3ZlIGNob3NlbiB0byBkbyB0aGlzIGluIHRo ZSBDUlRDIHN0ZXAgYWZ0ZXIgcGxhbmUgdmFsaWRhdGlvbiBpcyBkb25lLAo+IHNvIHdlIGtub3cg d2hhdCBwbGFuZXMgYXJlIChpbil2aXNpYmxlLiBUaGUgbGlua2VkIFkgcGxhbmUgd2lsbCBnZXQK PiB1cGRhdGVkIGluIGludGVsX3BsYW5lX3VwZGF0ZV9wbGFuZXNfb25fY3J0YygpLCBieSB0aGUg Y2FsbCB0bwo+IHVwZGF0ZV9zbGF2ZSwgd2hpY2ggZ2V0cyB0aGUgbWFzdGVyJ3MgcGxhbmVfc3Rh dGUgYXMgYXJndW1lbnQuCj4gCj4gVGhlIGxpbmsgcmVxdWlyZXMgYm90aCBwbGFuZXMgZm9yIGF0 b21pY191cGRhdGUgdG8gd29yaywKPiBzbyBtYWtlIHN1cmUgc2tsX2RkYl9hZGRfYWZmZWN0ZWRf cGxhbmVzKCkgYWRkcyBib3RoIHN0YXRlcy4KPiAKPiBDaGFuZ2VzIHNpbmNlIHYxOgo+IC0gSW50 cm9kdWNlIGljbF9pc19udjEyX3lfcGxhbmUoKSwgaW5zdGVhZCBvZiBoYXJkY29kaW5nIHNwcml0 ZSBudW1iZXJzLgo+IC0gUHV0IGFsbCB0aGUgc3RhdGUgdXBkYXRpbmcgbG9naW4gaW4gaW50ZWxf cGxhbmVfYXRvbWljX2NoZWNrX3dpdGhfc3RhdGUoKS4KPiAtIENsZWFuIHVwIGNoYW5nZXMgaW4g aW50ZWxfcGxhbmVfYXRvbWljX2NoZWNrKCkuCj4gQ2hhbmdlcyBzaW5jZSB2MjoKPiAtIEZpeCBp bnRlbF9hdG9taWNfZ2V0X29sZF9wbGFuZV9zdGF0ZSgpIHRvIGFjdHVhbGx5IHJldHVybiBvbGQg c3RhdGUuCj4gLSBNb3ZlIHZpc2liaWxpdHkgY2hhbmdlcyB0byBwcmVwYXJhdGlvbiBwYXRjaC4K PiAtIE9ubHkgdHJ5IHRvIGZpbmQgYSBZIHBsYW5lIG9uIGdlbjExLCBlYXJsaWVyIHBsYXRmb3Jt cyBvbmx5IHJlcXVpcmUKPiAgIGEgc2luZ2xlIHBsYW5lLgo+IENoYW5nZXMgc2luY2UgdjM6Cj4g LSBGaXggY2hlY2twYXRjaCB3YXJuaW5nIGFib3V0IHRvX2ludGVsX2NydGMoKSB1c2FnZS4KPiAt IEFkZCBhZmZlY3RlZCBwbGFuZXMgZnJvbSBpY2xfYWRkX2xpbmtlZF9wbGFuZXMoKSBiZWZvcmUg Y2hlY2tfcGxhbmVzKCksCj4gICBpdCdzIGEgY2xlYW5lciB3YXkgdG8gZG8gdGhpcy4gKFZpbGxl KQo+IAo+IFNpZ25lZC1vZmYtYnk6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxhbmtob3Jz dEBsaW51eC5pbnRlbC5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0 b21pY19wbGFuZS5jIHwgNzQgKysrKysrKysrKysrKysrKy0tLS0tCj4gIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYyAgICAgIHwgODEgKysrKysrKysrKysrKysrKysrKysrKysK PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgICAgICAgfCA1MyArKysrKysr KysrKysrKysKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyAgICAgICAgICAgfCAx MiArKystCj4gIDQgZmlsZXMgY2hhbmdlZCwgMjAyIGluc2VydGlvbnMoKyksIDE4IGRlbGV0aW9u cygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWNf cGxhbmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pY19wbGFuZS5jCj4gaW5k ZXggYjk1N2FkNjNjZDg3Li4xNTRlYTNkYzM0NGYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfYXRvbWljX3BsYW5lLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9hdG9taWNfcGxhbmUuYwo+IEBAIC0xMjIsNyArMTIyLDExIEBAIGludCBpbnRlbF9w bGFuZV9hdG9taWNfY2hlY2tfd2l0aF9zdGF0ZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqb2xkX2NydGNfCj4gIAljcnRjX3N0YXRlLT5udjEyX3BsYW5lcyAmPSB+QklUKGludGVsX3Bs YW5lLT5pZCk7Cj4gIAlpbnRlbF9zdGF0ZS0+YmFzZS52aXNpYmxlID0gZmFsc2U7Cj4gIAo+IC0J LyogSWYgdGhpcyBpcyBhIGN1cnNvciBwbGFuZSwgbm8gZnVydGhlciBjaGVja3MgYXJlIG5lZWRl ZC4gKi8KPiArCS8qIERlc3Ryb3kgdGhlIGxpbmsgKi8KPiArCWludGVsX3N0YXRlLT5saW5rZWRf cGxhbmUgPSBOVUxMOwo+ICsJaW50ZWxfc3RhdGUtPnNsYXZlID0gZmFsc2U7Cj4gKwo+ICsJLyog SWYgdGhpcyBpcyBhIGN1cnNvciBvciBZIHBsYW5lLCBubyBmdXJ0aGVyIGNoZWNrcyBhcmUgbmVl ZGVkLiAqLwo+ICAJaWYgKCFpbnRlbF9zdGF0ZS0+YmFzZS5jcnRjICYmICFvbGRfcGxhbmVfc3Rh dGUtPmJhc2UuY3J0YykKPiAgCQlyZXR1cm4gMDsKPiAgCj4gQEAgLTE0MywyNyArMTQ3LDQ0IEBA IGludCBpbnRlbF9wbGFuZV9hdG9taWNfY2hlY2tfd2l0aF9zdGF0ZShjb25zdCBzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfCj4gIAkJCQkJICAgICAgIHN0YXRlKTsKPiAgfQo+ICAK PiAtc3RhdGljIGludCBpbnRlbF9wbGFuZV9hdG9taWNfY2hlY2soc3RydWN0IGRybV9wbGFuZSAq cGxhbmUsCj4gLQkJCQkgICAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqbmV3X3BsYW5lX3N0YXRl KQo+ICtzdGF0aWMgaW50IGludGVsX3BsYW5lX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX3BsYW5l ICpkcm1fcGxhbmUsCj4gKwkJCQkgICAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqbmV3X2RybV9w bGFuZV9zdGF0ZSkKCk15IG5ldyBjdW5uaW5nIHBsYW5lIGlzIHRvIGNhbGwgdGhlc2UgX3BsYW5l LCBfbmV3X3BsYW5lX3N0YXRlIGV0Yy4KSXQgc2hvdWxkIGRpc2NvdXJhZ2UgcGVvcGxlIGZyb20g dXNpbmcgdGhlbSBhbmQgdGhlIGFsaWFzaW5nCmludGVsXyB0eXBlcyBhdCB0aGUgc2FtZSB0aW1l LiBBbmQgaXQgYXZvaWRzIHBvbGx1dGluZyB0aGUgbmFtZXNwYWNlCmZvciB0aGluZ3Mgd2UgZG9u J3QgcmVhbGx5IHdhbnQgdG8gdXNlLiAKCkkgYWxyZWFkeSBzbnVjayBpbiBzb21lIHVzZXMgb2Yg dGhpcyA7KQoKPiAgewo+IC0Jc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlID0gbmV3X3Bs YW5lX3N0YXRlLT5zdGF0ZTsKPiAtCWNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKm9sZF9w bGFuZV9zdGF0ZSA9Cj4gLQkJZHJtX2F0b21pY19nZXRfb2xkX3BsYW5lX3N0YXRlKHN0YXRlLCBw bGFuZSk7Cj4gLQlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBuZXdfcGxhbmVfc3RhdGUtPmNydGMg Pzogb2xkX3BsYW5lX3N0YXRlLT5jcnRjOwo+IC0JY29uc3Qgc3RydWN0IGRybV9jcnRjX3N0YXRl ICpvbGRfY3J0Y19zdGF0ZTsKPiAtCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3Rh dGU7Cj4gLQo+IC0JbmV3X3BsYW5lX3N0YXRlLT52aXNpYmxlID0gZmFsc2U7Cj4gKwlzdHJ1Y3Qg aW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSA9Cj4gKwkJdG9faW50ZWxfYXRvbWljX3N0YXRlKG5l d19kcm1fcGxhbmVfc3RhdGUtPnN0YXRlKTsKPiArCXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUg PSB0b19pbnRlbF9wbGFuZShkcm1fcGxhbmUpOwo+ICsJY29uc3Qgc3RydWN0IGludGVsX3BsYW5l X3N0YXRlICpvbGRfcGxhbmVfc3RhdGUgPQo+ICsJCWludGVsX2F0b21pY19nZXRfb2xkX3BsYW5l X3N0YXRlKHN0YXRlLCBwbGFuZSk7Cj4gKwlzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKm5ld19w bGFuZV9zdGF0ZSA9Cj4gKwkJdG9faW50ZWxfcGxhbmVfc3RhdGUobmV3X2RybV9wbGFuZV9zdGF0 ZSk7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9Cj4gKwkJdG9faW50ZWxfY3J0YyhuZXdf cGxhbmVfc3RhdGUtPmJhc2UuY3J0YyA/Ogo+ICsJCQkgICAgICBvbGRfcGxhbmVfc3RhdGUtPmJh c2UuY3J0Yyk7Cj4gKwljb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3Rh dGU7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGU7Cj4gKwlzdHJ1 Y3QgaW50ZWxfcGxhbmUgKmxpbmtlZCA9IG9sZF9wbGFuZV9zdGF0ZS0+bGlua2VkX3BsYW5lOwo+ ICsKPiArCWlmIChsaW5rZWQgJiYgIWNydGMpIHsKPiArCQljb25zdCBzdHJ1Y3QgaW50ZWxfcGxh bmVfc3RhdGUgKm9sZF9saW5rZWRfc3RhdGUgPQo+ICsJCQlpbnRlbF9hdG9taWNfZ2V0X29sZF9w bGFuZV9zdGF0ZShzdGF0ZSwgbGlua2VkKTsKClBsYW5lIHdpdGhvdXQgYSBjcnRjIHRoYXQgaGFw cGVucyB0byBoYXZlIGEgbGlua2VkIHBsYW5lCmF0dGFjaGVkIHRvIGl0Li4uCgpJIGd1ZXNzIHRo YXQgaW1wbGllcyB0aGF0ICdwbGFuZScgaGVyZSBpcyB0aGUgc2xhdmUgYW5kCml0IHdhcyBhbHJl YWR5IGFjdGl2ZSBkdXJpbmcgdGhlIHByZXZpb3VzIHN0YXRlIChvdGhlcndpc2UKaXQgd291bGQg bm90IGhhdmUgYmVlbiBsaW5rZWQgdG8gdGhlIG90aGVyIHBsYW5lKS4gU28gdGhhdAptZWFucyB0 aGUgbWFzdGVyIHBsYW5lIG11c3QgaGF2ZSBhIHZhbGlkIGNydGMgaW4gaXRzIG9sZApwbGFuZSBz dGF0ZS4KCkRpZCBJIGRlY29kZSB0aGF0IGNvcnJlY3RseT8KCk1heWJlIHdoYXQgd2Ugd2FudCB0 byBkbyBoZXJlIGlzIHRvIGp1c3QgYWx3YXlzIGNsZWFyIHRoZQphY3RpdmVfcGxhbmVzIGJpdCBm b3IgdGhlIHNsYXZlIGluIHRoZSBtYXN0ZXIgcGxhbmUncwpvbGQgY3J0YydzIG5ldyBjcnRjIHN0 YXRlIChxdWl0ZSB0aGUgbW91dGhmdWwpLCBhbmQgdGhlbgpydW4gdGhyb3VnaCB0aGUgbm9ybWFs IGNoZWNrX3BsYW5lIHN0dWZmIGZvciB0aGUgc2xhdmUKd2l0aCBpdHMgb3duIGNydGMgKGlmIGl0 IGhhcyBvbmUpLiBJbiBwcmFjdGljZSBpdCBkb2Vzbid0CnJlYWxseSBtYWtlIGFueSBkaWZmZXJl bmNlIEkgc3VwcG9zZSBzaW5jZSBvdXIgcGxhbmVzCmNhbid0IG1vdmUgYmV0d2VlbiBjcnRjcywg YnV0IGxvZ2ljYWxseSBpdCB3b3VsZCBtYWtlCm1vcmUgc2Vuc2UgdG8gbWUuCgo+ICsKPiArCQlp ZiAoV0FSTl9PTighb2xkX2xpbmtlZF9zdGF0ZSkpCj4gKwkJCXJldHVybiAtRUlOVkFMOwo+ICsK PiArCQljcnRjID0gdG9faW50ZWxfY3J0YyhvbGRfbGlua2VkX3N0YXRlLT5iYXNlLmNydGMpOwo+ ICsJCWlmIChXQVJOX09OKCFjcnRjKSkKPiArCQkJcmV0dXJuIC1FSU5WQUw7Cj4gKwl9Cj4gKwo+ ICsJbmV3X3BsYW5lX3N0YXRlLT5iYXNlLnZpc2libGUgPSBmYWxzZTsKPiAgCWlmICghY3J0YykK PiAgCQlyZXR1cm4gMDsKPiAgCj4gLQlvbGRfY3J0Y19zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X29s ZF9jcnRjX3N0YXRlKHN0YXRlLCBjcnRjKTsKPiAtCW5ld19jcnRjX3N0YXRlID0gZHJtX2F0b21p Y19nZXRfbmV3X2NydGNfc3RhdGUoc3RhdGUsIGNydGMpOwo+ICsJb2xkX2NydGNfc3RhdGUgPSBp bnRlbF9hdG9taWNfZ2V0X29sZF9jcnRjX3N0YXRlKHN0YXRlLCBjcnRjKTsKPiArCW5ld19jcnRj X3N0YXRlID0gaW50ZWxfYXRvbWljX2dldF9uZXdfY3J0Y19zdGF0ZShzdGF0ZSwgY3J0Yyk7Cj4g IAo+IC0JcmV0dXJuIGludGVsX3BsYW5lX2F0b21pY19jaGVja193aXRoX3N0YXRlKHRvX2ludGVs X2NydGNfc3RhdGUob2xkX2NydGNfc3RhdGUpLAo+IC0JCQkJCQkgICB0b19pbnRlbF9jcnRjX3N0 YXRlKG5ld19jcnRjX3N0YXRlKSwKPiAtCQkJCQkJICAgdG9faW50ZWxfcGxhbmVfc3RhdGUob2xk X3BsYW5lX3N0YXRlKSwKPiAtCQkJCQkJICAgdG9faW50ZWxfcGxhbmVfc3RhdGUobmV3X3BsYW5l X3N0YXRlKSk7Cj4gKwlyZXR1cm4gaW50ZWxfcGxhbmVfYXRvbWljX2NoZWNrX3dpdGhfc3RhdGUo b2xkX2NydGNfc3RhdGUsIG5ld19jcnRjX3N0YXRlLAo+ICsJCQkJCQkgICBvbGRfcGxhbmVfc3Rh dGUsIG5ld19wbGFuZV9zdGF0ZSk7Cj4gIH0KPiAgCj4gIHZvaWQgaW50ZWxfdXBkYXRlX3BsYW5l c19vbl9jcnRjKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKm9sZF9zdGF0ZSwKPiBAQCAtMTg4 LDYgKzIwOSwyNSBAQCB2b2lkIGludGVsX3VwZGF0ZV9wbGFuZXNfb25fY3J0YyhzdHJ1Y3QgaW50 ZWxfYXRvbWljX3N0YXRlICpvbGRfc3RhdGUsCj4gIAkJCXRyYWNlX2ludGVsX3VwZGF0ZV9wbGFu ZSgmcGxhbmUtPmJhc2UsIGNydGMpOwo+ICAKPiAgCQkJcGxhbmUtPnVwZGF0ZV9wbGFuZShwbGFu ZSwgbmV3X2NydGNfc3RhdGUsIG5ld19wbGFuZV9zdGF0ZSk7Cj4gKwkJfSBlbHNlIGlmIChuZXdf cGxhbmVfc3RhdGUtPnNsYXZlKSB7Cj4gKwkJCXN0cnVjdCBpbnRlbF9wbGFuZSAqbWFzdGVyID0K PiArCQkJCW5ld19wbGFuZV9zdGF0ZS0+bGlua2VkX3BsYW5lOwo+ICsKPiArCQkJLyoKPiArCQkJ ICogV2UgdXBkYXRlIHRoZSBzbGF2ZSBwbGFuZSBmcm9tIHRoaXMgZnVuY3Rpb24gYmVjYXVzZQo+ ICsJCQkgKiBwcm9ncmFtbWluZyBpdCBmcm9tIHRoZSBtYXN0ZXIgcGxhbmUncyB1cGRhdGVfcGxh bmUKPiArCQkJICogY2FsbGJhY2sgcnVucyBpbnRvIGlzc3VlcyB3aGVuIHRoZSBZIHBsYW5lIGlz Cj4gKwkJCSAqIHJlYXNzaWduZWQsIGRpc2FibGVkIG9yIHVzZWQgYnkgYSBkaWZmZXJlbnQgcGxh bmUuCj4gKwkJCSAqCj4gKwkJCSAqIFRoZSBzbGF2ZSBwbGFuZSBpcyB1cGRhdGVkIHdpdGggdGhl IG1hc3RlciBwbGFuZSdzCj4gKwkJCSAqIHBsYW5lX3N0YXRlLgo+ICsJCQkgKi8KPiArCQkJbmV3 X3BsYW5lX3N0YXRlID0KPiArCQkJCWludGVsX2F0b21pY19nZXRfbmV3X3BsYW5lX3N0YXRlKG9s ZF9zdGF0ZSwgbWFzdGVyKTsKPiArCj4gKwkJCXRyYWNlX2ludGVsX3VwZGF0ZV9wbGFuZSgmcGxh bmUtPmJhc2UsIGNydGMpOwo+ICsKPiArCQkJcGxhbmUtPnVwZGF0ZV9zbGF2ZShwbGFuZSwgbmV3 X2NydGNfc3RhdGUsIG5ld19wbGFuZV9zdGF0ZSk7Cj4gIAkJfSBlbHNlIHsKPiAgCQkJdHJhY2Vf aW50ZWxfZGlzYWJsZV9wbGFuZSgmcGxhbmUtPmJhc2UsIGNydGMpOwo+ICAKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gaW5kZXggOGUxYjM2NzdlMTMxLi5jYmIzZmIxZDVhZDQg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gQEAgLTEwNzIxLDYgKzEw NzIxLDgwIEBAIHN0YXRpYyBib29sIGNoZWNrX3NpbmdsZV9lbmNvZGVyX2Nsb25pbmcoc3RydWN0 IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAo+ICAJcmV0dXJuIHRydWU7Cj4gIH0KPiAgCj4gK3N0 YXRpYyBpbnQgaWNsX2FkZF9saW5rZWRfcGxhbmVzKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUg KnN0YXRlKQo+ICt7Cj4gKwlzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lLCAqbGlua2VkOwo+ICsJ c3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSwgKmxpbmtlZF9wbGFuZV9zdGF0 ZTsKPiArCWludCBpOwo+ICsKPiArCWZvcl9lYWNoX25ld19pbnRlbF9wbGFuZV9pbl9zdGF0ZShz dGF0ZSwgcGxhbmUsIHBsYW5lX3N0YXRlLCBpKSB7Cj4gKwkJbGlua2VkID0gcGxhbmVfc3RhdGUt PmxpbmtlZF9wbGFuZTsKPiArCj4gKwkJaWYgKCFsaW5rZWQpCj4gKwkJCWNvbnRpbnVlOwo+ICsK PiArCQlsaW5rZWRfcGxhbmVfc3RhdGUgPSBpbnRlbF9hdG9taWNfZ2V0X3BsYW5lX3N0YXRlKHN0 YXRlLCBsaW5rZWQpOwo+ICsJCWlmIChJU19FUlIobGlua2VkX3BsYW5lX3N0YXRlKSkKPiArCQkJ cmV0dXJuIFBUUl9FUlIobGlua2VkX3BsYW5lX3N0YXRlKTsKPiArCX0KPiArCj4gKwlyZXR1cm4g MDsKPiArfQo+ICsKPiArc3RhdGljIGludCBpY2xfY2hlY2tfbnYxMl9wbGFuZXMoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICsJCQkJIHN0cnVjdCBpbnRlbF9jcnRjICpjcnRj LAo+ICsJCQkJIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQoKQ291bGQgcGFz cyBqdXN0IHRoZSBjcnRjX3N0YXRlIGFuZCBkaWcgdGhlIHJlc3Qgb3V0IGhlcmUuCgo+ICt7Cj4g KwlzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSA9IHRvX2ludGVsX2F0b21pY19zdGF0 ZShjcnRjX3N0YXRlLT5iYXNlLnN0YXRlKTsKPiArCXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUs ICphdXg7Cj4gKwo+ICsJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPCAxMSB8fCAhY3J0Y19zdGF0 ZS0+bnYxMl9wbGFuZXMpCj4gKwkJcmV0dXJuIDA7Cj4gKwo+ICsJZm9yX2VhY2hfaW50ZWxfcGxh bmVfb25fY3J0YygmZGV2X3ByaXYtPmRybSwgY3J0YywgcGxhbmUpIHsKPiArCQlzdHJ1Y3QgaW50 ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlLCAqYXV4X3N0YXRlOwo+ICsJCXN0cnVjdCBkcm1f cGxhbmVfc3RhdGUgKmRybV9hdXhfc3RhdGUgPSBOVUxMOwoKU3RpbGwgZG9uJ3QgbGlrZSB0aGUg J2F1eCcgaW4gdGhlc2UgbmFtZXMuCkp1c3QgbGlua2VkL2xpbmtlZF9wbGFuZV9zdGF0ZScgdG8g bWF0Y2ggdGhlIHJlc3Qgb2YgdGhlCmNvZGU/Cgo+ICsKPiArCQlpZiAoIShjcnRjX3N0YXRlLT5u djEyX3BsYW5lcyAmIEJJVChwbGFuZS0+aWQpKSkKPiArCQkJY29udGludWU7Cj4gKwo+ICsJCXBs YW5lX3N0YXRlID0gaW50ZWxfYXRvbWljX2dldF9uZXdfcGxhbmVfc3RhdGUoc3RhdGUsIHBsYW5l KTsKPiArCQlpZiAoIXBsYW5lX3N0YXRlKQo+ICsJCQljb250aW51ZTsKPiArCj4gKwkJZm9yX2Vh Y2hfaW50ZWxfcGxhbmVfb25fY3J0YygmZGV2X3ByaXYtPmRybSwgY3J0YywgYXV4KSB7Cj4gKwkJ CWlmICghaWNsX2lzX252MTJfeV9wbGFuZShhdXgtPmlkKSkKPiArCQkJCWNvbnRpbnVlOwo+ICsK PiArCQkJaWYgKGNydGNfc3RhdGUtPmFjdGl2ZV9wbGFuZXMgJiBCSVQoYXV4LT5pZCkpCj4gKwkJ CQljb250aW51ZTsKPiArCj4gKwkJCWRybV9hdXhfc3RhdGUgPSBkcm1fYXRvbWljX2dldF9wbGFu ZV9zdGF0ZSgmc3RhdGUtPmJhc2UsICZhdXgtPmJhc2UpOwoKaW50ZWxfYXRvbWljX2dldF9wbGFu ZSgpIGFuZCBnZXQgcmlkIG9mIHRoZSBhbGlhc2luZyBzdGF0ZXM/Cgo+ICsJCQlpZiAoSVNfRVJS KGRybV9hdXhfc3RhdGUpKQo+ICsJCQkJcmV0dXJuIFBUUl9FUlIoZHJtX2F1eF9zdGF0ZSk7Cj4g Kwo+ICsJCQlicmVhazsKPiArCQl9Cj4gKwo+ICsJCWlmICghZHJtX2F1eF9zdGF0ZSkgewo+ICsJ CQlEUk1fREVCVUdfS01TKCJOZWVkICVkIGZyZWUgWSBwbGFuZXMgZm9yIE5WMTJcbiIsCj4gKwkJ CQkgICAgICBod2VpZ2h0OChjcnRjX3N0YXRlLT5udjEyX3BsYW5lcykpOwo+ICsKPiArCQkJcmV0 dXJuIC1FSU5WQUw7Cj4gKwkJfQo+ICsKPiArCQlwbGFuZV9zdGF0ZS0+bGlua2VkX3BsYW5lID0g YXV4Owo+ICsKPiArCQlhdXhfc3RhdGUgPSB0b19pbnRlbF9wbGFuZV9zdGF0ZShkcm1fYXV4X3N0 YXRlKTsKPiArCQlhdXhfc3RhdGUtPnNsYXZlID0gdHJ1ZTsKPiArCQlhdXhfc3RhdGUtPmxpbmtl ZF9wbGFuZSA9IHBsYW5lOwo+ICsJCWNydGNfc3RhdGUtPmFjdGl2ZV9wbGFuZXMgfD0gQklUKGF1 eC0+aWQpOwo+ICsJCURSTV9ERUJVR19LTVMoIlVzaW5nICVzIGFzIFkgcGxhbmUgZm9yICVzXG4i LCBhdXgtPmJhc2UubmFtZSwgcGxhbmUtPmJhc2UubmFtZSk7Cj4gKwl9Cj4gKwo+ICsJcmV0dXJu IDA7Cj4gK30KPiArCj4gIHN0YXRpYyBpbnQgaW50ZWxfY3J0Y19hdG9taWNfY2hlY2soc3RydWN0 IGRybV9jcnRjICpjcnRjLAo+ICAJCQkJICAgc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlKQo+ICB7Cj4gQEAgLTEwNzkyLDYgKzEwODY2LDkgQEAgc3RhdGljIGludCBpbnRlbF9jcnRj X2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gIAkJaWYgKG1vZGVfY2hhbmdl ZCkKPiAgCQkJcmV0ID0gc2tsX3VwZGF0ZV9zY2FsZXJfY3J0YyhwaXBlX2NvbmZpZyk7Cj4gIAo+ ICsJCWlmICghcmV0KQo+ICsJCQlyZXQgPSBpY2xfY2hlY2tfbnYxMl9wbGFuZXMoZGV2X3ByaXYs IGludGVsX2NydGMsCj4gKwkJCQkJCSAgICBwaXBlX2NvbmZpZyk7Cj4gIAkJaWYgKCFyZXQpCj4g IAkJCXJldCA9IHNrbF9jaGVja19waXBlX21heF9waXhlbF9yYXRlKGludGVsX2NydGMsCj4gIAkJ CQkJCQkgICAgcGlwZV9jb25maWcpOwo+IEBAIC0xMjQ1OCw2ICsxMjUzNSwxMCBAQCBzdGF0aWMg aW50IGludGVsX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJCWludGVs X3N0YXRlLT5jZGNsay5sb2dpY2FsID0gZGV2X3ByaXYtPmNkY2xrLmxvZ2ljYWw7Cj4gIAl9Cj4g IAo+ICsJcmV0ID0gaWNsX2FkZF9saW5rZWRfcGxhbmVzKGludGVsX3N0YXRlKTsKPiArCWlmIChy ZXQpCj4gKwkJcmV0dXJuIHJldDsKPiArCj4gIAlyZXQgPSBkcm1fYXRvbWljX2hlbHBlcl9jaGVj a19wbGFuZXMoZGV2LCBzdGF0ZSk7Cj4gIAlpZiAocmV0KQo+ICAJCXJldHVybiByZXQ7Cj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBpbmRleCBiNWQ2ZjY4ODdjMTMuLjI3MmRlOTA2YTAwMSAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gQEAgLTUzOSw2ICs1MzksMjYgQEAgc3Ry dWN0IGludGVsX3BsYW5lX3N0YXRlIHsKPiAgCSAqLwo+ICAJaW50IHNjYWxlcl9pZDsKPiAgCj4g KwkvKgo+ICsJICogbGlua2VkX3BsYW5lOgo+ICsJICoKPiArCSAqIElDTCBwbGFuYXIgZm9ybWF0 cyByZXF1aXJlIDIgcGxhbmVzIHRoYXQgYXJlIHVwZGF0ZWQgYXMgcGFpcnMuCj4gKwkgKiBUaGlz IG1lbWJlciBpcyB1c2VkIHRvIG1ha2Ugc3VyZSB0aGUgb3RoZXIgcGxhbmUgaXMgYWxzbyB1cGRh dGVkCj4gKwkgKiB3aGVuIHJlcXVpcmVkLCBhbmQgZm9yIHVwZGF0ZV9zbGF2ZSgpIHRvIGZpbmQg dGhlIGNvcnJlY3QKPiArCSAqIHBsYW5lX3N0YXRlIHRvIHBhc3MgYXMgYXJndW1lbnQuCj4gKwkg Ki8KPiArCXN0cnVjdCBpbnRlbF9wbGFuZSAqbGlua2VkX3BsYW5lOwo+ICsKPiArCS8qCj4gKwkg KiBzbGF2ZToKPiArCSAqIElmIHNldCBkb24ndCB1cGRhdGUgdXNlIHRoZSBsaW5rZWQgcGxhbmUn cyBzdGF0ZSBmb3IgdXBkYXRpbmcKPiArCSAqIHRoaXMgcGxhbmUgZHVyaW5nIGF0b21pYyBjb21t aXQgd2l0aCB0aGUgdXBkYXRlX3NsYXZlKCkgY2FsbGJhY2suCj4gKwkgKgo+ICsJICogSXQncyBh bHNvIHVzZWQgYnkgdGhlIHdhdGVybWFyayBjb2RlIHRvIGlnbm9yZSB3bSBjYWxjdWxhdGlvbnMg b24KPiArCSAqIHRoaXMgcGxhbmUuIFRoZXkncmUgY2FsY3VsYXRlZCBieSB0aGUgbGlua2VkIHBs YW5lJ3Mgd20gY29kZS4KPiArCSAqLwo+ICsJYm9vbCBzbGF2ZTsKPiArCj4gIAlzdHJ1Y3QgZHJt X2ludGVsX3Nwcml0ZV9jb2xvcmtleSBja2V5Owo+ICB9Owo+ICAKPiBAQCAtOTgzLDYgKzEwMDMs OSBAQCBzdHJ1Y3QgaW50ZWxfcGxhbmUgewo+ICAJdm9pZCAoKnVwZGF0ZV9wbGFuZSkoc3RydWN0 IGludGVsX3BsYW5lICpwbGFuZSwKPiAgCQkJICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqY3J0Y19zdGF0ZSwKPiAgCQkJICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3Rh dGUgKnBsYW5lX3N0YXRlKTsKPiArCXZvaWQgKCp1cGRhdGVfc2xhdmUpKHN0cnVjdCBpbnRlbF9w bGFuZSAqcGxhbmUsCj4gKwkJCSAgICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNy dGNfc3RhdGUsCj4gKwkJCSAgICAgY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFu ZV9zdGF0ZSk7Cj4gIAl2b2lkICgqZGlzYWJsZV9wbGFuZSkoc3RydWN0IGludGVsX3BsYW5lICpw bGFuZSwKPiAgCQkJICAgICAgc3RydWN0IGludGVsX2NydGMgKmNydGMpOwo+ICAJYm9vbCAoKmdl dF9od19zdGF0ZSkoc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSwgZW51bSBwaXBlICpwaXBlKTsK PiBAQCAtMTM1MSw2ICsxMzc0LDI3IEBAIGhkbWlfdG9fZGlnX3BvcnQoc3RydWN0IGludGVsX2hk bWkgKmludGVsX2hkbWkpCj4gIAlyZXR1cm4gY29udGFpbmVyX29mKGludGVsX2hkbWksIHN0cnVj dCBpbnRlbF9kaWdpdGFsX3BvcnQsIGhkbWkpOwo+ICB9Cj4gIAo+ICtzdGF0aWMgaW5saW5lIHN0 cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqCj4gK2ludGVsX2F0b21pY19nZXRfcGxhbmVfc3RhdGUo c3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCj4gKwkJCQkgc3RydWN0IGludGVsX3Bs YW5lICpwbGFuZSkKPiArewo+ICsJc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcmV0ID0KPiArCQlk cm1fYXRvbWljX2dldF9wbGFuZV9zdGF0ZSgmc3RhdGUtPmJhc2UsICZwbGFuZS0+YmFzZSk7Cj4g Kwo+ICsJaWYgKElTX0VSUihyZXQpKQo+ICsJCXJldHVybiBFUlJfQ0FTVChyZXQpOwo+ICsKPiAr CXJldHVybiB0b19pbnRlbF9wbGFuZV9zdGF0ZShyZXQpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW5s aW5lIHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqCj4gK2ludGVsX2F0b21pY19nZXRfb2xkX3Bs YW5lX3N0YXRlKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAo+ICsJCQkJIHN0cnVj dCBpbnRlbF9wbGFuZSAqcGxhbmUpCj4gK3sKPiArCXJldHVybiB0b19pbnRlbF9wbGFuZV9zdGF0 ZShkcm1fYXRvbWljX2dldF9vbGRfcGxhbmVfc3RhdGUoJnN0YXRlLT5iYXNlLAo+ICsJCQkJCQkJ CSAgICZwbGFuZS0+YmFzZSkpOwo+ICt9Cj4gKwo+ICBzdGF0aWMgaW5saW5lIHN0cnVjdCBpbnRl bF9wbGFuZV9zdGF0ZSAqCj4gIGludGVsX2F0b21pY19nZXRfbmV3X3BsYW5lX3N0YXRlKHN0cnVj dCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAo+ICAJCQkJIHN0cnVjdCBpbnRlbF9wbGFuZSAq cGxhbmUpCj4gQEAgLTIxNTgsNiArMjIwMiwxNSBAQCBzdHJ1Y3QgaW50ZWxfcGxhbmUgKgo+ICBz a2xfdW5pdmVyc2FsX3BsYW5lX2NyZWF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsCj4gIAkJCSAgIGVudW0gcGlwZSBwaXBlLCBlbnVtIHBsYW5lX2lkIHBsYW5lX2lkKTsKPiAg Cj4gK3N0YXRpYyBpbmxpbmUgYm9vbCBpY2xfaXNfbnYxMl95X3BsYW5lKGVudW0gcGxhbmVfaWQg aWQpCj4gK3sKPiArCS8qIERvbid0IG5lZWQgdG8gZG8gYSBnZW4gY2hlY2ssIHRoZXNlIHBsYW5l cyBhcmUgb25seSBhdmFpbGFibGUgb24gZ2VuMTEgKi8KPiArCWlmIChpZCA9PSBQTEFORV9TUFJJ VEU0IHx8IGlkID09IFBMQU5FX1NQUklURTUpCj4gKwkJcmV0dXJuIHRydWU7Cj4gKwo+ICsJcmV0 dXJuIGZhbHNlOwo+ICt9Cj4gKwo+ICAvKiBpbnRlbF90di5jICovCj4gIHZvaWQgaW50ZWxfdHZf aW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ICAKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3BtLmMKPiBpbmRleCAzYjEzNmZkZmQyNGYuLmQwMDNjMDhiZDllNCAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcG0uYwo+IEBAIC01MTUzLDExICs1MTUzLDEyIEBAIHNrbF9kZGJfYWRk X2FmZmVjdGVkX3BsYW5lcyhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlKQo+ICAJc3Ry dWN0IGludGVsX2F0b21pY19zdGF0ZSAqaW50ZWxfc3RhdGUgPSB0b19pbnRlbF9hdG9taWNfc3Rh dGUoc3RhdGUpOwo+ICAJc3RydWN0IHNrbF9kZGJfYWxsb2NhdGlvbiAqbmV3X2RkYiA9ICZpbnRl bF9zdGF0ZS0+d21fcmVzdWx0cy5kZGI7Cj4gIAlzdHJ1Y3Qgc2tsX2RkYl9hbGxvY2F0aW9uICpj dXJfZGRiID0gJmRldl9wcml2LT53bS5za2xfaHcuZGRiOwo+IC0Jc3RydWN0IGRybV9wbGFuZV9z dGF0ZSAqcGxhbmVfc3RhdGU7Cj4gIAlzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZTsKPiAgCWVudW0g cGlwZSBwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKPiAgCj4gIAlkcm1fZm9yX2VhY2hfcGxhbmVf bWFzayhwbGFuZSwgZGV2LCBjc3RhdGUtPmJhc2UucGxhbmVfbWFzaykgewo+ICsJCXN0cnVjdCBk cm1fcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlOwo+ICsJCXN0cnVjdCBpbnRlbF9wbGFuZSAqbGlu a2VkOwo+ICAJCWVudW0gcGxhbmVfaWQgcGxhbmVfaWQgPSB0b19pbnRlbF9wbGFuZShwbGFuZSkt PmlkOwo+ICAKPiAgCQlpZiAoc2tsX2RkYl9lbnRyeV9lcXVhbCgmY3VyX2RkYi0+cGxhbmVbcGlw ZV1bcGxhbmVfaWRdLAo+IEBAIC01MTY5LDYgKzUxNzAsMTUgQEAgc2tsX2RkYl9hZGRfYWZmZWN0 ZWRfcGxhbmVzKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUpCj4gIAkJcGxhbmVfc3Rh dGUgPSBkcm1fYXRvbWljX2dldF9wbGFuZV9zdGF0ZShzdGF0ZSwgcGxhbmUpOwo+ICAJCWlmIChJ U19FUlIocGxhbmVfc3RhdGUpKQo+ICAJCQlyZXR1cm4gUFRSX0VSUihwbGFuZV9zdGF0ZSk7Cj4g Kwo+ICsJCS8qIE1ha2Ugc3VyZSBsaW5rZWQgcGxhbmUgaXMgdXBkYXRlZCB0b28gKi8KPiArCQls aW5rZWQgPSB0b19pbnRlbF9wbGFuZV9zdGF0ZShwbGFuZV9zdGF0ZSktPmxpbmtlZF9wbGFuZTsK PiArCQlpZiAoIWxpbmtlZCkKPiArCQkJY29udGludWU7Cj4gKwo+ICsJCXBsYW5lX3N0YXRlID0g ZHJtX2F0b21pY19nZXRfcGxhbmVfc3RhdGUoc3RhdGUsICZsaW5rZWQtPmJhc2UpOwo+ICsJCWlm IChJU19FUlIocGxhbmVfc3RhdGUpKQo+ICsJCQlyZXR1cm4gUFRSX0VSUihwbGFuZV9zdGF0ZSk7 Cj4gIAl9Cj4gIAo+ICAJcmV0dXJuIDA7Cj4gLS0gCj4gMi4xOS4xCj4gCj4gX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBJbnRlbC1nZnggbWFpbGluZyBs aXN0Cj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4CgotLSAKVmlsbGUgU3lyasOk bMOkCkludGVsCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=