From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 1/2] drm/i915: Enable scanline read for gen9 dsi Date: Mon, 18 Sep 2017 17:09:50 +0300 Message-ID: <20170918140950.GZ4914@intel.com> References: <1505391181-9477-2-git-send-email-vidya.srinivas@intel.com> <1505741541-30907-1-git-send-email-vidya.srinivas@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1F1D06E06D for ; Mon, 18 Sep 2017 14:09:57 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1505741541-30907-1-git-send-email-vidya.srinivas@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Vidya Srinivas Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBTZXAgMTgsIDIwMTcgYXQgMDc6MDI6MjFQTSArMDUzMCwgVmlkeWEgU3Jpbml2YXMg d3JvdGU6Cj4gRnJvbTogVW1hIFNoYW5rYXIgPHVtYS5zaGFua2FyQGludGVsLmNvbT4KPiAKPiBG b3IgZ2VuOSBwbGF0Zm9ybXMsIGRzaSB0aW1pbmdzIGFyZSBkcml2ZW4gZnJvbSBwb3J0IGluc3Rl YWQgb2YgcGlwZQo+ICh1bmxpa2UgZGRpKS4gVGh1cywgd2UgY2FuJ3QgcmVseSBvbiBwaXBlIHJl Z2lzdGVycyB0byBnZXQgdGhlIHRpbWluZwo+IGluZm9ybWF0aW9uLiBFdmVuIHNjYW5saW5lIHJl Z2lzdGVyIHJlYWQgd2lsbCBub3QgYmUgZnVuY3Rpb25hbC4KPiBUaGlzIGlzIGNhdXNpbmcgdmJs YW5rIGV2YXNpb24gbG9naWMgdG8gZmFpbCBzaW5jZSBpdCByZWxpZXMgb24KPiBzY2FubGluZSwg Y2F1c2luZyBhdG9taWMgdXBkYXRlIGZhaWx1cmUgd2FybmluZ3MuCj4gCj4gVGhpcyBwYXRjaCB1 c2VzIHBpcGUgZnJhbWVzdGFtcCBhbmQgY3VycmVudCB0aW1lc3RhbXAgcmVnaXN0ZXJzCj4gdG8g Y2FsY3VsYXRlIHNjYW5saW5lLiBUaGlzIGlzIGFuIGluZGlyZWN0IHdheSB0byBnZXQgdGhlIHNj YW5saW5lLgo+IEl0IGhlbHBzIHJlc29sdmUgYXRvbWljIHVwZGF0ZSBmYWlsdXJlIGZvciBnZW45 IGRzaSBwbGF0Zm9ybXMuCj4gCj4gdjI6IEFkZHJlc3NlZCBWaWxsZSBhbmQgRGFuaWVsJ3MgcmV2 aWV3IGNvbW1lbnRzLiBVcGRhdGVkIHRoZQo+IHJlZ2lzdGVyIE1BQ1JPcywgaGFuZGxlZCByYWNl IGNvbmRpdGlvbiBmb3IgcmVnaXN0ZXIgcmVhZHMsCj4gZXh0cmFjdGVkIHRpbWluZ3MgZnJvbSB0 aGUgaHdtb2RlLiBSZW1vdmVkIHRoZSBkZXBlbmRlbmN5IG9uCj4gY3J0Yy0+Y29uZmlnIHRvIGdl dCB0aGUgZW5jb2RlciB0eXBlLgo+IAo+IHYzOiBNYWRlIGdldCBzY2FubGluZSBmdW5jdGlvbiBn ZW5lcmljCj4gCj4gQ3JlZGl0cy10bzogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxp bnV4LmludGVsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBVbWEgU2hhbmthciA8dW1hLnNoYW5rYXJA aW50ZWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6IENoYW5kcmEgS29uZHVydSA8Y2hhbmRyYS5rb25k dXJ1QGludGVsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBWaWR5YSBTcmluaXZhcyA8dmlkeWEuc3Jp bml2YXNAaW50ZWwuY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o ICAgICAgfCAgMiArKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jICAgICAgfCAg NyArKysrKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oICAgICAgfCAxMSArKysr KysrCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8IDYwICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ICA0IGZpbGVzIGNoYW5nZWQsIDgwIGluc2Vy dGlvbnMoKykKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBpbmRleCAxY2MzMWE1Li5kOWVm ZTgzIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gQEAgLTQwODUsNiArNDA4NSw4IEBA IHZvaWQgaW50ZWxfc2JpX3dyaXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwg dTE2IHJlZywgdTMyIHZhbHVlLAo+ICB1MzIgdmx2X2ZsaXNkc2lfcmVhZChzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiByZWcpOwo+ICB2b2lkIHZsdl9mbGlzZHNpX3dyaXRl KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTMyIHJlZywgdTMyIHZhbCk7Cj4g IAo+ICt1MzIgZ2VuOV9nZXRfc2NhbmxpbmUoc3RydWN0IGludGVsX2NydGMgKmNydGMpOwo+ICsK PiAgLyogaW50ZWxfZHBpb19waHkuYyAqLwo+ICB2b2lkIGJ4dF9wb3J0X3RvX3BoeV9jaGFubmVs KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBwb3J0IHBvcnQsCj4gIAkJ CSAgICAgZW51bSBkcGlvX3BoeSAqcGh5LCBlbnVtIGRwaW9fY2hhbm5lbCAqY2gpOwo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9pcnEuYwo+IGluZGV4IDVkMzkxZTYuLjQ3NjY4ZGQgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfaXJxLmMKPiBAQCAtNzgxLDYgKzc4MSw3IEBAIHN0YXRpYyBpbnQgX19pbnRlbF9n ZXRfY3J0Y19zY2FubGluZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKPiAgCXN0cnVjdCBkcm1f dmJsYW5rX2NydGMgKnZibGFuazsKPiAgCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKPiAg CWludCBwb3NpdGlvbiwgdnRvdGFsOwo+ICsJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXI7 Cj4gIAo+ICAJaWYgKCFjcnRjLT5hY3RpdmUpCj4gIAkJcmV0dXJuIC0xOwo+IEBAIC03OTIsNiAr NzkzLDEyIEBAIHN0YXRpYyBpbnQgX19pbnRlbF9nZXRfY3J0Y19zY2FubGluZShzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YykKPiAgCWlmIChtb2RlLT5mbGFncyAmIERSTV9NT0RFX0ZMQUdfSU5URVJM QUNFKQo+ICAJCXZ0b3RhbCAvPSAyOwo+ICAKPiArCWlmIChJU19CUk9YVE9OKGRldl9wcml2KSB8 fCBJU19HRU1JTklMQUtFKGRldl9wcml2KSkgewo+ICsJCWZvcl9lYWNoX2VuY29kZXJfb25fY3J0 YyhjcnRjLT5iYXNlLmRldiwgJmNydGMtPmJhc2UsIGVuY29kZXIpCj4gKwkJCWlmIChlbmNvZGVy LT50eXBlID09IElOVEVMX09VVFBVVF9EU0kpCj4gKwkJCQlyZXR1cm4gZ2VuOV9nZXRfc2Nhbmxp bmUoY3J0Yyk7Cj4gKwl9CgpXZSdyZSBnb2luZyB0byB3YW50IGEgYmV0dGVyIHdheSB0byBkbyB0 aGlzLiBJIHRoaW5rIHdoYXQgd2UgY291bGQgc28gaXMKc3R1ZmYgc29tZSBraW5kIG9mIGZsYWcg aW50byBod21vZGUtPnByaXZhdGVfZmxhZ3MgdG8gaW5kaWNhdGUgdGhhdCB3ZQpzaG91bGQgdXNl IHRoZSBmcmFtZSB0aW1lc3RhbXBzIGluc3RlYWQgb2YgdGhlIHNjYW5saW5lIGNvdW50ZXIuCgo+ ICsKPiAgCWlmIChJU19HRU4yKGRldl9wcml2KSkKPiAgCQlwb3NpdGlvbiA9IEk5MTVfUkVBRF9G VyhQSVBFRFNMKHBpcGUpKSAmIERTTF9MSU5FTUFTS19HRU4yOwo+ICAJZWxzZQo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9yZWcuaAo+IGluZGV4IDBiMDMyNjAuLjg1MTY4ZWUgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfcmVnLmgKPiBAQCAtODgwMiw2ICs4ODAyLDE3IEBAIGVudW0gc2tsX3Bvd2VyX2dhdGUg ewo+ICAjZGVmaW5lIE1JUElPX1RYRVNDX0NMS19ESVYyCQkJX01NSU8oMHgxNjAwMDgpCj4gICNk ZWZpbmUgIEdMS19UWF9FU0NfQ0xLX0RJVjJfTUFTSwkJCTB4M0ZGCj4gIAo+ICsvKiBHZW40KyBU aW1lc3RhbXAgYW5kIFBpcGUgRnJhbWUgdGltZSBzdGFtcCByZWdpc3RlcnMgKi8KPiArI2RlZmlu ZSBHRU40X1RJTUVTVEFNUF9DVFIJX01NSU8oTUNIQkFSX01JUlJPUl9CQVNFICsgMHgyMzU4KQoK SnVzdCAweDIzNTguIFNob3VsZCBiZSBjYWxsZWQganVzdCBHRU40X1RJTUVTVEFNUC4KCklmIHdl J3JlIGdvaW5nIHRvIGRlZmluZSB0aGF0LCB0aGVuIHdlIHNob3VsZCBhbHNvIGRlZmluZQonSUxL X1RJTUVTVEFNUF9ISSAweDcwMDcwJyBmb3IgY29tcGxldGVuZXNzLiBJTEsgcHJlZmVycmVkIG92 ZXIgR0VONQpzaW5jZSB0aGlzIG9uZSBpbiBwYXJ0aWN1bGFyIGlzIGEgZGlzcGxheSByZWdpc3Rl ci4KCj4gKyNkZWZpbmUgR0VON19USU1FU1RBTVBfQ1RSCV9NTUlPKDB4NDQwNzApCgpJIHdvdWxk IGNhbGwgaXQgJ0lWQl9USU1FU1RBTVBfQ1RSJyBzaW5jZSBpdCdzIGEgZGlzcGxheSByZWdpc3Rl cgphbmQgZG9lc24ndCBhcHBseSB0byBWTFYvQ0hWLgoKPiArCj4gKyNkZWZpbmUgX1BJUEVfRlJN VE1TVE1QX0EJCTB4NzAwNDgKPiArI2RlZmluZSBfUElQRV9GUk1UTVNUTVBfQgkJMHg3MTA0OAo+ ICsjZGVmaW5lIF9JVkJfUElQRV9GUk1UTVNUTVBfQwkweDcyMDQ4CgpMZWF2ZSB0aGUgcGlwZSBD IG91dC4KCj4gKyNkZWZpbmUgUElQRV9GUk1UTVNUTVAocGlwZSkJCVwKPiArCQkJX01NSU9fUElQ RTMoKHBpcGUpLCBfUElQRV9GUk1UTVNUTVBfQSwgXAo+ICsJCQkJX1BJUEVfRlJNVE1TVE1QX0Is IF9JVkJfUElQRV9GUk1UTVNUTVBfQykKCl9NTUlPX1BJUEUyKChwaXBlKSwgX1BJUEVfRlJNVE1T VE1QX0EpCgo+ICsKPiAgLyogQlhUIE1JUEkgY2xvY2sgY29udHJvbHMgKi8KPiAgI2RlZmluZSBC WFRfTUFYX1ZBUl9PVVRQVVRfS0haCQkJMzk1MDAKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rpc3BsYXkuYwo+IGluZGV4IDA4NzE4MDcuLjYwMTAzMmYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGlzcGxheS5jCj4gQEAgLTEwMzUyLDYgKzEwMzUyLDY2IEBAIHN0YXRpYyBib29s IG5lZWRzX3NjYWxpbmcoY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpzdGF0ZSkKPiAg CXJldHVybiAoc3JjX3cgIT0gZHN0X3cgfHwgc3JjX2ggIT0gZHN0X2gpOwo+ICB9Cj4gIAo+ICsv Kgo+ICsgKiBGb3IgR2VuOSBEU0ksIHBpcGUgc2NhbmxpbmUgcmVnaXN0ZXIgd2lsbCBub3QKPiAr ICogd29yayB0byBnZXQgdGhlIHNjYW5saW5lIHNpbmNlIHRoZSB0aW1pbmdzCj4gKyAqIGFyZSBk cml2ZW4gZnJvbSB0aGUgUE9SVCAodW5saWtlIERESSBlbmNvZGVycykuCj4gKyAqIFRoaXMgZnVu Y3Rpb24gd2lsbCB1c2UgRnJhbWVzdGFtcCBhbmQgY3VycmVudAo+ICsgKiB0aW1lc3RhbXAgcmVn aXN0ZXJzIHRvIGNhbGN1bGF0ZSB0aGUgc2NhbmxpbmUuCj4gKyAqLwo+ICt1MzIgZ2VuOV9nZXRf c2NhbmxpbmUoc3RydWN0IGludGVsX2NydGMgKmNydGMpCgpOb3RoaW5nIGdlbjkgc3BlY2lmaWMg aW4gdGhpcyBmdW5jdGlvbi4gSWYgd2UgZGVwZW5kIG9uIFRJTUVTVEFNUF9DVFIKdGhlbiBpdCBh cHBsaWVzIHRvIGl2YissIHNvIHdlIG1heWJlIHdhbnQgdG8gcHV0IHRoYXQgaW50byB0aGUgbmFt ZSwgb3IKbWF5YmUgbm90LgoKTWF5YmUgY2FsbCBpdCAnX19pbnRlbF9nZXRfY3J0Y19zY2FubGlu ZV9mcm9tX3RpbWVzdGFtcCgpJyBvciBzb21ldGhpbmcKbGlrZSB0aGF0LgoKPiArewo+ICsJc3Ry dWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmJhc2UuZGV2OwoKVXNlbGVzcyB2YXJpYWJsZS4K Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4g Kwl1MzIgY3J0Y192Ymxhbmtfc3RhcnQgPSBjcnRjLT5iYXNlLm1vZGUuY3J0Y192Ymxhbmtfc3Rh cnQ7Cj4gKwl1MzIgY3J0Y192dG90YWwgPSBjcnRjLT5iYXNlLm1vZGUuY3J0Y192dG90YWw7Cj4g Kwl1MzIgY3J0Y19odG90YWwgPSBjcnRjLT5iYXNlLm1vZGUuY3J0Y19odG90YWw7Cj4gKwl1MzIg Y3J0Y19jbG9jayA9IGNydGMtPmJhc2UubW9kZS5jcnRjX2Nsb2NrOwoKdmJsYW5rLT5od21vZGUK Cj4gKwl1NjQgc2NhbmxpbmUgPSAwLCBzY2FuX3ByZXZfdGltZSwgc2Nhbl9jdXJyX3RpbWUsIHNj YW5fcG9zdF90aW1lOwoKZXZlcnl0aGluZyBjYW4gYmUgdTMyLgoKPiArCj4gKwlXQVJOX09OKCFj cnRjX3Z0b3RhbCk7Cj4gKwlpZiAoIWNydGNfdnRvdGFsKQo+ICsJCXJldHVybiBzY2FubGluZTsK CldlIGRvbid0IGNoZWNrIGZvciB0aGF0IGFueXdoZXJlIGVsc2UsIHNvIG5vIHBvaW50IGluIGRv aW5nIGl0IGhlcmUKZWl0aGVyLiAgX19pbnRlbF9nZXRfY3J0Y19zY2FubGluZSgpIGNoZWNrcyBm b3IgY3J0Yy0+YWN0aXZlIHdoaWNoIEkKZ3Vlc3Mgd2UgbWlnaHQgd2FudCB0byBmb2xsb3cgaGVy ZS4gSUlSQyBJIGFkZGVkIHRoYXQgY2hlY2sgdG8gbWFrZQppdCBzYWZlIHRvIGNhbGwgX19pbnRl bF9nZXRfY3J0Y19zY2FubGluZSgpIGZyb20gdHJhY2Vwb2ludHMgYXQgYW55CnRpbWUuIEJ1dCBu b3JtYWxseSB3ZSBzaG91bGRuJ3QgbmVlZCB0aGF0IGNoZWNrLiAKCj4gKwo+ICsJLyogVG8gYXZv aWQgdGhlIHJhY2UgY29uZGl0aW9uIHdoZXJlIHdlIG1pZ2h0IGNyb3NzIGludG8gdGhlCj4gKwkg KiBuZXh0IHZibGFuayBqdXN0IGJldHdlZW4gdGhlIFBJUEVfRlJNVE1TVE1QIGFuZCBUSU1FU1RB TVBfQ1RSCj4gKwkgKiByZWFkcy4gV2UgbWFrZSBzdXJlIHdlIHJlYWQgUElQRV9GUk1UTVNUTVAg YW5kIFRJTUVTVEFNUF9DVFIKPiArCSAqIGR1cmluZyB0aGUgc2FtZSBmcmFtZS4KPiArCSAqLwo+ ICsJZG8gewo+ICsJCS8qCj4gKwkJICogVGhpcyBmaWVsZCBwcm92aWRlcyByZWFkIGJhY2sgb2Yg dGhlIGRpc3BsYXkKPiArCQkgKiBwaXBlIGZyYW1lIHRpbWUgc3RhbXAuIFRoZSB0aW1lIHN0YW1w IHZhbHVlCj4gKwkJICogaXMgc2FtcGxlZCBhdCBldmVyeSBzdGFydCBvZiB2ZXJ0aWNhbCBibGFu ay4KPiArCQkgKi8KPiArCQlzY2FuX3ByZXZfdGltZSA9IEk5MTVfUkVBRF9GVyhQSVBFX0ZSTVRN U1RNUChjcnRjLT5waXBlKSk7Cj4gKwo+ICsJCS8qCj4gKwkJICogVGhlIFRJTUVTVEFNUF9DVFIg cmVnaXN0ZXIgaGFzIHRoZSBjdXJyZW50Cj4gKwkJICogdGltZSBzdGFtcCB2YWx1ZS4KPiArCQkg Ki8KPiArCQlzY2FuX2N1cnJfdGltZSA9IEk5MTVfUkVBRF9GVyhHRU43X1RJTUVTVEFNUF9DVFIp Owo+ICsKPiArCQlzY2FuX3Bvc3RfdGltZSA9IEk5MTVfUkVBRF9GVyhQSVBFX0ZSTVRNU1RNUChj cnRjLT5waXBlKSk7Cj4gKwl9IHdoaWxlIChzY2FuX3Bvc3RfdGltZSAhPSBzY2FuX3ByZXZfdGlt ZSk7Cj4gKwo+ICsJLyoKPiArCSAqIFNpbmNlIHRoZSByZWdpc3RlciBpcyAzMiBiaXQgYW5kIHRo ZSB2YWx1ZXMKPiArCSAqIGNhbiBvdmVyZmxvdyBhbmQgd3JhcCBhcm91bmQsIG1ha2luZyBzdXJl Cj4gKwkgKiBjdXJyZW50IHRpbWUgYWNjb3VudHMgZm9yIHRoZSByZWdpc3Rlcgo+ICsJICogd3Jh cAo+ICsJICovCj4gKwlpZiAoc2Nhbl9jdXJyX3RpbWUgPCBzY2FuX3ByZXZfdGltZSkKPiArCQlz Y2FuX2N1cnJfdGltZSArPSAweDEwMDAwMDAwMDsKCk5vdCBuZWVkZWQuCgo+ICsKPiArCXNjYW5s aW5lID0gZGl2X3U2NChtdWxfdTY0X3UzMl9zaHIoKHNjYW5fY3Vycl90aW1lIC0gc2Nhbl9wcmV2 X3RpbWUpLAoKSnVzdCBtdWxfdTMyX3UzMigpLiBVc2VsZXNzIHBhcmVucyBhcm91bmQgdGhlIHN1 YnRyYWN0aW9uLgoKPiArCQkJCQljcnRjX2Nsb2NrLCAwKSwgMTAwMCAqIGNydGNfaHRvdGFsKTsK PiArCXNjYW5saW5lID0gbWluKHNjYW5saW5lLCAodTY0KShjcnRjX3Z0b3RhbCAtIDEpKTsKClRo ZSBjYXN0IGNhbiBiZSBudWtlZCB3aGVuIHRoZSB0eXBlcyBhcmUgY29ycmVjdGVkLgoKPiArCXNj YW5saW5lID0gKHNjYW5saW5lICsgY3J0Y192Ymxhbmtfc3RhcnQpICUgY3J0Y192dG90YWw7Cj4g Kwo+ICsJcmV0dXJuIHNjYW5saW5lOwo+ICt9Cj4gKwo+ICBpbnQgaW50ZWxfcGxhbmVfYXRvbWlj X2NhbGNfY2hhbmdlcyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3Rh dGUsCj4gIAkJCQkgICAgc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ICAJCQkJ ICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqb2xkX3BsYW5lX3N0YXRlLAo+IC0t IAo+IDEuOS4xCgotLSAKVmlsbGUgU3lyasOkbMOkCkludGVsIE9UQwpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0Cklu dGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK