From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 2/7] drm/i915/skl: Allow scanning out Y and Yf fbs Date: Tue, 24 Feb 2015 19:36:06 +0200 Message-ID: <20150224173606.GQ11371@intel.com> References: <1424706961-27519-1-git-send-email-tvrtko.ursulin@linux.intel.com> <1424706961-27519-3-git-send-email-tvrtko.ursulin@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id E03B16E53D for ; Tue, 24 Feb 2015 09:36:35 -0800 (PST) Content-Disposition: inline In-Reply-To: <1424706961-27519-3-git-send-email-tvrtko.ursulin@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: Tvrtko Ursulin Cc: Intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBGZWIgMjMsIDIwMTUgYXQgMDM6NTU6NTZQTSArMDAwMCwgVHZydGtvIFVyc3VsaW4g d3JvdGU6Cj4gRnJvbTogRGFtaWVuIExlc3BpYXUgPGRhbWllbi5sZXNwaWF1QGludGVsLmNvbT4K PiAKPiBTa3lsYWtlIGlzIGFibGUgdG8gc2Nhbm5vdXQgdGhvc2UgdGlsaW5nIGZvcm1hdHMuIFdl IG5lZWQgdG8gYWxsb3cgdGhlbQo+IGluIHRoZSBBRERGQiBpb2N0bCBhbmQgdGVsbCB0aGUgaGFy d2FyZSBhYm91dCBpdC4KPiAKPiB2MjogUmViYXNlZCBmb3IgYWRkZmIyIGludGVyZmFjZS4gKFR2 cnRrbyBVcnN1bGluKQo+IHYzOiBSZWJhc2VkIGZvciBmYiBtb2RpZmllciBjaGFuZ2VzLiAoVHZy dGtvIFVyc3VsaW4pCj4gdjQ6IERvbid0IGFsbG93IFkgdGlsZWQgZmJzIGp1c3QgeWV0LiAoVHZy dGtvIFVyc3VsaW4pCj4gdjU6IENoZWNrIGZvciBzdHJpZGUgYWxpZ25tZW50IGFuZCBtYXggcGl0 Y2guIChUdnJ0a28gVXJzdWxpbikKPiB2NjogU2ltcGxpZnkgbWF4aW11bSBwaXRjaCBjaGVjay4g KFZpbGxlIFN5cmrDpGzDpCkKPiB2NzogRHJvcCB0aGUgZ2VuOSBjaGVjayBzaW5jZSByZXF1aXJl bWVudHMgYXJlIG5vIGRpZmZlcmVudC4gKFZpbGxlIFN5cmrDpGzDpCkKPiAKPiBTaWduZWQtb2Zm LWJ5OiBEYW1pZW4gTGVzcGlhdSA8ZGFtaWVuLmxlc3BpYXVAaW50ZWwuY29tPgo+IFNpZ25lZC1v ZmYtYnk6IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+Cj4gQ2M6IFZp bGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gLS0tCj4gIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8IDExNSArKysrKysrKysrKysrKysr KysrKysrKystLS0tLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAg ICAgfCAgIDIgKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYyAgfCAgMTgg KysrKy0tCj4gIDMgZmlsZXMgY2hhbmdlZCwgOTUgaW5zZXJ0aW9ucygrKSwgNDAgZGVsZXRpb25z KC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXku YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IGluZGV4IDZlNzA3NDgu LmE1MjNkODQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxh eS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gQEAgLTI3 MjgsNiArMjcyOCwzNCBAQCBzdGF0aWMgdm9pZCBpcm9ubGFrZV91cGRhdGVfcHJpbWFyeV9wbGFu ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gIAlQT1NUSU5HX1JFQUQocmVnKTsKPiAgfQo+ICAK PiArdTMyIGludGVsX2ZiX3N0cmlkZV9hbGlnbm1lbnQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwg dWludDY0X3QgZmJfbW9kaWZpZXIsCj4gKwkJCSAgICAgIHVpbnQzMl90IHBpeGVsX2Zvcm1hdCkK PiArewo+ICsJdTMyIGJpdHNfcGVyX3BpeGVsID0gZHJtX2Zvcm1hdF9wbGFuZV9jcHAocGl4ZWxf Zm9ybWF0LCAwKSAqIDg7Cj4gKwo+ICsJLyoKPiArCSAqIFRoZSBzdHJpZGUgaXMgZWl0aGVyIGV4 cHJlc3NlZCBhcyBhIG11bHRpcGxlIG9mIDY0IGJ5dGVzCj4gKwkgKiBjaHVua3MgZm9yIGxpbmVh ciBidWZmZXJzIG9yIGluIG51bWJlciBvZiB0aWxlcyBmb3IgdGlsZWQKPiArCSAqIGJ1ZmZlcnMu Cj4gKwkgKi8KPiArCXN3aXRjaCAoZmJfbW9kaWZpZXIpIHsKPiArCWNhc2UgRFJNX0ZPUk1BVF9N T0RfTk9ORToKPiArCQlyZXR1cm4gNjQ7Cj4gKwljYXNlIEk5MTVfRk9STUFUX01PRF9YX1RJTEVE OgoKaWYgKGdlbjIpCglyZXR1cm4gMTI4OwoKPiArCQlyZXR1cm4gNTEyOwo+ICsJY2FzZSBJOTE1 X0ZPUk1BVF9NT0RfWV9USUxFRDoKPiArCQlyZXR1cm4gMTI4OwoKSW4gdGhlb3J5IHdlIGNvdWxk IGNoZWNrIGdlbjIgYW5kIEhBU18xMjhfQllURV9ZX1RJTElORygpIGhlcmUsIGJ1dApzaW5jZSBv bGQgcGxhdGZvcm1zIGRpZG4ndCBkbyBZIHRpbGVkIHNjYW5vdXQgYW55d2F5IHRoYXQncyBub3Qg cmVhbGx5Cm5lZWRlZC4gQnV0IG1heWJlIHRvc3MgaW4gYSBjb21tZW50IGFib3V0IHRoYXQgc28g dGhhdCBwZW9wbGUgZG9uJ3QKc3RhcnQgd29uZGVyaW5nIHdoeSB0aGlzIGRvZXNuJ3QgY2FyZSBh Ym91dCB0aGF0IHN0dWZmPwoKPiArCWNhc2UgSTkxNV9GT1JNQVRfTU9EX1lmX1RJTEVEOgo+ICsJ CWlmIChiaXRzX3Blcl9waXhlbCA9PSA4KQo+ICsJCQlyZXR1cm4gNjQ7Cj4gKwkJZWxzZQo+ICsJ CQlyZXR1cm4gMTI4Owo+ICsJZGVmYXVsdDoKPiArCQlNSVNTSU5HX0NBU0UoZmJfbW9kaWZpZXIp Owo+ICsJCXJldHVybiA2NDsKPiArCX0KPiArfQo+ICsKPiAgc3RhdGljIHZvaWQgc2t5bGFrZV91 cGRhdGVfcHJpbWFyeV9wbGFuZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gIAkJCQkJIHN0cnVj dCBkcm1fZnJhbWVidWZmZXIgKmZiLAo+ICAJCQkJCSBpbnQgeCwgaW50IHkpCj4gQEAgLTI3MzUs MTAgKzI3NjMsOSBAQCBzdGF0aWMgdm9pZCBza3lsYWtlX3VwZGF0ZV9wcmltYXJ5X3BsYW5lKHN0 cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5k ZXY7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2 YXRlOwo+ICAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNy dGMpOwo+IC0Jc3RydWN0IGludGVsX2ZyYW1lYnVmZmVyICppbnRlbF9mYjsKPiAgCXN0cnVjdCBk cm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7Cj4gIAlpbnQgcGlwZSA9IGludGVsX2NydGMtPnBpcGU7 Cj4gLQl1MzIgcGxhbmVfY3RsLCBzdHJpZGU7Cj4gKwl1MzIgcGxhbmVfY3RsLCBzdHJpZGVfZGl2 Owo+ICAKPiAgCWlmICghaW50ZWxfY3J0Yy0+cHJpbWFyeV9lbmFibGVkKSB7Cj4gIAkJSTkxNV9X UklURShQTEFORV9DVEwocGlwZSwgMCksIDApOwo+IEBAIC0yNzgyLDI5ICsyODA5LDMwIEBAIHN0 YXRpYyB2b2lkIHNreWxha2VfdXBkYXRlX3ByaW1hcnlfcGxhbmUoc3RydWN0IGRybV9jcnRjICpj cnRjLAo+ICAJCUJVRygpOwo+ICAJfQo+ICAKPiAtCWludGVsX2ZiID0gdG9faW50ZWxfZnJhbWVi dWZmZXIoZmIpOwo+IC0Jb2JqID0gaW50ZWxfZmItPm9iajsKPiAtCj4gLQkvKgo+IC0JICogVGhl IHN0cmlkZSBpcyBlaXRoZXIgZXhwcmVzc2VkIGFzIGEgbXVsdGlwbGUgb2YgNjQgYnl0ZXMgY2h1 bmtzIGZvcgo+IC0JICogbGluZWFyIGJ1ZmZlcnMgb3IgaW4gbnVtYmVyIG9mIHRpbGVzIGZvciB0 aWxlZCBidWZmZXJzLgo+IC0JICovCj4gIAlzd2l0Y2ggKGZiLT5tb2RpZmllclswXSkgewo+ICAJ Y2FzZSBEUk1fRk9STUFUX01PRF9OT05FOgo+IC0JCXN0cmlkZSA9IGZiLT5waXRjaGVzWzBdID4+ IDY7Cj4gIAkJYnJlYWs7Cj4gIAljYXNlIEk5MTVfRk9STUFUX01PRF9YX1RJTEVEOgo+ICAJCXBs YW5lX2N0bCB8PSBQTEFORV9DVExfVElMRURfWDsKPiAtCQlzdHJpZGUgPSBmYi0+cGl0Y2hlc1sw XSA+PiA5Owo+ICsJCWJyZWFrOwo+ICsJY2FzZSBJOTE1X0ZPUk1BVF9NT0RfWV9USUxFRDoKPiAr CQlwbGFuZV9jdGwgfD0gUExBTkVfQ1RMX1RJTEVEX1k7Cj4gKwkJYnJlYWs7Cj4gKwljYXNlIEk5 MTVfRk9STUFUX01PRF9ZZl9USUxFRDoKPiArCQlwbGFuZV9jdGwgfD0gUExBTkVfQ1RMX1RJTEVE X1lGOwo+ICAJCWJyZWFrOwo+ICAJZGVmYXVsdDoKPiAtCQlCVUcoKTsKPiArCQlNSVNTSU5HX0NB U0UoZmItPm1vZGlmaWVyWzBdKTsKPiAgCX0KPiAgCj4gIAlwbGFuZV9jdGwgfD0gUExBTkVfQ1RM X1BMQU5FX0dBTU1BX0RJU0FCTEU7Cj4gIAlpZiAoY3J0Yy0+cHJpbWFyeS0+c3RhdGUtPnJvdGF0 aW9uID09IEJJVChEUk1fUk9UQVRFXzE4MCkpCj4gIAkJcGxhbmVfY3RsIHw9IFBMQU5FX0NUTF9S T1RBVEVfMTgwOwo+ICAKPiArCW9iaiA9IGludGVsX2ZiX29iaihmYik7Cj4gKwlzdHJpZGVfZGl2 ID0gaW50ZWxfZmJfc3RyaWRlX2FsaWdubWVudChkZXYsIGZiLT5tb2RpZmllclswXSwKPiArCQkJ CQkgICAgICAgZmItPnBpeGVsX2Zvcm1hdCk7Cj4gKwo+ICAJSTkxNV9XUklURShQTEFORV9DVEwo cGlwZSwgMCksIHBsYW5lX2N0bCk7Cj4gIAo+ICAJRFJNX0RFQlVHX0tNUygiV3JpdGluZyBiYXNl ICUwOGxYICVkLCVkLCVkLCVkIHBpdGNoPSVkXG4iLAo+IEBAIC0yODE3LDcgKzI4NDUsNyBAQCBz dGF0aWMgdm9pZCBza3lsYWtlX3VwZGF0ZV9wcmltYXJ5X3BsYW5lKHN0cnVjdCBkcm1fY3J0YyAq Y3J0YywKPiAgCUk5MTVfV1JJVEUoUExBTkVfU0laRShwaXBlLCAwKSwKPiAgCQkgICAoaW50ZWxf Y3J0Yy0+Y29uZmlnLT5waXBlX3NyY19oIC0gMSkgPDwgMTYgfAo+ICAJCSAgIChpbnRlbF9jcnRj LT5jb25maWctPnBpcGVfc3JjX3cgLSAxKSk7Cj4gLQlJOTE1X1dSSVRFKFBMQU5FX1NUUklERShw aXBlLCAwKSwgc3RyaWRlKTsKPiArCUk5MTVfV1JJVEUoUExBTkVfU1RSSURFKHBpcGUsIDApLCBm Yi0+cGl0Y2hlc1swXSAvIHN0cmlkZV9kaXYpOwo+ICAJSTkxNV9XUklURShQTEFORV9TVVJGKHBp cGUsIDApLCBpOTE1X2dlbV9vYmpfZ2d0dF9vZmZzZXQob2JqKSk7Cj4gIAo+ICAJUE9TVElOR19S RUFEKFBMQU5FX1NVUkYocGlwZSwgMCkpOwo+IEBAIC0xMjY1NywxNCArMTI2ODUsNDMgQEAgc3Rh dGljIGNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXJfZnVuY3MgaW50ZWxfZmJfZnVuY3MgPSB7 Cj4gIAkuY3JlYXRlX2hhbmRsZSA9IGludGVsX3VzZXJfZnJhbWVidWZmZXJfY3JlYXRlX2hhbmRs ZSwKPiAgfTsKPiAgCj4gK3N0YXRpYwo+ICt1MzIgaW50ZWxfZmJfcGl0Y2hfbGltaXQoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgdWludDY0X3QgZmJfbW9kaWZpZXIsCj4gKwkJCSB1aW50MzJfdCBw aXhlbF9mb3JtYXQpCj4gK3sKPiArCXUzMiBnZW4gPSBJTlRFTF9JTkZPKGRldiktPmdlbjsKPiAr Cj4gKwlpZiAoZ2VuID49IDkpIHsKPiArCQkvKiAiVGhlIHN0cmlkZSBpbiBieXRlcyBtdXN0IG5v dCBleGNlZWQgdGhlIG9mIHRoZSBzaXplIG9mIDhLCj4gKwkJICogIHBpeGVscyBhbmQgMzJLIGJ5 dGVzLiIKPiArCQkgKi8KPiArCQkgcmV0dXJuIG1pbig4MTkyKmRybV9mb3JtYXRfcGxhbmVfY3Bw KHBpeGVsX2Zvcm1hdCwgMCksIDMyNzY4KTsKPiArCX0gZWxzZSBpZiAoZ2VuID49IDUgJiYgIUlT X1ZBTExFWVZJRVcoZGV2KSkgewo+ICsJCXJldHVybiAzMioxMDI0Owo+ICsJfSBlbHNlIGlmIChn ZW4gPj0gNCkgewo+ICsJCWlmIChmYl9tb2RpZmllciA9PSBJOTE1X0ZPUk1BVF9NT0RfWF9USUxF RCkKPiArCQkJcmV0dXJuIDE2KjEwMjQ7Cj4gKwkJZWxzZQo+ICsJCQlyZXR1cm4gMzIqMTAyNDsK PiArCX0gZWxzZSBpZiAoZ2VuID49IDMpIHsKPiArCQlpZiAoZmJfbW9kaWZpZXIgPT0gSTkxNV9G T1JNQVRfTU9EX1hfVElMRUQpCj4gKwkJCXJldHVybiA4KjEwMjQ7Cj4gKwkJZWxzZQo+ICsJCQly ZXR1cm4gMTYqMTAyNDsKPiArCX0gZWxzZSB7Cj4gKwkJLyogWFhYIERTUEMgaXMgbGltaXRlZCB0 byA0ayB0aWxlZCAqLwo+ICsJCXJldHVybiA4KjEwMjQ7Cj4gKwl9Cj4gK30KPiArCj4gIHN0YXRp YyBpbnQgaW50ZWxfZnJhbWVidWZmZXJfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJ CQkJICBzdHJ1Y3QgaW50ZWxfZnJhbWVidWZmZXIgKmludGVsX2ZiLAo+ICAJCQkJICBzdHJ1Y3Qg ZHJtX21vZGVfZmJfY21kMiAqbW9kZV9jbWQsCj4gIAkJCQkgIHN0cnVjdCBkcm1faTkxNV9nZW1f b2JqZWN0ICpvYmopCj4gIHsKPiAgCWludCBhbGlnbmVkX2hlaWdodDsKPiAtCWludCBwaXRjaF9s aW1pdDsKPiAgCWludCByZXQ7Cj4gKwl1MzIgcGl0Y2hfbGltaXQsIHN0cmlkZV9hbGlnbm1lbnQ7 Cj4gIAo+ICAJV0FSTl9PTighbXV0ZXhfaXNfbG9ja2VkKCZkZXYtPnN0cnVjdF9tdXRleCkpOwo+ ICAKPiBAQCAtMTI2OTAsMzEgKzEyNzQ3LDE5IEBAIHN0YXRpYyBpbnQgaW50ZWxfZnJhbWVidWZm ZXJfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJCXJldHVybiAtRUlOVkFMOwo+ICAJ fQo+ICAKPiAtCWlmIChtb2RlX2NtZC0+cGl0Y2hlc1swXSAmIDYzKSB7Cj4gLQkJRFJNX0RFQlVH KCJwaXRjaCAoJWQpIG11c3QgYmUgYXQgbGVhc3QgNjQgYnl0ZSBhbGlnbmVkXG4iLAo+IC0JCQkg IG1vZGVfY21kLT5waXRjaGVzWzBdKTsKPiArCXN0cmlkZV9hbGlnbm1lbnQgPSBpbnRlbF9mYl9z dHJpZGVfYWxpZ25tZW50KGRldiwgbW9kZV9jbWQtPm1vZGlmaWVyWzBdLAo+ICsJCQkJCQkgICAg IG1vZGVfY21kLT5waXhlbF9mb3JtYXQpOwo+ICsJaWYgKG1vZGVfY21kLT5waXRjaGVzWzBdICYg KHN0cmlkZV9hbGlnbm1lbnQgLSAxKSkgewo+ICsJCURSTV9ERUJVRygicGl0Y2ggKCVkKSBtdXN0 IGJlIGF0IGxlYXN0ICV1IGJ5dGUgYWxpZ25lZFxuIiwKPiArCQkJICBtb2RlX2NtZC0+cGl0Y2hl c1swXSwgc3RyaWRlX2FsaWdubWVudCk7Cj4gIAkJcmV0dXJuIC1FSU5WQUw7Cj4gIAl9Cj4gIAo+ IC0JaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDUgJiYgIUlTX1ZBTExFWVZJRVcoZGV2KSkg ewo+IC0JCXBpdGNoX2xpbWl0ID0gMzIqMTAyNDsKPiAtCX0gZWxzZSBpZiAoSU5URUxfSU5GTyhk ZXYpLT5nZW4gPj0gNCkgewo+IC0JCWlmIChtb2RlX2NtZC0+bW9kaWZpZXJbMF0gPT0gSTkxNV9G T1JNQVRfTU9EX1hfVElMRUQpCj4gLQkJCXBpdGNoX2xpbWl0ID0gMTYqMTAyNDsKPiAtCQllbHNl Cj4gLQkJCXBpdGNoX2xpbWl0ID0gMzIqMTAyNDsKPiAtCX0gZWxzZSBpZiAoSU5URUxfSU5GTyhk ZXYpLT5nZW4gPj0gMykgewo+IC0JCWlmIChtb2RlX2NtZC0+bW9kaWZpZXJbMF0gPT0gSTkxNV9G T1JNQVRfTU9EX1hfVElMRUQpCj4gLQkJCXBpdGNoX2xpbWl0ID0gOCoxMDI0Owo+IC0JCWVsc2UK PiAtCQkJcGl0Y2hfbGltaXQgPSAxNioxMDI0Owo+IC0JfSBlbHNlCj4gLQkJLyogWFhYIERTUEMg aXMgbGltaXRlZCB0byA0ayB0aWxlZCAqLwo+IC0JCXBpdGNoX2xpbWl0ID0gOCoxMDI0Owo+IC0K PiArCXBpdGNoX2xpbWl0ID0gaW50ZWxfZmJfcGl0Y2hfbGltaXQoZGV2LCBtb2RlX2NtZC0+bW9k aWZpZXJbMF0sCj4gKwkJCQkJICAgbW9kZV9jbWQtPnBpeGVsX2Zvcm1hdCk7CgpXZSBzZWVtIHRv IGFsdGVybmF0ZSBiZXR3ZWVuICJzdHJpZGUiIGFuZCAicGl0Y2giIHNvbWV3aGF0IHJhbmRvbWx5 LgpTaG91bGQgbWF5YmUgc3RpY2sgdG8gb25lIG9yIG90aGVyIDopCgpBbnl3YXlzIHRoaXMgbG9v a3MgcHJldHR5IGdvb2QgdG8gbWUuIFdpdGggdGhlIGdlbjIgWCB0aWxlZCBzdHJpZGUKYWxpZ25t ZW50IGZpeGVkIHRoaXMgaXMKUmV2aWV3ZWQtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3ly amFsYUBsaW51eC5pbnRlbC5jb20+Cgo+ICAJaWYgKG1vZGVfY21kLT5waXRjaGVzWzBdID4gcGl0 Y2hfbGltaXQpIHsKPiAtCQlEUk1fREVCVUcoIiVzIHBpdGNoICglZCkgbXVzdCBiZSBhdCBsZXNz IHRoYW4gJWRcbiIsCj4gLQkJCSAgbW9kZV9jbWQtPm1vZGlmaWVyWzBdID09IEk5MTVfRk9STUFU X01PRF9YX1RJTEVEID8KPiArCQlEUk1fREVCVUcoIiVzIHBpdGNoICgldSkgbXVzdCBiZSBhdCBs ZXNzIHRoYW4gJWRcbiIsCj4gKwkJCSAgbW9kZV9jbWQtPm1vZGlmaWVyWzBdICE9IERSTV9GT1JN QVRfTU9EX05PTkUgPwo+ICAJCQkgICJ0aWxlZCIgOiAibGluZWFyIiwKPiAgCQkJICBtb2RlX2Nt ZC0+cGl0Y2hlc1swXSwgcGl0Y2hfbGltaXQpOwo+ICAJCXJldHVybiAtRUlOVkFMOwo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rydi5oCj4gaW5kZXggMWRlOGUyMC4uMzk5ZDJiMiAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rydi5oCj4gQEAgLTg4Myw2ICs4ODMsOCBAQCBpbnQgaW50ZWxfZmJfYWxp Z25faGVpZ2h0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBoZWlnaHQsCj4gIAkJCSAgdWlu dDY0X3QgZmJfZm9ybWF0X21vZGlmaWVyKTsKPiAgdm9pZCBpbnRlbF9mYl9vYmpfZmx1c2goc3Ry dWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwgYm9vbCByZXRpcmUpOwo+ICAKPiArdTMyIGlu dGVsX2ZiX3N0cmlkZV9hbGlnbm1lbnQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdWludDY0X3Qg ZmJfbW9kaWZpZXIsCj4gKwkJCSAgICAgIHVpbnQzMl90IHBpeGVsX2Zvcm1hdCk7Cj4gIAo+ICAv KiBpbnRlbF9hdWRpby5jICovCj4gIHZvaWQgaW50ZWxfaW5pdF9hdWRpbyhzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3By aXRlLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwo+IGluZGV4IDVhZTU2 ZWMuLmI3MTAzYmQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3By aXRlLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwo+IEBAIC0x ODksNyArMTg5LDcgQEAgc2tsX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpkcm1fcGxh bmUsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgCXN0cnVjdCBpbnRlbF9wbGFuZSAqaW50ZWxf cGxhbmUgPSB0b19pbnRlbF9wbGFuZShkcm1fcGxhbmUpOwo+ICAJY29uc3QgaW50IHBpcGUgPSBp bnRlbF9wbGFuZS0+cGlwZTsKPiAgCWNvbnN0IGludCBwbGFuZSA9IGludGVsX3BsYW5lLT5wbGFu ZSArIDE7Cj4gLQl1MzIgcGxhbmVfY3RsLCBzdHJpZGU7Cj4gKwl1MzIgcGxhbmVfY3RsLCBzdHJp ZGVfZGl2Owo+ICAJaW50IHBpeGVsX3NpemUgPSBkcm1fZm9ybWF0X3BsYW5lX2NwcChmYi0+cGl4 ZWxfZm9ybWF0LCAwKTsKPiAgCj4gIAlwbGFuZV9jdGwgPSBJOTE1X1JFQUQoUExBTkVfQ1RMKHBp cGUsIHBsYW5lKSk7Cj4gQEAgLTI0NywxNSArMjQ3LDIwIEBAIHNrbF91cGRhdGVfcGxhbmUoc3Ry dWN0IGRybV9wbGFuZSAqZHJtX3BsYW5lLCBzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gIAo+ICAJ c3dpdGNoIChmYi0+bW9kaWZpZXJbMF0pIHsKPiAgCWNhc2UgRFJNX0ZPUk1BVF9NT0RfTk9ORToK PiAtCQlzdHJpZGUgPSBmYi0+cGl0Y2hlc1swXSA+PiA2Owo+ICAJCWJyZWFrOwo+ICAJY2FzZSBJ OTE1X0ZPUk1BVF9NT0RfWF9USUxFRDoKPiAgCQlwbGFuZV9jdGwgfD0gUExBTkVfQ1RMX1RJTEVE X1g7Cj4gLQkJc3RyaWRlID0gZmItPnBpdGNoZXNbMF0gPj4gOTsKPiArCQlicmVhazsKPiArCWNh c2UgSTkxNV9GT1JNQVRfTU9EX1lfVElMRUQ6Cj4gKwkJcGxhbmVfY3RsIHw9IFBMQU5FX0NUTF9U SUxFRF9ZOwo+ICsJCWJyZWFrOwo+ICsJY2FzZSBJOTE1X0ZPUk1BVF9NT0RfWWZfVElMRUQ6Cj4g KwkJcGxhbmVfY3RsIHw9IFBMQU5FX0NUTF9USUxFRF9ZRjsKPiAgCQlicmVhazsKPiAgCWRlZmF1 bHQ6Cj4gLQkJQlVHKCk7Cj4gKwkJTUlTU0lOR19DQVNFKGZiLT5tb2RpZmllclswXSk7Cj4gIAl9 Cj4gKwo+ICAJaWYgKGRybV9wbGFuZS0+c3RhdGUtPnJvdGF0aW9uID09IEJJVChEUk1fUk9UQVRF XzE4MCkpCj4gIAkJcGxhbmVfY3RsIHw9IFBMQU5FX0NUTF9ST1RBVEVfMTgwOwo+ICAKPiBAQCAt MjY2LDYgKzI3MSw5IEBAIHNrbF91cGRhdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqZHJtX3Bs YW5lLCBzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gIAkJCQkgICAgICAgcGl4ZWxfc2l6ZSwgdHJ1 ZSwKPiAgCQkJCSAgICAgICBzcmNfdyAhPSBjcnRjX3cgfHwgc3JjX2ggIT0gY3J0Y19oKTsKPiAg Cj4gKwlzdHJpZGVfZGl2ID0gaW50ZWxfZmJfc3RyaWRlX2FsaWdubWVudChkZXYsIGZiLT5tb2Rp ZmllclswXSwKPiArCQkJCQkgICAgICAgZmItPnBpeGVsX2Zvcm1hdCk7Cj4gKwo+ICAJLyogU2l6 ZXMgYXJlIDAgYmFzZWQgKi8KPiAgCXNyY193LS07Cj4gIAlzcmNfaC0tOwo+IEBAIC0yNzMsNyAr MjgxLDcgQEAgc2tsX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpkcm1fcGxhbmUsIHN0 cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgCWNydGNfaC0tOwo+ICAKPiAgCUk5MTVfV1JJVEUoUExB TkVfT0ZGU0VUKHBpcGUsIHBsYW5lKSwgKHkgPDwgMTYpIHwgeCk7Cj4gLQlJOTE1X1dSSVRFKFBM QU5FX1NUUklERShwaXBlLCBwbGFuZSksIHN0cmlkZSk7Cj4gKwlJOTE1X1dSSVRFKFBMQU5FX1NU UklERShwaXBlLCBwbGFuZSksIGZiLT5waXRjaGVzWzBdIC8gc3RyaWRlX2Rpdik7Cj4gIAlJOTE1 X1dSSVRFKFBMQU5FX1BPUyhwaXBlLCBwbGFuZSksIChjcnRjX3kgPDwgMTYpIHwgY3J0Y194KTsK PiAgCUk5MTVfV1JJVEUoUExBTkVfU0laRShwaXBlLCBwbGFuZSksIChjcnRjX2ggPDwgMTYpIHwg Y3J0Y193KTsKPiAgCUk5MTVfV1JJVEUoUExBTkVfQ1RMKHBpcGUsIHBsYW5lKSwgcGxhbmVfY3Rs KTsKPiAtLSAKPiAyLjMuMAoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbCBPVEMKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcg bGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK