From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manasi Navare Subject: Re: [PATCH v3 5/5] drm/i915/dp/mst: Add support for upfront link training for DP MST Date: Thu, 15 Sep 2016 12:25:51 -0700 Message-ID: <20160915192551.GB15527@intel.com> References: <1473815299-26961-1-git-send-email-manasi.d.navare@intel.com> <1473815299-26961-6-git-send-email-manasi.d.navare@intel.com> <1473962616.32398.5.camel@dk-H97M-D3H> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id 69C6F6E916 for ; Thu, 15 Sep 2016 19:25:36 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1473962616.32398.5.camel@dk-H97M-D3H> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Pandiyan, Dhinakaran" Cc: "intel-gfx@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBTZXAgMTUsIDIwMTYgYXQgMTA6NDg6MTdBTSAtMDcwMCwgUGFuZGl5YW4sIERoaW5h a2FyYW4gd3JvdGU6Cj4gT24gVHVlLCAyMDE2LTA5LTEzIGF0IDE4OjA4IC0wNzAwLCBNYW5hc2kg TmF2YXJlIHdyb3RlOgo+ID4gRnJvbTogSmltIEJyaWRlIDxqaW0uYnJpZGVAbGludXguaW50ZWwu Y29tPgo+ID4gCj4gPiBBZGQgdXBmcm9udCBsaW5rIHRyYWluaW5nIHRvIGludGVsX2RwX21zdF9t b2RlX3ZhbGlkKCkgc28gdGhhdCB3ZSBrbm93Cj4gPiB0b3BvbG9neSBjb25zdHJhaW50cyBiZWZv cmUgd2UgdmFsaWRhdGUgdGhlIGxlZ2FsaXR5IG9mIG1vZGVzIHRvIGJlCj4gPiBjaGVja2VkLgo+ ID4gCj4gCj4gVGhlIHBhdGNoIHNlZW1zIHRvIGRvIGEgbG90IG1vcmUgdGhpbmdzIHRoYW4ganVz dCB3aGF0IGlzIGRlc2NyaWJlZAo+IGhlcmUuIEkgZ3Vlc3MsIGl0IHdvdWxkIGJlIGJldHRlciB0 byBzcGxpdCB0aGlzIGludG8gbXVsdGlwbGUgcGF0Y2hlcyBvcgo+IGF0IGxlYXN0IHByb3ZpZGUg YWRlcXVhdGUgZGVzY3JpcHRpb24gaGVyZS4KPiAKCkkgdGhpbmsgdGhlIG9ubHkgb3RoZXIgdGhp bmcgaXRzIGRvaW5nIGlzIG1ha2luZyBzb21lIGZ1bmN0aW9ucwpub24gc3RhdGljIHNvIHRoZXkg Y2FuIGJlIHVzZWQgZm9yIE1TVCB1cGZyb250IGVuYWJsaW5nLgpCdXQgSSB0aGluayB0aGF0IGNh biBiZSBpbiB0aGUgc2FtZSBwYXRjaCBzaW5jZSBpdCBpcyBkb25lIGluIG9yZGVyCnRvIGVuYWJs ZSB1cGZyb250IGZvciBNU1QuCkppbSwgYW55IHRob3VnaHRzPwoKCj4gPiB2MzoKPiA+ICogUmVz ZXQgdGhlIHVwZnJvbnQgdmFsdWVzIGJ1dCBkb250IHVuc2V0IHRoZSBFRElEIGZvciBNU1QuIChN YW5hc2kpCj4gPiB2MjoKPiA+ICogUmViYXNlZCBvbiBuZXcgcmV2aXNpb24gb2YgbGluayB0cmFp bmluZyBwYXRjaC4gKE1hbmFzaSkKPiA+IAo+ID4gU2lnbmVkLW9mZi1ieTogTWFuYXNpIE5hdmFy ZSA8bWFuYXNpLmQubmF2YXJlQGludGVsLmNvbT4KPiA+IFNpZ25lZC1vZmYtYnk6IEppbSBCcmlk ZSA8amltLmJyaWRlQGxpbnV4LmludGVsLmNvbT4KPiA+IC0tLQo+ID4gIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2RwLmMgICAgIHwgMTUgKysrKy0tLS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcF9tc3QuYyB8IDc0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0t LS0tLS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICB8ICAzICsrCj4g PiAgMyBmaWxlcyBjaGFuZ2VkLCA2NCBpbnNlcnRpb25zKCspLCAyOCBkZWxldGlvbnMoLSkKPiA+ IAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gPiBpbmRleCA5MDQyZDI4Li42MzU4MzBlIDEw MDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ID4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ID4gQEAgLTEzMSw3ICsxMzEsNyBAQCBz dGF0aWMgdm9pZCB2bHZfc3RlYWxfcG93ZXJfc2VxdWVuY2VyKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsCj4gPiAgCQkJCSAgICAgIGVudW0gcGlwZSBwaXBlKTsKPiA+ICBzdGF0aWMgdm9pZCBpbnRl bF9kcF91bnNldF9lZGlkKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApOwo+ID4gIAo+ID4gLXN0 YXRpYyBpbnQKPiA+ICtpbnQKPiA+ICBpbnRlbF9kcF9tYXhfbGlua19idyhzdHJ1Y3QgaW50ZWxf ZHAgICppbnRlbF9kcCkKPiA+ICB7Cj4gPiAgCWludCBtYXhfbGlua19idyA9IGludGVsX2RwLT5k cGNkW0RQX01BWF9MSU5LX1JBVEVdOwo+ID4gQEAgLTE1MCw3ICsxNTAsNyBAQCBpbnRlbF9kcF9t YXhfbGlua19idyhzdHJ1Y3QgaW50ZWxfZHAgICppbnRlbF9kcCkKPiA+ICAJcmV0dXJuIG1heF9s aW5rX2J3Owo+ID4gIH0KPiA+ICAKPiA+IC1zdGF0aWMgdTggaW50ZWxfZHBfbWF4X2xhbmVfY291 bnQoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiA+ICt1OCBpbnRlbF9kcF9tYXhfbGFuZV9j b3VudChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ID4gIHsKPiA+ICAJc3RydWN0IGludGVs X2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPSBkcF90b19kaWdfcG9ydChpbnRlbF9kcCk7 Cj4gPiAgCXU4IHRlbXAsIHNvdXJjZV9tYXgsIHNpbmtfbWF4Owo+ID4gQEAgLTI5Niw4ICsyOTYs NyBAQCBzdGF0aWMgaW50IGludGVyc2VjdF9yYXRlcyhjb25zdCBpbnQgKnNvdXJjZV9yYXRlcywg aW50IHNvdXJjZV9sZW4sCj4gPiAgCXJldHVybiBrOwo+ID4gIH0KPiA+ICAKPiA+IC1zdGF0aWMg aW50IGludGVsX2RwX2NvbW1vbl9yYXRlcyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ID4g LQkJCQkgaW50ICpjb21tb25fcmF0ZXMpCj4gPiAraW50IGludGVsX2RwX2NvbW1vbl9yYXRlcyhz dHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLCBpbnQgKmNvbW1vbl9yYXRlcykKPiA+ICB7Cj4gPiAg CWNvbnN0IGludCAqc291cmNlX3JhdGVzLCAqc2lua19yYXRlczsKPiA+ICAJaW50IHNvdXJjZV9s ZW4sIHNpbmtfbGVuOwo+ID4gQEAgLTMyMSw3ICszMjAsNyBAQCBzdGF0aWMgaW50IGludGVsX2Rw X2NvbW1vbl9yYXRlcyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ID4gIAkJCSAgICAgICBj b21tb25fcmF0ZXMpOwo+ID4gIH0KPiA+ICAKPiA+IC1zdGF0aWMgYm9vbCBpbnRlbF9kcF91cGZy b250X2xpbmtfdHJhaW4oc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiA+ICtib29sIGludGVs X2RwX3VwZnJvbnRfbGlua190cmFpbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ID4gIHsK PiA+ICAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPSBkcF90b19k aWdfcG9ydChpbnRlbF9kcCk7Cj4gPiAgCXN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNv ZGVyID0gJmludGVsX2RpZ19wb3J0LT5iYXNlOwo+ID4gQEAgLTQ1NDUsMTIgKzQ1NDQsMTIgQEAg aW50ZWxfZHBfbG9uZ19wdWxzZShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICppbnRlbF9jb25uZWN0 b3IpCj4gPiAgCX0KPiA+ICAKPiA+ICBvdXQ6Cj4gPiAtCWlmICgoc3RhdHVzICE9IGNvbm5lY3Rv cl9zdGF0dXNfY29ubmVjdGVkKSAmJgo+ID4gLQkgICAgKGludGVsX2RwLT5pc19tc3QgPT0gZmFs c2UpKSB7Cj4gPiAtCQlpbnRlbF9kcF91bnNldF9lZGlkKGludGVsX2RwKTsKPiA+ICsJaWYgKHN0 YXR1cyAhPSBjb25uZWN0b3Jfc3RhdHVzX2Nvbm5lY3RlZCkgewo+ID4gIAkJaW50ZWxfZHAtPnVw ZnJvbnRfZG9uZSA9IGZhbHNlOwo+ID4gIAkJaW50ZWxfZHAtPm1heF9sYW5lc191cGZyb250ID0g MDsKPiA+ICAJCWludGVsX2RwLT5tYXhfbGlua19yYXRlX3VwZnJvbnQgPSAwOwo+ID4gKwkJaWYg KGludGVsX2RwLT5pc19tc3QgPT0gZmFsc2UpCj4gPiArCQkJaW50ZWxfZHBfdW5zZXRfZWRpZChp bnRlbF9kcCk7Cj4gPiAgCX0KPiA+ICAKPiA+ICAJaW50ZWxfZGlzcGxheV9wb3dlcl9wdXQodG9f aTkxNShkZXYpLCBwb3dlcl9kb21haW4pOwo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2RwX21zdC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbXN0 LmMKPiA+IGluZGV4IDU0YTlkNzYuLjk4ZDQ1YTQgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcF9tc3QuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHBfbXN0LmMKPiA+IEBAIC00MSwyMSArNDEsMzAgQEAgc3RhdGljIGJvb2wgaW50ZWxf ZHBfbXN0X2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4g IAlpbnQgYnBwOwo+ID4gIAlpbnQgbGFuZV9jb3VudCwgc2xvdHM7Cj4gPiAgCWNvbnN0IHN0cnVj dCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0gJnBpcGVfY29uZmlnLT5iYXNlLmFk anVzdGVkX21vZGU7Cj4gPiAtCWludCBtc3RfcGJuOwo+ID4gKwlpbnQgbXN0X3BibiwgY29tbW9u X2xlbjsKPiA+ICsJaW50IGNvbW1vbl9yYXRlc1tEUF9NQVhfU1VQUE9SVEVEX1JBVEVTXSA9IHt9 Owo+ID4gIAo+ID4gIAlwaXBlX2NvbmZpZy0+ZHBfZW5jb2Rlcl9pc19tc3QgPSB0cnVlOwo+ID4g IAlwaXBlX2NvbmZpZy0+aGFzX3BjaF9lbmNvZGVyID0gZmFsc2U7Cj4gPiAtCWJwcCA9IDI0Owo+ ID4gKwo+ID4gIAkvKgo+ID4gLQkgKiBmb3IgTVNUIHdlIGFsd2F5cyBjb25maWd1cmUgbWF4IGxp bmsgYncgLSB0aGUgc3BlYyBkb2Vzbid0Cj4gPiAtCSAqIHNlZW0gdG8gc3VnZ2VzdCB3ZSBzaG91 bGQgZG8gb3RoZXJ3aXNlLgo+ID4gKwkgKiBGb3IgTVNUIHdlIGFsd2F5cyBjb25maWd1cmUgZm9y IHRoZSBtYXhpbXVtIHRyYWluYWJsZSBsaW5rIGJ3IC0KPiA+ICsJICogdGhlIHNwZWMgZG9lc24n dCBzZWVtIHRvIHN1Z2dlc3Qgd2Ugc2hvdWxkIGRvIG90aGVyd2lzZS4gIFRoZQo+ID4gKwkgKiBj YWxscyB0byBpbnRlbF9kcF9tYXhfbGFuZV9jb3VudCgpIGFuZCBpbnRlbF9kcF9jb21tb25fcmF0 ZXMoKQo+ID4gKwkgKiBib3RoIHRha2Ugc3VjY2Vzc2Z1bCB1cGZyb250IGxpbmsgdHJhaW5pbmcg aW50byBhY2NvdW50LCBhbmQKPiA+ICsJICogcmV0dXJuIHRoZSBEaXNwbGF5UG9ydCBtYXggc3Vw cG9ydGVkIHZhbHVlcyBpbiB0aGUgZXZlbnQgdGhhdAo+ID4gKwkgKiB1cGZyb250IGxpbmsgdHJh aW5pbmcgd2FzIG5vdCBkb25lLgo+ID4gIAkgKi8KPiA+IC0JbGFuZV9jb3VudCA9IGRybV9kcF9t YXhfbGFuZV9jb3VudChpbnRlbF9kcC0+ZHBjZCk7Cj4gPiArCWxhbmVfY291bnQgPSBpbnRlbF9k cF9tYXhfbGFuZV9jb3VudChpbnRlbF9kcCk7Cj4gPiAgCj4gPiAgCXBpcGVfY29uZmlnLT5sYW5l X2NvdW50ID0gbGFuZV9jb3VudDsKPiA+ICAKPiA+IC0JcGlwZV9jb25maWctPnBpcGVfYnBwID0g MjQ7Cj4gPiAtCXBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrID0gaW50ZWxfZHBfbWF4X2xpbmtfcmF0 ZShpbnRlbF9kcCk7Cj4gPiArCXBpcGVfY29uZmlnLT5waXBlX2JwcCA9IGJwcCA9IDI0Owo+ID4g Kwljb21tb25fbGVuID0gaW50ZWxfZHBfY29tbW9uX3JhdGVzKGludGVsX2RwLCBjb21tb25fcmF0 ZXMpOwo+ID4gKwlwaXBlX2NvbmZpZy0+cG9ydF9jbG9jayA9IGNvbW1vbl9yYXRlc1tjb21tb25f bGVuIC0gMV07Cj4gPiArCj4gPiArCURSTV9ERUJVR19LTVMoIkRQIE1TVCBsaW5rIGNvbmZpZ3Vy ZWQgZm9yICVkIGxhbmVzIEAgJWQuXG4iLAo+ID4gKwkJICAgICAgcGlwZV9jb25maWctPmxhbmVf Y291bnQsIHBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrKTsKPiA+ICAKPiA+ICAJc3RhdGUgPSBwaXBl X2NvbmZpZy0+YmFzZS5zdGF0ZTsKPiA+ICAKPiA+IEBAIC0xMzcsNiArMTQ2LDggQEAgc3RhdGlj IHZvaWQgaW50ZWxfbXN0X3ByZV9lbmFibGVfZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29k ZXIsCj4gPiAgCWVudW0gcG9ydCBwb3J0ID0gaW50ZWxfZGlnX3BvcnQtPnBvcnQ7Cj4gPiAgCXN0 cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciA9Cj4gPiAgCQl0b19pbnRlbF9jb25uZWN0 b3IoY29ubl9zdGF0ZS0+Y29ubmVjdG9yKTsKPiA+ICsJc3RydWN0IGludGVsX3NoYXJlZF9kcGxs ICpwbGwgPSBwaXBlX2NvbmZpZy0+c2hhcmVkX2RwbGw7Cj4gPiArCXN0cnVjdCBpbnRlbF9zaGFy ZWRfZHBsbF9jb25maWcgdG1wX3BsbF9jb25maWc7Cj4gPiAgCWludCByZXQ7Cj4gPiAgCXVpbnQz Ml90IHRlbXA7Cj4gPiAgCWludCBzbG90czsKPiA+IEBAIC0xNTAsMjEgKzE2MSwyMyBAQCBzdGF0 aWMgdm9pZCBpbnRlbF9tc3RfcHJlX2VuYWJsZV9kcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5j b2RlciwKPiA+ICAJRFJNX0RFQlVHX0tNUygiJWRcbiIsIGludGVsX2RwLT5hY3RpdmVfbXN0X2xp bmtzKTsKPiA+ICAKPiA+ICAJaWYgKGludGVsX2RwLT5hY3RpdmVfbXN0X2xpbmtzID09IDApIHsK PiA+IC0JCWludGVsX2RkaV9jbGtfc2VsZWN0KCZpbnRlbF9kaWdfcG9ydC0+YmFzZSwKPiA+IC0J CQkJICAgICBwaXBlX2NvbmZpZy0+c2hhcmVkX2RwbGwpOwo+ID4gLQo+ID4gLQkJaW50ZWxfcHJl cGFyZV9kcF9kZGlfYnVmZmVycygmaW50ZWxfZGlnX3BvcnQtPmJhc2UpOwo+ID4gLQkJaW50ZWxf ZHBfc2V0X2xpbmtfcGFyYW1zKGludGVsX2RwLAo+ID4gLQkJCQkJIHBpcGVfY29uZmlnLT5wb3J0 X2Nsb2NrLAo+ID4gLQkJCQkJIHBpcGVfY29uZmlnLT5sYW5lX2NvdW50LAo+ID4gLQkJCQkJIHRy dWUpOwo+ID4gLQo+ID4gLQkJaW50ZWxfZGRpX2luaXRfZHBfYnVmX3JlZygmaW50ZWxfZGlnX3Bv cnQtPmJhc2UpOwo+ID4gIAo+ID4gLQkJaW50ZWxfZHBfc2lua19kcG1zKGludGVsX2RwLCBEUk1f TU9ERV9EUE1TX09OKTsKPiA+ICsJCS8qIERpc2FibGUgdGhlIFBMTCBzaW5jZSB3ZSBuZWVkIHRv IGFjcXVpcmUgdGhlIFBMTAo+ID4gKwkJICogYmFzZWQgb24gdGhlIGxpbmsgcmF0ZSBpbiB0aGUg bGluayB0cmFpbmluZyBzZXF1ZW5jZQo+ID4gKwkJICovCj4gPiArCQl0bXBfcGxsX2NvbmZpZyA9 IHBsbC0+Y29uZmlnOwo+ID4gKwkJcGxsLT5mdW5jcy5kaXNhYmxlKGRldl9wcml2LCBwbGwpOwo+ ID4gKwkJcGxsLT5jb25maWcuY3J0Y19tYXNrID0gMDsKPiA+ICsKPiA+ICsJCS8qIElmIExpbmsg VHJhaW5pbmcgZmFpbHMsIHNlbmQgYSB1ZXZlbnQgdG8gZ2VuZXJhdGUgYQo+ID4gKwkJICpob3Rw bHVnCj4gPiArCQkgKi8KPiA+ICsJCWlmICghKGludGVsX2RkaV9saW5rX3RyYWluKGludGVsX2Rw LCBwaXBlX2NvbmZpZy0+cG9ydF9jbG9jaywKPiA+ICsJCQkJCSAgIHBpcGVfY29uZmlnLT5sYW5l X2NvdW50LCB0cnVlLAo+ID4gKwkJCQkJICAgZmFsc2UpKSkKPiA+ICsJCQlkcm1fa21zX2hlbHBl cl9ob3RwbHVnX2V2ZW50KGVuY29kZXItPmJhc2UuZGV2KTsKPiA+ICsJCXBsbC0+Y29uZmlnID0g dG1wX3BsbF9jb25maWc7Cj4gPiAgCj4gPiAtCQlpbnRlbF9kcF9zdGFydF9saW5rX3RyYWluKGlu dGVsX2RwKTsKPiA+IC0JCWludGVsX2RwX3N0b3BfbGlua190cmFpbihpbnRlbF9kcCk7Cj4gPiAg CX0KPiA+ICAKPiA+ICAJcmV0ID0gZHJtX2RwX21zdF9hbGxvY2F0ZV92Y3BpKCZpbnRlbF9kcC0+ bXN0X21nciwKPiA+IEBAIC0zMzYsNiArMzQ5LDI3IEBAIGludGVsX2RwX21zdF9tb2RlX3ZhbGlk KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gPiAgCQkJc3RydWN0IGRybV9kaXNw bGF5X21vZGUgKm1vZGUpCj4gPiAgewo+ID4gIAlpbnQgbWF4X2RvdGNsayA9IHRvX2k5MTUoY29u bmVjdG9yLT5kZXYpLT5tYXhfZG90Y2xrX2ZyZXE7Cj4gPiArCXN0cnVjdCBpbnRlbF9jb25uZWN0 b3IgKmludGVsX2Nvbm5lY3RvciA9IHRvX2ludGVsX2Nvbm5lY3Rvcihjb25uZWN0b3IpOwo+ID4g KwlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gaW50ZWxfY29ubmVjdG9yLT5tc3RfcG9ydDsK PiA+ICsKPiA+ICsJaWYgKGludGVsX2RwLT51cGZyb250X2xpbmtfdHJhaW4gJiYgIWludGVsX2Rw LT51cGZyb250X2RvbmUpIHsKPiA+ICsJCWJvb2wgZG9fdXBmcm9udF9saW5rX3RyYWluOwo+ID4g Kwo+ID4gKwkJZG9fdXBmcm9udF9saW5rX3RyYWluID0gaW50ZWxfZHAtPmNvbXBsaWFuY2VfdGVz dF90eXBlICE9Cj4gPiArCQkJRFBfVEVTVF9MSU5LX1RSQUlOSU5HOwo+ID4gKwkJaWYgKGRvX3Vw ZnJvbnRfbGlua190cmFpbikgewo+ID4gKwkJCWludGVsX2RwLT51cGZyb250X2RvbmUgPQo+ID4g KwkJCQlpbnRlbF9kcF91cGZyb250X2xpbmtfdHJhaW4oaW50ZWxfZHApOwo+ID4gKwkJCWlmIChp bnRlbF9kcC0+dXBmcm9udF9kb25lKSB7Cj4gPiArCQkJCURSTV9ERUJVR19LTVMoIk1TVCB1cGZy b250IHRyYWluZWQgYXQgIgo+ID4gKwkJCQkJICAgICAgIiVkIGxhbmVzIEAgJWQuIiwKPiA+ICsJ CQkJCSAgICAgIGludGVsX2RwLT5tYXhfbGFuZXNfdXBmcm9udCwKPiA+ICsJCQkJCSAgICAgIGlu dGVsX2RwLT5tYXhfbGlua19yYXRlX3VwZnJvbnQpOwo+ID4gKwkJCX0gZWxzZQo+ID4gKwkJCQlE Uk1fREVCVUdfS01TKCJNU1QgdXBmcm9udCBsaW5rIHRyYWluaW5nICIKPiA+ICsJCQkJCSAgICAg ICJmYWlsZWQuIik7Cj4gPiArCQl9Cj4gPiArCX0KPiA+ICAKPiA+ICAJLyogVE9ETyAtIHZhbGlk YXRlIG1vZGUgYWdhaW5zdCBhdmFpbGFibGUgUEJOIGZvciBsaW5rICovCj4gPiAgCWlmIChtb2Rl LT5jbG9jayA8IDEwMDAwKQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+IGluZGV4IGZj MmYxYmMuLmI0YmMwMDIgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcnYuaAo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+IEBA IC0xNDE2LDYgKzE0MTYsNyBAQCB2b2lkIGludGVsX2VkcF9wYW5lbF9vZmYoc3RydWN0IGludGVs X2RwICppbnRlbF9kcCk7Cj4gPiAgdm9pZCBpbnRlbF9kcF9hZGRfcHJvcGVydGllcyhzdHJ1Y3Qg aW50ZWxfZHAgKmludGVsX2RwLCBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKTsKPiA+ ICB2b2lkIGludGVsX2RwX21zdF9zdXNwZW5kKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ID4g IHZvaWQgaW50ZWxfZHBfbXN0X3Jlc3VtZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKPiA+ICt1 OCBpbnRlbF9kcF9tYXhfbGFuZV9jb3VudChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKTsKPiA+ ICBpbnQgaW50ZWxfZHBfbWF4X2xpbmtfcmF0ZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKTsK PiA+ICBpbnQgaW50ZWxfZHBfbGlua19yYXRlX2luZGV4KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxf ZHAsIGludCAqY29tbW9uX3JhdGVzLAo+ID4gIAkJCSAgICAgaW50IGxpbmtfcmF0ZSk7Cj4gPiBA QCAtMTQ0Niw2ICsxNDQ3LDggQEAgaW50ZWxfZHBfcHJlX2VtcGhhc2lzX21heChzdHJ1Y3QgaW50 ZWxfZHAgKmludGVsX2RwLCB1aW50OF90IHZvbHRhZ2Vfc3dpbmcpOwo+ID4gIHZvaWQgaW50ZWxf ZHBfY29tcHV0ZV9yYXRlKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsIGludCBwb3J0X2Nsb2Nr LAo+ID4gIAkJCSAgIHVpbnQ4X3QgKmxpbmtfYncsIHVpbnQ4X3QgKnJhdGVfc2VsZWN0KTsKPiA+ ICBib29sIGludGVsX2RwX3NvdXJjZV9zdXBwb3J0c19oYnIyKHN0cnVjdCBpbnRlbF9kcCAqaW50 ZWxfZHApOwo+ID4gK2ludCBpbnRlbF9kcF9jb21tb25fcmF0ZXMoc3RydWN0IGludGVsX2RwICpp bnRlbF9kcCwgaW50ICpjb21tb25fcmF0ZXMpOwo+ID4gK2Jvb2wgaW50ZWxfZHBfdXBmcm9udF9s aW5rX3RyYWluKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApOwo+ID4gIGJvb2wKPiA+ICBpbnRl bF9kcF9nZXRfbGlua19zdGF0dXMoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgdWludDhfdCBs aW5rX3N0YXR1c1tEUF9MSU5LX1NUQVRVU19TSVpFXSk7Cj4gPiAgCj4gCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QK SW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=