From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manasi Navare Subject: Re: [PATCH 02/10] drm: i915: Get DSC capability from DP sink Date: Fri, 23 Feb 2018 16:39:25 -0800 Message-ID: <20180224003924.GA28509@intel.com> References: <1519401353-25029-1-git-send-email-gaurav.k.singh@intel.com> <1519401353-25029-3-git-send-email-gaurav.k.singh@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1D9556F389 for ; Sat, 24 Feb 2018 00:36:26 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1519401353-25029-3-git-send-email-gaurav.k.singh@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Gaurav K Singh Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBGZWIgMjMsIDIwMTggYXQgMDk6MjU6NDVQTSArMDUzMCwgR2F1cmF2IEsgU2luZ2gg d3JvdGU6Cj4gR2V0IGRlY29tcHJlc3Npb24gY2FwYWJpbGl0aWVzIGZyb20gRFAgc2luayBieSBk b2luZwo+IERQQ0QgcmVhZHMgb2YgZGlmZmVyZW50IG9mZnNldHMgYXMgcGVyIGVEUC9EUCBzcGVj cy4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBHYXVyYXYgSyBTaW5naCA8Z2F1cmF2Lmsuc2luZ2hAaW50 ZWwuY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jIHwgMTY3ICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiAgMSBmaWxlIGNoYW5nZWQs IDE2NyBpbnNlcnRpb25zKCspCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2RwLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gaW5kZXggMTg2 OGY3M2Y3MzBjLi5mNDk0YTg1MWZmODkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHAuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiBA QCAtNTg4Myw2ICs1ODgzLDE0OSBAQCB2b2lkIGludGVsX2VkcF9kcnJzX2ZsdXNoKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCXJldHVybiBkb3duY2xvY2tfbW9kZTsKPiAg fQo+ICAKPiArc3RhdGljIHZvaWQgaW50ZWxfZHBfc2lua19nZXRfZHNjX2NhcGFiaWxpdHkoc3Ry dWN0IGludGVsX2RwICppbnRlbF9kcCwKPiArCQkJCQlzdHJ1Y3QgZHBfc2lua19kc2NfY2FwcyAq ZHBfZHNjX2NhcHMpCj4gK3sKPiArCXU4IHJjYnVmZmVyX2Jsb2Nrc2l6ZTsKPiArCXU4IGZlY19k cGNkOwo+ICsJdW5zaWduZWQgbG9uZyBsaW5lX2J1ZmZlcl9iaXRfZGVwdGgsIHNpbmtfc3VwcG9y dF9tYXhfYnBwX21zYjsKPiArCgpDbGVhciB0aGUgcHJldmlvdXNseSBjYWNoZWQgZHNjX2RwY2Qg YmVmb3JlIGNhY2hpbmcgdGhlbSBhZ2FpbiBzaW5jZSBpdCBtaWdodCBzdGlsbApoYXZlIHRob3Nl IGZyb20gcHJldmlvdXMgZWRwID4gMS40IGJ1dCB3ZSBtaWdodCBub3QgbmVlZCB0aGVtIGlmIGN1 cnJlbnQgZWRwIDwgMS40Cgo+ICsJLyogVkRTQyBpcyBzdXBwb3J0ZWQgb25seSBmb3IgZURwIHYx LjQgb3IgaGlnaGVyLCBEUENEIDB4MDA3MDAgb2Zmc2V0ICovCj4gKwlpZiAoaW50ZWxfZHAtPmVk cF9kcGNkWzBdIDwgMHgwMykKClVzZSB0aGUgI2RlZmluZSBEUF9FRFBfMTQgZm9yIHRoZSBlRFAg dmVyc2lvbiBjaGVjayBvZiAxLjQKCj4gKwkJcmV0dXJuOwo+ICsKPiArCS8qIFJlYWQgRFBDRCAw eDA2MCB0byAweDA2YSAqLwo+ICsJaWYgKGRybV9kcF9kcGNkX3JlYWQoJmludGVsX2RwLT5hdXgs IERQX0RTQ19TVVBQT1JULCBpbnRlbF9kcC0+ZHNjX2RwY2QsCj4gKwkJCSAgICAgc2l6ZW9mKGlu dGVsX2RwLT5kc2NfZHBjZCkpIDwgMCkKPiArCQlyZXR1cm47Cj4gKwo+ICsJZHBfZHNjX2NhcHMt PmlzX2RzY19zdXBwb3J0ZWQgPSBpbnRlbF9kcC0+ZHNjX2RwY2RbMF0gJgo+ICsJCQkJCURQX0RT Q19ERUNPTVBSRVNTSU9OX0lTX1NVUFBPUlRFRDsKCkxpa2UgSSBtZW50aW9uZWQgb24gcGF0Y2gg MS8xMCBmcm9tIHRoZSByZXZpZXdzIEkgaGFkIGdvdCBvbiBteSBEU0MgcGF0Y2hlcywKbm8gbmVl ZCB0byBoYXZlIGlzX2RzY19zdXBwb3J0ZWQgZmllbGQgb3IgZHBfZHNjX2NhcHMgc2luY2UgdGhl IGVudGlyZSBzZXQgb2YKRFBDRCByZWdpc3RlcnMgaXMgY2FjaGVkLCB0aGlzIGNhbiBiZSBjb21w dXRlZCBvbiB0aGUgZmx5IHdoZW4gbmVlZGVkLgoKPiArCj4gKwlpZiAoIWRwX2RzY19jYXBzLT5p c19kc2Nfc3VwcG9ydGVkKQo+ICsJCXJldHVybjsKPiArCj4gKwlkcm1fZHBfZHBjZF9yZWFkYigm aW50ZWxfZHAtPmF1eCwgMHgwOTAsICZmZWNfZHBjZCk7Cj4gKwlpbnRlbF9kcC0+ZmVjX2RwY2Qg PSBmZWNfZHBjZDsKPiArCj4gKwkvKiBGb3IgRFAgRFNDLCBGRUMgc3VwcG9ydCBpcyBtdXN0ICov CgpGRUMgc3VwcG9ydCBpcyBvbmx5IG5lZWRlZCBmb3IgRFAgRFNDIG5vdCBlRFAsIGJ1dCBsb29r cyBsaWtlIGN1cnJlbnRseSB0aGlzCmZ1bmN0aW9uIGlzIG9ubHkgZ2V0dGluZyBjYWxsZWQgb24g ZURQIGluaXQgY29ubmVjdG9yIGFuZCBub3Qgb24gYWxsIERQCmhvdHBsdWcgcHJvY2Vzc2luZy4g SWYgaXRzIGZvciBEUCB0aGVuLCBldmVuIERQIDEuNCB2ZXJzaW9uIGNoZWNrIG5lZWRlZC4KU2lu Y2UgaGVyZSBpdHMgb25seSBlRFAsIEZFQyBpcyBub3QgbWFuZGF0b3J5IGluZmFjdCBubyBGRUMg c3VwcG9ydCBvbiBlRFAgMS40LgoKPiArCWlmICghKGludGVsX2RwLT5mZWNfZHBjZCAmIDB4MSkp Cj4gKwkJcmV0dXJuOwo+ICsKPiArCS8qIE5vIFZEU0Mgc3VwcG9ydCBmb3IgbGVzcyB0aGFuIDgg QlBDICovCj4gKwlpZiAoaW50ZWxfZHAtPmRzY19kcGNkWzB4YV0gPCBEUF9EU0NfOF9CUEMpCgpV c2Ugc29tZSAjZGVmaW5lIGluc3RlYWQgb2YgMHhhICggSSBoYWQgdXNlZCBpbnRlbF9kcC0+ZHNj X2RwY2RbRFBfRFNDX0JQQyAtIERQX0RTQ19TVVBQT1JUXSkKCj4gKwkJcmV0dXJuOwoKV2hhdCBo YXBwZW5zIHRvIHRoZSBjYWNoZWQgdmFsdWVzIHdoZW4geW91IHJldHVybiBmcm9tIHRoaXMgZnVu Y3Rpb24gaW4gY2FzZSBvZgpubyBWRFNDIHN1cHBvcnQuIFNob3VsZG50IHRoZXkgYmUgcmVzZXQg bm93IHRoYXQgaXQgY2Fubm90IGJlIGltcGxlbWVudGVkLgoKPiArCj4gKwlpZiAoaW50ZWxfZHAt PmRzY19kcGNkWzB4YV0gJiBEUF9EU0NfOF9CUEMpCj4gKwkJRFJNX0lORk8oIjggQml0cyBwZXIg Y29sb3Igc3VwcG9ydFxuIik7Cj4gKwlpZiAoaW50ZWxfZHAtPmRzY19kcGNkWzB4YV0gJiBEUF9E U0NfMTBfQlBDKQo+ICsJCURSTV9JTkZPKCIxMCBCaXRzIHBlciBjb2xvciBzdXBwb3J0XG4iKTsK PiArCWlmIChpbnRlbF9kcC0+ZHNjX2RwY2RbMHhhXSAmIERQX0RTQ18xMl9CUEMpCj4gKwkJRFJN X0lORk8oIjEyIEJpdHMgcGVyIGNvbG9yIHN1cHBvcnRcbiIpOwo+ICsKPiArCWRwX2RzY19jYXBz LT5kc2NfbWFqb3JfdmVyID0gaW50ZWxfZHAtPmRzY19kcGNkWzFdICYgRFBfRFNDX01BSk9SX01B U0s7Cj4gKwlkcF9kc2NfY2Fwcy0+ZHNjX21pbm9yX3ZlciA9IChpbnRlbF9kcC0+ZHNjX2RwY2Rb MV0gJgo+ICsJCQkJRFBfRFNDX01JTk9SX01BU0spID4+IERQX0RTQ19NSU5PUl9TSElGVDsKPiAr Cj4gKwlyY2J1ZmZlcl9ibG9ja3NpemUgPSBpbnRlbF9kcC0+ZHNjX2RwY2RbMl0gJiAweDM7Cj4g Kwo+ICsJc3dpdGNoIChyY2J1ZmZlcl9ibG9ja3NpemUpIHsKPiArCWNhc2UgMDoKPiArCQlkcF9k c2NfY2Fwcy0+cmNidWZmZXJfYmxvY2tzaXplID0gMTsKPiArCQlicmVhazsKPiArCWNhc2UgMToK PiArCQlkcF9kc2NfY2Fwcy0+cmNidWZmZXJfYmxvY2tzaXplID0gNDsKPiArCQlicmVhazsKPiAr CWNhc2UgMjoKPiArCQlkcF9kc2NfY2Fwcy0+cmNidWZmZXJfYmxvY2tzaXplID0gMTY7Cj4gKwkJ YnJlYWs7Cj4gKwljYXNlIDM6Cj4gKwkJZHBfZHNjX2NhcHMtPnJjYnVmZmVyX2Jsb2Nrc2l6ZSA9 IDY0Owo+ICsJCWJyZWFrOwo+ICsJZGVmYXVsdDoKPiArCQlicmVhazsKPiArCj4gKwl9Cj4gKwlk cF9kc2NfY2Fwcy0+cmNidWZmZXJfc2l6ZV9pbl9ibG9ja3MgPSBpbnRlbF9kcC0+ZHNjX2RwY2Rb M10gKyAxOwo+ICsKPiArCWRwX2RzY19jYXBzLT5yY2J1ZmZlcl9zaXplID0KPiArCQkJZHBfZHNj X2NhcHMtPnJjYnVmZmVyX3NpemVfaW5fYmxvY2tzICoKPiArCQkJZHBfZHNjX2NhcHMtPnJjYnVm ZmVyX2Jsb2Nrc2l6ZSAqIDEwMjQgKiA4Owo+ICsKCk1vdmUgdGhpcyByYyBidWZmZXIgY29tcHV0 YXRpb24gdG8gYSBoZWxwZXIuIChyZWZlciB0byBteSBwYXRjaCkKCj4gKwlkcF9kc2NfY2Fwcy0+ c2xpY2VfY2FwcyA9IGludGVsX2RwLT5kc2NfZHBjZFs0XTsKCmdldCB0aGlzIGFnYWluIGluIGEg IGhlbHBlci4gUmVmZXIgdG8gbXkgcGF0Y2guCgo+ICsJbGluZV9idWZmZXJfYml0X2RlcHRoID0g aW50ZWxfZHAtPmRzY19kcGNkWzVdOwo+ICsKPiArCWlmIChsaW5lX2J1ZmZlcl9iaXRfZGVwdGgg PT0gOCkKPiArCQlkcF9kc2NfY2Fwcy0+bGluZV9idWZmZXJfYml0X2RlcHRoID0gaW50ZWxfZHAt PmRzY19kcGNkWzVdOwo+ICsJZWxzZQo+ICsJCWRwX2RzY19jYXBzLT5saW5lX2J1ZmZlcl9iaXRf ZGVwdGggPSBpbnRlbF9kcC0+ZHNjX2RwY2RbNV0gKyA5OwoKTW92ZSB0aGVzZSBhYm92ZSB0byBo ZWxwZXJzIGFuZCB1c2UgI2RlZmluZXMgZm9yIHRoZXNlIG51bWVyaWNhbCB2YWx1ZXMgbWFraW5n IGl0Cm1vcmUgcmVhZGFibGUuCgo+ICsKPiArCWRwX2RzY19jYXBzLT5pc19ibG9ja19wcmVkX3N1 cHBvcnRlZCA9IGludGVsX2RwLT5kc2NfZHBjZFs2XSAmCj4gKwkJCQkJRFBfRFNDX0JMS19QUkVE SUNUSU9OX0lTX1NVUFBPUlRFRDsKPiArCj4gKwlkcF9kc2NfY2Fwcy0+c2lua19zdXBwb3J0X21h eF9icHAgPSBpbnRlbF9kcC0+ZHNjX2RwY2RbN107Cj4gKwlzaW5rX3N1cHBvcnRfbWF4X2JwcF9t c2IgPSAoaW50ZWxfZHAtPmRzY19kcGNkWzhdICYgMHgzKSA8PCA4Owo+ICsJZHBfZHNjX2NhcHMt PnNpbmtfc3VwcG9ydF9tYXhfYnBwIHw9IHNpbmtfc3VwcG9ydF9tYXhfYnBwX21zYjsKPiArCj4g KwlkcF9kc2NfY2Fwcy0+Y29sb3JfZm9ybWF0X2NhcHMgPSBpbnRlbF9kcC0+ZHNjX2RwY2RbOV07 Cj4gKwlkcF9kc2NfY2Fwcy0+Y29sb3JfZGVwdGhfY2FwcyA9IGludGVsX2RwLT5kc2NfZHBjZFsw eGFdOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBpbnRlbF9kcF9nZXRfY29tcHJlc3Npb25fZGF0 YShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ICsJCQkJCXN0cnVjdCBkcF9zaW5rX2RzY19j YXBzIGRwX2RzY19jYXBzKQo+ICt7Cj4gKwlpZiAoIWRwX2RzY19jYXBzLmlzX2RzY19zdXBwb3J0 ZWQpCj4gKwkJcmV0dXJuOwoKRGlyZWN0bHkgY29tcHV0ZSBmcm9tIGRzY19kcGNkWzBdICYgY29t cHJlc3Npb25fc3VwcG9ydGVkCgo+ICsKPiArCWludGVsX2RwLT5jb21wcl9wYXJhbXMuY29tcHJl c3Npb25fc3VwcG9ydCA9Cj4gKwkJCQkJCWRwX2RzY19jYXBzLmlzX2RzY19zdXBwb3J0ZWQ7Cj4g KwlpbnRlbF9kcC0+Y29tcHJfcGFyYW1zLmRzY19jZmcuZHNjX3ZlcnNpb25fbWFqb3IgPQo+ICsJ CQkJCQlkcF9kc2NfY2Fwcy5kc2NfbWFqb3JfdmVyOwo+ICsJaW50ZWxfZHAtPmNvbXByX3BhcmFt cy5kc2NfY2ZnLmRzY192ZXJzaW9uX21pbm9yID0KPiArCQkJCQkJZHBfZHNjX2NhcHMuZHNjX21p bm9yX3ZlcjsKPiArCj4gKwkvKiBCeSBkZWZhdWx0IHNldCBicGMgdG8gOCAqLwo+ICsJaW50ZWxf ZHAtPmNvbXByX3BhcmFtcy5kc2NfY2ZnLmJpdHNfcGVyX2NvbXBvbmVudCA9IDg7Cj4gKwo+ICsJ LyogVGFrZSB0aGUgbWF4IGZvciBCaXRzIHBlciBjb21wb25lbnQgKi8KPiArCWlmIChpbnRlbF9k cC0+ZHNjX2RwY2RbMHhhXSAmIERQX0RTQ184X0JQQykKPiArCQlpbnRlbF9kcC0+Y29tcHJfcGFy YW1zLmRzY19jZmcuYml0c19wZXJfY29tcG9uZW50ID0gODsKPiArCWlmIChpbnRlbF9kcC0+ZHNj X2RwY2RbMHhhXSAmIERQX0RTQ18xMF9CUEMpCj4gKwkJaW50ZWxfZHAtPmNvbXByX3BhcmFtcy5k c2NfY2ZnLmJpdHNfcGVyX2NvbXBvbmVudCA9IDEwOwo+ICsJaWYgKGludGVsX2RwLT5kc2NfZHBj ZFsweGFdICYgRFBfRFNDXzEyX0JQQykKPiArCQlpbnRlbF9kcC0+Y29tcHJfcGFyYW1zLmRzY19j ZmcuYml0c19wZXJfY29tcG9uZW50ID0gMTI7Cj4gKwoKTW92ZSB0aGlzIHRvIGEgc2VwYXJhdGUg aGVscGVyIGNvbXB1dGluZyBtYXggYnBjIGZyb20gZHNjX2RwY2QKCj4gKwlpbnRlbF9kcC0+Y29t cHJfcGFyYW1zLmNvbXByZXNzaW9uX2JwcCA9Cj4gKwkJCQkJZHBfZHNjX2NhcHMuc2lua19zdXBw b3J0X21heF9icHAgPj4gNDsKCkNvbXB1dGUgaW4gYSBoZWxwZXIgKHJlZmVyIHRvIG15IHBhdGNo KQoKPiArCWludGVsX2RwLT5jb21wcl9wYXJhbXMuZHNjX2NmZy5iaXRzX3Blcl9waXhlbCA9Cj4g KwkJCQkJZHBfZHNjX2NhcHMuc2lua19zdXBwb3J0X21heF9icHA7Cj4gKwlpbnRlbF9kcC0+Y29t cHJfcGFyYW1zLmRzY19jZmcuY29udmVydF9yZ2IgPSBkcF9kc2NfY2Fwcy5SR0Jfc3VwcG9ydDsK PiArCWludGVsX2RwLT5jb21wcl9wYXJhbXMuZHNjX2NmZy5lbmFibGU0MjIgPSBkcF9kc2NfY2Fw cy5ZQ2JDcjQyMl9zdXBwb3J0Owo+ICsJaW50ZWxfZHAtPmNvbXByX3BhcmFtcy5kc2NfY2ZnLmJs b2NrX3ByZWRfZW5hYmxlID0KPiArCQkJCQlkcF9kc2NfY2Fwcy5pc19ibG9ja19wcmVkX3N1cHBv cnRlZDsKPiArCj4gKwkvKiBBbHdheXMgdHJ5IHRvIGVuYWJsZSAyIERTQyBpbnN0YW5jZXMsIGJ5 IGRlZmF1bHQgKi8KPiArCWludGVsX2RwLT5jb21wcl9wYXJhbXMuZHNjX2NmZy5udW1fdmRzY19p bnN0YW5jZXMgPSAyOwo+ICsKPiArCWlmIChkcF9kc2NfY2Fwcy5mb3VyX3NsaWNlX3Blcl9saW5l X3N1cHBvcnQpCj4gKwkJaW50ZWxfZHAtPmNvbXByX3BhcmFtcy5kc2NfY2ZnLnNsaWNlX2NvdW50 ID0gNDsKPiArCWVsc2UgaWYgKGRwX2RzY19jYXBzLnR3b19zbGljZV9wZXJfbGluZV9zdXBwb3J0 KQo+ICsJCWludGVsX2RwLT5jb21wcl9wYXJhbXMuZHNjX2NmZy5zbGljZV9jb3VudCA9IDI7Cj4g KwllbHNlIGlmIChkcF9kc2NfY2Fwcy5vbmVfc2xpY2VfcGVyX2xpbmVfc3VwcG9ydCkgewo+ICsJ CS8qCj4gKwkJICogQ2Fubm90IHVzZSAyIERTQyBlbmdpbmVzIHNpbXVsdGFuZW91c2x5IHdoZW4K PiArCQkgKiBzbGljZSBwZXIgbGluZSBzdXBwb3J0IGlzIG9ubHkgMQo+ICsJCSAqLwo+ICsJCWlu dGVsX2RwLT5jb21wcl9wYXJhbXMuZHNjX2NmZy5zbGljZV9jb3VudCA9IDE7Cj4gKwkJaW50ZWxf ZHAtPmNvbXByX3BhcmFtcy5kc2NfY2ZnLm51bV92ZHNjX2luc3RhbmNlcyA9IDE7Cj4gKwl9IGVs c2UKPiArCQlEUk1fSU5GTygiU2xpY2UgY291bnQgbm90IHN1cHBvcnRlZDolZFxuIiwKPiArCQkJ CQkJCWRwX2RzY19jYXBzLnNsaWNlX2NhcHMpOwoKTW92ZSB0aGUgc2xpY2UgY291bnQgY29tcHV0 YXRpb24gdG8gYSBoZWxwZXIgKHJlZmVyIHRvIG15IHBhdGNoKQoKPiArCj4gKwlpbnRlbF9kcC0+ Y29tcHJfcGFyYW1zLmRzY19jZmcubGluZV9idWZfZGVwdGggPQo+ICsJCQkJCWRwX2RzY19jYXBz LmxpbmVfYnVmZmVyX2JpdF9kZXB0aDsKPiArfQo+ICsKPiAgc3RhdGljIGJvb2wgaW50ZWxfZWRw X2luaXRfY29ubmVjdG9yKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gIAkJCQkgICAgIHN0 cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVsX2Nvbm5lY3RvcikKPiAgewo+IEBAIC01ODkyLDYg KzYwMzUsNyBAQCBzdGF0aWMgYm9vbCBpbnRlbF9lZHBfaW5pdF9jb25uZWN0b3Ioc3RydWN0IGlu dGVsX2RwICppbnRlbF9kcCwKPiAgCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICpmaXhlZF9tb2Rl ID0gTlVMTDsKPiAgCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphbHRfZml4ZWRfbW9kZSA9IE5V TEw7Cj4gIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqZG93bmNsb2NrX21vZGUgPSBOVUxMOwo+ ICsJc3RydWN0IGRwX3NpbmtfZHNjX2NhcHMgc2lua19kcF9kc2NfY2FwcyA9IHswfTsKPiAgCWJv b2wgaGFzX2RwY2Q7Cj4gIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqc2NhbjsKPiAgCXN0cnVj dCBlZGlkICplZGlkOwo+IEBAIC01OTMwLDYgKzYwNzQsMTIgQEAgc3RhdGljIGJvb2wgaW50ZWxf ZWRwX2luaXRfY29ubmVjdG9yKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gIAkJZ290byBv dXRfdmRkX29mZjsKPiAgCX0KPiAgCj4gKwkvKiBHZXQgRFNDIGNhcGFiaWxpdHkgb2YgRFAgc2lu ayAqLwo+ICsJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOSkgewo+ICsJCWludGVsX2RwX3Np bmtfZ2V0X2RzY19jYXBhYmlsaXR5KGludGVsX2RwLCAmc2lua19kcF9kc2NfY2Fwcyk7Cj4gKwkJ aW50ZWxfZHBfZ2V0X2NvbXByZXNzaW9uX2RhdGEoaW50ZWxfZHAsIHNpbmtfZHBfZHNjX2NhcHMp Owo+ICsJfQo+ICsKClRoaXMgY2FuIGJlIG1vdmVkIHRvIGludGVsX2VkcF9pbml0X2RwY2QKCj4g IAltdXRleF9sb2NrKCZkZXYtPm1vZGVfY29uZmlnLm11dGV4KTsKPiAgCWVkaWQgPSBkcm1fZ2V0 X2VkaWQoY29ubmVjdG9yLCAmaW50ZWxfZHAtPmF1eC5kZGMpOwo+ICAJaWYgKGVkaWQpIHsKPiBA QCAtNTk2OCw2ICs2MTE4LDIzIEBAIHN0YXRpYyBib29sIGludGVsX2VkcF9pbml0X2Nvbm5lY3Rv cihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ICAJfQo+ICAJbXV0ZXhfdW5sb2NrKCZkZXYt Pm1vZGVfY29uZmlnLm11dGV4KTsKPiAgCj4gKwlpZiAoaW50ZWxfZHAtPmNvbXByX3BhcmFtcy5j b21wcmVzc2lvbl9zdXBwb3J0KSB7Cj4gKwkJaW50ZWxfZHAtPmNvbXByX3BhcmFtcy5kc2NfY2Zn LnBpY193aWR0aCA9IGZpeGVkX21vZGUtPmhkaXNwbGF5Owo+ICsJCWludGVsX2RwLT5jb21wcl9w YXJhbXMuZHNjX2NmZy5waWNfaGVpZ2h0ID0KPiArCQkJCQkJCWZpeGVkX21vZGUtPnZkaXNwbGF5 Owo+ICsJCWludGVsX2RwLT5jb21wcl9wYXJhbXMuZHNjX2NmZy5zbGljZV93aWR0aCA9IERJVl9S T1VORF9VUCgKPiArCQkJCWludGVsX2RwLT5jb21wcl9wYXJhbXMuZHNjX2NmZy5waWNfd2lkdGgs Cj4gKwkJCQlpbnRlbF9kcC0+Y29tcHJfcGFyYW1zLmRzY19jZmcuc2xpY2VfY291bnQpOwo+ICsK PiArCQkvKiBzbGljZSBoZWlnaHQgZGF0YSBpcyBub3QgYXZhaWxhYmxlIGZyb20gZHBjZCAqLwo+ ICsJCWlmIChpbnRlbF9kcC0+Y29tcHJfcGFyYW1zLmRzY19jZmcucGljX2hlaWdodCAlIDggPT0g MCkKPiArCQkJaW50ZWxfZHAtPmNvbXByX3BhcmFtcy5kc2NfY2ZnLnNsaWNlX2hlaWdodCA9IDg7 Cj4gKwkJaWYgKGludGVsX2RwLT5jb21wcl9wYXJhbXMuZHNjX2NmZy5waWNfaGVpZ2h0ICUgNCA9 PSAwKQo+ICsJCQlpbnRlbF9kcC0+Y29tcHJfcGFyYW1zLmRzY19jZmcuc2xpY2VfaGVpZ2h0ID0g NDsKPiArCQlpZiAoaW50ZWxfZHAtPmNvbXByX3BhcmFtcy5kc2NfY2ZnLnBpY19oZWlnaHQgJSAy ID09IDApCj4gKwkJCWludGVsX2RwLT5jb21wcl9wYXJhbXMuZHNjX2NmZy5zbGljZV9oZWlnaHQg PSAyOwoKVGhpcyBjb25maWd1cmF0aW9uIHNob3VsZCBoYXBwZW4gYXQgY29tcHV0ZV9jb25maWcg dGltZSB3aGVyZSB3ZSBjb25maWd1cmUgdGhlIHBpcGUgZm9yCmEgc3BlY2lmaWMgbW9kZSwgYWxz byBjb25maWd1cmUgZHNjX2NvbmZpZy4KVGhpcyBkc2NfY29uZmlnIHNob3VsZCBiZSBhIGludGVs X2NydGNfc3RhdGUgZmllbGQuIFBsZWFzZSByZWZlciB0byBteSBwYXRjaCBmb2xsb3dpbmcgb24g TS1MIHNvb24uCgpNYW5hc2kKCj4gKwl9Cj4gKwo+ICAJaWYgKElTX1ZBTExFWVZJRVcoZGV2X3By aXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKSB7Cj4gIAkJaW50ZWxfZHAtPmVkcF9ub3Rp Zmllci5ub3RpZmllcl9jYWxsID0gZWRwX25vdGlmeV9oYW5kbGVyOwo+ICAJCXJlZ2lzdGVyX3Jl Ym9vdF9ub3RpZmllcigmaW50ZWxfZHAtPmVkcF9ub3RpZmllcik7Cj4gLS0gCj4gMS45LjEKPiAK PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IEludGVs LWdmeCBtYWlsaW5nIGxpc3QKPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1h aWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==