From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 3/5] drm/i915: Remove the 8bpc shackles from DP MST Date: Tue, 26 Mar 2019 15:16:52 +0200 Message-ID: <20190326131652.GV3888@intel.com> References: <20190308192409.5804-1-ville.syrjala@linux.intel.com> <20190308192409.5804-3-ville.syrjala@linux.intel.com> <87k1gl531w.fsf@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id E9DBF6E044 for ; Tue, 26 Mar 2019 13:16:55 +0000 (UTC) Content-Disposition: inline In-Reply-To: <87k1gl531w.fsf@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Jani Nikula Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBNYXIgMjYsIDIwMTkgYXQgMTI6NDM6MjNQTSArMDIwMCwgSmFuaSBOaWt1bGEgd3Jv dGU6Cj4gT24gRnJpLCAwOCBNYXIgMjAxOSwgVmlsbGUgU3lyamFsYSA8dmlsbGUuc3lyamFsYUBs aW51eC5pbnRlbC5jb20+IHdyb3RlOgo+ID4gRnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5z eXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiA+Cj4gPiBBbGxvdyBEUCBNU1QgdG8gb3V0cHV0IGFu eSBjb2xvciBkZXB0aC4gVGhpcyBtZWFucyBkZWVwIGNvbG9yIGFzCj4gPiB3ZWxsIGFzIGZhbGxp bmcgYmFjayB0byA2YnBjIGlmIHdlIHdvdWxkIG90aGVyd2lzZSByZXF1aXJlIHRvbwo+ID4gbXVj aCBiYW5kd2lkdGguCj4gPgo+ID4gVE9ETzogV2Ugc2hvdWxkIHByb2JhYmx5IGV4dGVuZCBid19j b250c3RyYWluZWQgc2NoZW1lIHRvIGZvcmNlCj4gPiBhbGwgc3RyZWFtcyBvbiB0aGUgbGluayB0 byA2YnBjIGlmIHdlIGNhbid0IGZpdCB0aGUgbmV3IHN0cmVhbShzKQo+ID4gb3RoZXJ3aXNlLgo+ ID4KPiA+IFNpZ25lZC1vZmYtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51 eC5pbnRlbC5jb20+Cj4gPiAtLS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5j ICAgICB8ICAgOCArLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX21zdC5jIHwg MTIwICsrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcnYuaCAgICB8ICAgOCArKwo+ID4gIDMgZmlsZXMgY2hhbmdlZCwgODMgaW5zZXJ0 aW9ucygrKSwgNTMgZGVsZXRpb25zKC0pCj4gPgo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RwLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4g PiBpbmRleCBmNDBiMzM0MmQ4MmEuLmUxYWI1MDk4MGI4MyAxMDA2NDQKPiA+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2RwLmMKPiA+IEBAIC0xNzI0LDEyICsxNzI0LDYgQEAgdm9pZCBpbnRlbF9kcF9jb21w dXRlX3JhdGUoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgaW50IHBvcnRfY2xvY2ssCj4gPiAg CX0KPiA+ICB9Cj4gPiAgCj4gPiAtc3RydWN0IGxpbmtfY29uZmlnX2xpbWl0cyB7Cj4gPiAtCWlu dCBtaW5fY2xvY2ssIG1heF9jbG9jazsKPiA+IC0JaW50IG1pbl9sYW5lX2NvdW50LCBtYXhfbGFu ZV9jb3VudDsKPiA+IC0JaW50IG1pbl9icHAsIG1heF9icHA7Cj4gPiAtfTsKPiA+IC0KPiA+ICBz dGF0aWMgYm9vbCBpbnRlbF9kcF9zb3VyY2Vfc3VwcG9ydHNfZmVjKHN0cnVjdCBpbnRlbF9kcCAq aW50ZWxfZHAsCj4gPiAgCQkJCQkgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVf Y29uZmlnKQo+ID4gIHsKPiA+IEBAIC0xNzkyLDcgKzE3ODYsNyBAQCBzdGF0aWMgaW50IGludGVs X2RwX2NvbXB1dGVfYnBwKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gPiAgfQo+ID4gIAo+ ID4gIC8qIEFkanVzdCBsaW5rIGNvbmZpZyBsaW1pdHMgYmFzZWQgb24gY29tcGxpYW5jZSB0ZXN0 IHJlcXVlc3RzLiAqLwo+ID4gLXN0YXRpYyB2b2lkCj4gPiArdm9pZAo+ID4gIGludGVsX2RwX2Fk anVzdF9jb21wbGlhbmNlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ID4gIAkJ CQkgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKPiA+ICAJCQkJICBzdHJ1 Y3QgbGlua19jb25maWdfbGltaXRzICpsaW1pdHMpCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHBfbXN0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cF9tc3QuYwo+ID4gaW5kZXggZjljZTllODdkMzViLi5kZjhiMzk2Y2JjZGMgMTAwNjQ0Cj4gPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9tc3QuYwo+ID4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbXN0LmMKPiA+IEBAIC0yOSw0MSArMjksODEgQEAKPiA+ ICAjaW5jbHVkZSA8ZHJtL2RybV9lZGlkLmg+Cj4gPiAgI2luY2x1ZGUgPGRybS9kcm1fcHJvYmVf aGVscGVyLmg+Cj4gPiAgCj4gPiArc3RhdGljIGludCBpbnRlbF9kcF9tc3RfY29tcHV0ZV9saW5r X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+ICsJCQkJCSAgICBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiA+ICsJCQkJCSAgICBzdHJ1Y3QgZHJt X2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSwKPiA+ICsJCQkJCSAgICBzdHJ1Y3QgbGlua19j b25maWdfbGltaXRzICpsaW1pdHMpCj4gPiArewo+ID4gKwlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0 ZSAqc3RhdGUgPSBjcnRjX3N0YXRlLT5iYXNlLnN0YXRlOwo+ID4gKwlzdHJ1Y3QgaW50ZWxfZHBf bXN0X2VuY29kZXIgKmludGVsX21zdCA9IGVuY190b19tc3QoJmVuY29kZXItPmJhc2UpOwo+ID4g KwlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gJmludGVsX21zdC0+cHJpbWFyeS0+ZHA7Cj4g PiArCXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciA9Cj4gPiArCQl0b19pbnRlbF9j b25uZWN0b3IoY29ubl9zdGF0ZS0+Y29ubmVjdG9yKTsKPiA+ICsJY29uc3Qgc3RydWN0IGRybV9k aXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQo+ID4gKwkJJmNydGNfc3RhdGUtPmJhc2UuYWRq dXN0ZWRfbW9kZTsKPiA+ICsJdm9pZCAqcG9ydCA9IGNvbm5lY3Rvci0+cG9ydDsKPiA+ICsJYm9v bCBjb25zdGFudF9uID0gZHJtX2RwX2hhc19xdWlyaygmaW50ZWxfZHAtPmRlc2MsCj4gPiArCQkJ CQkgICBEUF9EUENEX1FVSVJLX0NPTlNUQU5UX04pOwo+ID4gKwlpbnQgc2xvdHM7Cj4gPiArCj4g PiArCWZvciAoOzspIHsKPiAKPiBJJ20gbm90IHBhcnRpY3VsYXJseSBmb25kIG9mIGhhdmluZyB0 aGUgbG9vcCBjb25kaXRpb25zIHNwcmlua2xlZCBpbiB0aGUKPiBibG9jay4gQnV0IGxvb2tzIGNv cnJlY3QuCgpBaCB5ZXMsIHdlIGNhbiBtYWtlIHRoaXMgYSByZWd1bGFyIGZvciBsb29wLiBJIHdh cyBqdXN0IGdvaW5nIGZvcgphbiBpbmZpbml0ZSBsb29wIG9yaWdpbmFsbHkgYW5kIGRpZG4ndCB0 aGluayBmdXJ0aGVyLgoKPiAKPiBSZXZpZXdlZC1ieTogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxh QGludGVsLmNvbT4KPiAKPiAKPiAKPiA+ICsJCWNydGNfc3RhdGUtPmxhbmVfY291bnQgPSBsaW1p dHMtPm1heF9sYW5lX2NvdW50Owo+ID4gKwkJY3J0Y19zdGF0ZS0+cG9ydF9jbG9jayA9IGxpbWl0 cy0+bWF4X2Nsb2NrOwo+ID4gKwkJY3J0Y19zdGF0ZS0+cGlwZV9icHAgPSBsaW1pdHMtPm1heF9i cHA7Cj4gPiArCj4gPiArCQljcnRjX3N0YXRlLT5wYm4gPSBkcm1fZHBfY2FsY19wYm5fbW9kZShh ZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrLAo+ID4gKwkJCQkJCSAgICAgICBjcnRjX3N0YXRlLT5w aXBlX2JwcCk7Cj4gPiArCj4gPiArCQlzbG90cyA9IGRybV9kcF9hdG9taWNfZmluZF92Y3BpX3Ns b3RzKHN0YXRlLCAmaW50ZWxfZHAtPm1zdF9tZ3IsCj4gPiArCQkJCQkJICAgICAgcG9ydCwgY3J0 Y19zdGF0ZS0+cGJuKTsKPiA+ICsJCWlmIChzbG90cyA9PSAtRURFQURMSykKPiA+ICsJCQlyZXR1 cm4gc2xvdHM7Cj4gPiArCQlpZiAoc2xvdHMgPj0gMCkKPiA+ICsJCQlicmVhazsKPiA+ICsKPiA+ ICsJCWlmIChsaW1pdHMtPm1heF9icHAgPiBsaW1pdHMtPm1pbl9icHApIHsKPiA+ICsJCQlsaW1p dHMtPm1heF9icHAgLT0gMiAqIDM7Cj4gPiArCQkJY29udGludWU7Cj4gPiArCQl9Cj4gPiArCj4g PiArCQlEUk1fREVCVUdfS01TKCJmYWlsZWQgZmluZGluZyB2Y3BpIHNsb3RzOiVkXG4iLCBzbG90 cyk7Cj4gPiArCj4gPiArCQlyZXR1cm4gc2xvdHM7Cj4gPiArCX0KPiA+ICsKPiA+ICsJaW50ZWxf bGlua19jb21wdXRlX21fbihjcnRjX3N0YXRlLT5waXBlX2JwcCwKPiA+ICsJCQkgICAgICAgY3J0 Y19zdGF0ZS0+bGFuZV9jb3VudCwKPiA+ICsJCQkgICAgICAgYWRqdXN0ZWRfbW9kZS0+Y3J0Y19j bG9jaywKPiA+ICsJCQkgICAgICAgY3J0Y19zdGF0ZS0+cG9ydF9jbG9jaywKPiA+ICsJCQkgICAg ICAgJmNydGNfc3RhdGUtPmRwX21fbiwKPiA+ICsJCQkgICAgICAgY29uc3RhbnRfbik7Cj4gPiAr CWNydGNfc3RhdGUtPmRwX21fbi50dSA9IHNsb3RzOwo+ID4gKwo+ID4gKwlyZXR1cm4gMDsKPiA+ ICt9Cj4gPiArCj4gPiAgc3RhdGljIGludCBpbnRlbF9kcF9tc3RfY29tcHV0ZV9jb25maWcoc3Ry dWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gPiAgCQkJCSAgICAgICBzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCj4gPiAgCQkJCSAgICAgICBzdHJ1Y3QgZHJtX2Nvbm5l Y3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKPiA+ICB7Cj4gPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+ID4gIAlzdHJ1Y3Qg aW50ZWxfZHBfbXN0X2VuY29kZXIgKmludGVsX21zdCA9IGVuY190b19tc3QoJmVuY29kZXItPmJh c2UpOwo+ID4gLQlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9IGlu dGVsX21zdC0+cHJpbWFyeTsKPiA+IC0Jc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9ICZpbnRl bF9kaWdfcG9ydC0+ZHA7Cj4gPiAtCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IgPSBj b25uX3N0YXRlLT5jb25uZWN0b3I7Cj4gPiArCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSAm aW50ZWxfbXN0LT5wcmltYXJ5LT5kcDsKPiA+ICsJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29u bmVjdG9yID0KPiA+ICsJCXRvX2ludGVsX2Nvbm5lY3Rvcihjb25uX3N0YXRlLT5jb25uZWN0b3Ip Owo+ID4gIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9jb25uZWN0b3Jfc3RhdGUgKmludGVsX2Nvbm5f c3RhdGUgPQo+ID4gIAkJdG9faW50ZWxfZGlnaXRhbF9jb25uZWN0b3Jfc3RhdGUoY29ubl9zdGF0 ZSk7Cj4gPiAtCXZvaWQgKnBvcnQgPSB0b19pbnRlbF9jb25uZWN0b3IoY29ubmVjdG9yKS0+cG9y dDsKPiA+IC0Jc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlID0gcGlwZV9jb25maWctPmJh c2Uuc3RhdGU7Cj4gPiAtCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IHBpcGVfY29uZmlnLT5iYXNl LmNydGM7Cj4gPiAtCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUgPQo+ID4g LQkJZHJtX2F0b21pY19nZXRfb2xkX2NydGNfc3RhdGUoc3RhdGUsIGNydGMpOwo+ID4gLQlpbnQg YnBwOwo+ID4gLQlpbnQgbGFuZV9jb3VudCwgc2xvdHMgPQo+ID4gLQkJdG9faW50ZWxfY3J0Y19z dGF0ZShvbGRfY3J0Y19zdGF0ZSktPmRwX21fbi50dTsKPiA+IC0JY29uc3Qgc3RydWN0IGRybV9k aXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRf bW9kZTsKPiA+IC0JaW50IG1zdF9wYm47Cj4gPiAtCWJvb2wgY29uc3RhbnRfbiA9IGRybV9kcF9o YXNfcXVpcmsoJmludGVsX2RwLT5kZXNjLAo+ID4gLQkJCQkJICAgRFBfRFBDRF9RVUlSS19DT05T VEFOVF9OKTsKPiA+ICsJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21v ZGUgPQo+ID4gKwkJJnBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7Cj4gPiArCXZvaWQg KnBvcnQgPSBjb25uZWN0b3ItPnBvcnQ7Cj4gPiArCXN0cnVjdCBsaW5rX2NvbmZpZ19saW1pdHMg bGltaXRzOwo+ID4gKwlpbnQgcmV0Owo+ID4gIAo+ID4gIAlpZiAoYWRqdXN0ZWRfbW9kZS0+Zmxh Z3MgJiBEUk1fTU9ERV9GTEFHX0RCTFNDQU4pCj4gPiAgCQlyZXR1cm4gLUVJTlZBTDsKPiA+ICAK PiA+ICAJcGlwZV9jb25maWctPm91dHB1dF9mb3JtYXQgPSBJTlRFTF9PVVRQVVRfRk9STUFUX1JH QjsKPiA+ICAJcGlwZV9jb25maWctPmhhc19wY2hfZW5jb2RlciA9IGZhbHNlOwo+ID4gLQlicHAg PSAyNDsKPiA+IC0JaWYgKGludGVsX2RwLT5jb21wbGlhbmNlLnRlc3RfZGF0YS5icGMpIHsKPiA+ IC0JCWJwcCA9IGludGVsX2RwLT5jb21wbGlhbmNlLnRlc3RfZGF0YS5icGMgKiAzOwo+ID4gLQkJ RFJNX0RFQlVHX0tNUygiU2V0dGluZyBwaXBlIGJwcCB0byAlZFxuIiwKPiA+IC0JCQkgICAgICBi cHApOwo+ID4gLQl9Cj4gPiAgCj4gPiAgCWlmIChpbnRlbF9jb25uX3N0YXRlLT5mb3JjZV9hdWRp byA9PSBIRE1JX0FVRElPX0FVVE8pCj4gPiAgCQlwaXBlX2NvbmZpZy0+aGFzX2F1ZGlvID0KPiA+ IEBAIC03NiwxMyArMTE2LDIxIEBAIHN0YXRpYyBpbnQgaW50ZWxfZHBfbXN0X2NvbXB1dGVfY29u ZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4gIAkgKiBmb3IgTVNUIHdlIGFs d2F5cyBjb25maWd1cmUgbWF4IGxpbmsgYncgLSB0aGUgc3BlYyBkb2Vzbid0Cj4gPiAgCSAqIHNl ZW0gdG8gc3VnZ2VzdCB3ZSBzaG91bGQgZG8gb3RoZXJ3aXNlLgo+ID4gIAkgKi8KPiA+IC0JbGFu ZV9jb3VudCA9IGludGVsX2RwX21heF9sYW5lX2NvdW50KGludGVsX2RwKTsKPiA+ICsJbGltaXRz Lm1pbl9jbG9jayA9Cj4gPiArCWxpbWl0cy5tYXhfY2xvY2sgPSBpbnRlbF9kcF9tYXhfbGlua19y YXRlKGludGVsX2RwKTsKPiA+ICsKPiA+ICsJbGltaXRzLm1pbl9sYW5lX2NvdW50ID0KPiA+ICsJ bGltaXRzLm1heF9sYW5lX2NvdW50ID0gaW50ZWxfZHBfbWF4X2xhbmVfY291bnQoaW50ZWxfZHAp Owo+ID4gIAo+ID4gLQlwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCA9IGxhbmVfY291bnQ7Cj4gPiAr CWxpbWl0cy5taW5fYnBwID0gNiAqIDM7Cj4gPiArCWxpbWl0cy5tYXhfYnBwID0gcGlwZV9jb25m aWctPnBpcGVfYnBwOwo+ID4gIAo+ID4gLQlwaXBlX2NvbmZpZy0+cGlwZV9icHAgPSBicHA7Cj4g PiArCWludGVsX2RwX2FkanVzdF9jb21wbGlhbmNlX2NvbmZpZyhpbnRlbF9kcCwgcGlwZV9jb25m aWcsICZsaW1pdHMpOwo+ID4gIAo+ID4gLQlwaXBlX2NvbmZpZy0+cG9ydF9jbG9jayA9IGludGVs X2RwX21heF9saW5rX3JhdGUoaW50ZWxfZHApOwo+ID4gKwlyZXQgPSBpbnRlbF9kcF9tc3RfY29t cHV0ZV9saW5rX2NvbmZpZyhlbmNvZGVyLCBwaXBlX2NvbmZpZywKPiA+ICsJCQkJCSAgICAgICBj b25uX3N0YXRlLCAmbGltaXRzKTsKPiA+ICsJaWYgKHJldCkKPiA+ICsJCXJldHVybiByZXQ7Cj4g PiAgCj4gPiAgCWlmIChpbnRlbF9jb25uX3N0YXRlLT5icm9hZGNhc3RfcmdiID09IElOVEVMX0JS T0FEQ0FTVF9SR0JfQVVUTykgewo+ID4gIAkJLyoKPiA+IEBAIC05OSwyNSArMTQ3LDYgQEAgc3Rh dGljIGludCBpbnRlbF9kcF9tc3RfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIg KmVuY29kZXIsCj4gPiAgCQkJaW50ZWxfY29ubl9zdGF0ZS0+YnJvYWRjYXN0X3JnYiA9PSBJTlRF TF9CUk9BRENBU1RfUkdCX0xJTUlURUQ7Cj4gPiAgCX0KPiA+ICAKPiA+IC0JbXN0X3BibiA9IGRy bV9kcF9jYWxjX3Bibl9tb2RlKGFkanVzdGVkX21vZGUtPmNydGNfY2xvY2ssIGJwcCk7Cj4gPiAt CXBpcGVfY29uZmlnLT5wYm4gPSBtc3RfcGJuOwo+ID4gLQo+ID4gLQlzbG90cyA9IGRybV9kcF9h dG9taWNfZmluZF92Y3BpX3Nsb3RzKHN0YXRlLCAmaW50ZWxfZHAtPm1zdF9tZ3IsIHBvcnQsCj4g PiAtCQkJCQkgICAgICBtc3RfcGJuKTsKPiA+IC0JaWYgKHNsb3RzIDwgMCkgewo+ID4gLQkJRFJN X0RFQlVHX0tNUygiZmFpbGVkIGZpbmRpbmcgdmNwaSBzbG90czolZFxuIiwKPiA+IC0JCQkgICAg ICBzbG90cyk7Cj4gPiAtCQlyZXR1cm4gc2xvdHM7Cj4gPiAtCX0KPiA+IC0KPiA+IC0JaW50ZWxf bGlua19jb21wdXRlX21fbihicHAsIGxhbmVfY291bnQsCj4gPiAtCQkJICAgICAgIGFkanVzdGVk X21vZGUtPmNydGNfY2xvY2ssCj4gPiAtCQkJICAgICAgIHBpcGVfY29uZmlnLT5wb3J0X2Nsb2Nr LAo+ID4gLQkJCSAgICAgICAmcGlwZV9jb25maWctPmRwX21fbiwKPiA+IC0JCQkgICAgICAgY29u c3RhbnRfbik7Cj4gPiAtCj4gPiAtCXBpcGVfY29uZmlnLT5kcF9tX24udHUgPSBzbG90czsKPiA+ IC0KPiA+ICAJaWYgKElTX0dFTjlfTFAoZGV2X3ByaXYpKQo+ID4gIAkJcGlwZV9jb25maWctPmxh bmVfbGF0X29wdGltX21hc2sgPQo+ID4gIAkJCWJ4dF9kZGlfcGh5X2NhbGNfbGFuZV9sYXRfb3B0 aW1fbWFzayhwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCk7Cj4gPiBAQCAtNDAxLDcgKzQzMCw2IEBA IGludGVsX2RwX21zdF9tb2RlX3ZhbGlkKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3Is Cj4gPiAgCXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVsX2Nvbm5lY3RvciA9IHRvX2ludGVs X2Nvbm5lY3Rvcihjb25uZWN0b3IpOwo+ID4gIAlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0g aW50ZWxfY29ubmVjdG9yLT5tc3RfcG9ydDsKPiA+ICAJaW50IG1heF9kb3RjbGsgPSB0b19pOTE1 KGNvbm5lY3Rvci0+ZGV2KS0+bWF4X2RvdGNsa19mcmVxOwo+ID4gLQlpbnQgYnBwID0gMjQ7IC8q IE1TVCB1c2VzIGZpeGVkIGJwcCAqLwo+ID4gIAlpbnQgbWF4X3JhdGUsIG1vZGVfcmF0ZSwgbWF4 X2xhbmVzLCBtYXhfbGlua19jbG9jazsKPiA+ICAKPiA+ICAJaWYgKGRybV9jb25uZWN0b3JfaXNf dW5yZWdpc3RlcmVkKGNvbm5lY3RvcikpCj4gPiBAQCAtNDE0LDcgKzQ0Miw3IEBAIGludGVsX2Rw X21zdF9tb2RlX3ZhbGlkKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gPiAgCW1h eF9sYW5lcyA9IGludGVsX2RwX21heF9sYW5lX2NvdW50KGludGVsX2RwKTsKPiA+ICAKPiA+ICAJ bWF4X3JhdGUgPSBpbnRlbF9kcF9tYXhfZGF0YV9yYXRlKG1heF9saW5rX2Nsb2NrLCBtYXhfbGFu ZXMpOwo+ID4gLQltb2RlX3JhdGUgPSBpbnRlbF9kcF9saW5rX3JlcXVpcmVkKG1vZGUtPmNsb2Nr LCBicHApOwo+ID4gKwltb2RlX3JhdGUgPSBpbnRlbF9kcF9saW5rX3JlcXVpcmVkKG1vZGUtPmNs b2NrLCAxOCk7Cj4gPiAgCj4gPiAgCS8qIFRPRE8gLSB2YWxpZGF0ZSBtb2RlIGFnYWluc3QgYXZh aWxhYmxlIFBCTiBmb3IgbGluayAqLwo+ID4gIAlpZiAobW9kZS0+Y2xvY2sgPCAxMDAwMCkKPiA+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiBpbmRleCA0MGViYzk0YjIxODcuLmZlMDVlZDdm Zjc0OSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4g PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gQEAgLTE5MDQsNiAr MTkwNCwxNCBAQCB2b2lkIGludGVsX2Nzcl91Y29kZV9zdXNwZW5kKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICopOwo+ID4gIHZvaWQgaW50ZWxfY3NyX3Vjb2RlX3Jlc3VtZShzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqKTsKPiA+ICAKPiA+ICAvKiBpbnRlbF9kcC5jICovCj4gPiArc3RydWN0IGxp bmtfY29uZmlnX2xpbWl0cyB7Cj4gPiArCWludCBtaW5fY2xvY2ssIG1heF9jbG9jazsKPiA+ICsJ aW50IG1pbl9sYW5lX2NvdW50LCBtYXhfbGFuZV9jb3VudDsKPiA+ICsJaW50IG1pbl9icHAsIG1h eF9icHA7Cj4gPiArfTsKPiA+ICt2b2lkIGludGVsX2RwX2FkanVzdF9jb21wbGlhbmNlX2NvbmZp ZyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ID4gKwkJCQkgICAgICAgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAo+ID4gKwkJCQkgICAgICAgc3RydWN0IGxpbmtfY29u ZmlnX2xpbWl0cyAqbGltaXRzKTsKPiA+ICBib29sIGludGVsX2RwX3BvcnRfZW5hYmxlZChzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiAgCQkJICAgaTkxNV9yZWdfdCBkcF9y ZWcsIGVudW0gcG9ydCBwb3J0LAo+ID4gIAkJCSAgIGVudW0gcGlwZSAqcGlwZSk7Cj4gCj4gLS0g Cj4gSmFuaSBOaWt1bGEsIEludGVsIE9wZW4gU291cmNlIEdyYXBoaWNzIENlbnRlcgoKLS0gClZp bGxlIFN5cmrDpGzDpApJbnRlbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9p bnRlbC1nZng=