From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 7/8] drm/i915: Move max voltage and pre emphasis to intel_dp_link_training.c Date: Tue, 8 Sep 2015 16:01:47 +0300 Message-ID: <20150908130147.GE29811@intel.com> References: <1441715280-11623-1-git-send-email-ander.conselvan.de.oliveira@intel.com> <1441715280-11623-8-git-send-email-ander.conselvan.de.oliveira@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id B697A6E8D8 for ; Tue, 8 Sep 2015 06:01:50 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1441715280-11623-8-git-send-email-ander.conselvan.de.oliveira@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ander Conselvan de Oliveira Cc: jani.nikula@intel.com, intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBTZXAgMDgsIDIwMTUgYXQgMDM6Mjc6NThQTSArMDMwMCwgQW5kZXIgQ29uc2VsdmFu IGRlIE9saXZlaXJhIHdyb3RlOgo+IFNvIGxpbmsgdHJhaW5pbmcgdGVzdHMgY2FuIHVzZSByZWFs IGhhcmR3YXJlIGxpbWl0cy4KClRoZXNlIG5lZWQgdG8gYmUga2VwdCBpbiBzeW5jIHdpdGggdGhl IF9zaWduYWxfbGV2ZWxzKCkgZnVuY3Rpb25zLCBzbwptb3ZpbmcgdGhlbSB0byBhIHNlcGFyYXRl IGZpbGUgaXMgYSBiaXQgcXVlc3Rpb25hYmxlLgoKSSBzdWdnZXN0IHRoYXQgd2Ugc2hvdWxkIGF0 dGVtcHQgdG8gcmVzdHJ1Y3R1cmUgdGhpcyBpbmZvcm1hdGlvbiBhcwpzb21lIGtpbmQgb2YgdGFi bGVzLCBmcm9tIHdoaWNoIHdlIGNhbiBsb29rIHVwIHRoZSBtYXggdmFsdWVzIGFzCndlbGwgYXMg dGhlIGhhcmR3YXJlIHNwZWNpZmljIHZhbHVlcyBmb3IgZWFjaCBzZXR0aW5nLgoKVGhhdCBvZiBj b3Vyc2Ugd29uJ3Qgc29sdmUgeW91ciBwcm9ibGVtLiBTbyBmYXIgSSBkb24ndCBrbm93IHdoYXQg eW91cgp0ZXN0IGV2ZW4gZG9lcyBhbmQgd2h5IGRvZXMgaXQgbmVlZCB0aGlzIGluZm9ybWF0aW9u LCBzbyBJIGd1ZXNzIEknbGwKbmVlZCB0byByZWFkIG9uLi4uCgo+IC0tLQo+ICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcC5jICAgICAgICAgICAgICAgfCA5OSAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbGlua190cmFpbmlu Zy5jIHwgOTIgKysrKysrKysrKysrKysrKysrKysrKysrKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcnYuaCAgICAgICAgICAgICAgfCAxMSArLS0KPiAgMyBmaWxlcyBjaGFuZ2VkLCA5 OSBpbnNlcnRpb25zKCspLCAxMDMgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cC5jCj4gaW5kZXggNTc3ODA1OS4uZGE4N2FlZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAu Ywo+IEBAIC0xMTEsMTMgKzExMSw2IEBAIHN0YXRpYyBib29sIGlzX2VkcChzdHJ1Y3QgaW50ZWxf ZHAgKmludGVsX2RwKQo+ICAJcmV0dXJuIGludGVsX2RpZ19wb3J0LT5iYXNlLnR5cGUgPT0gSU5U RUxfT1VUUFVUX0VEUDsKPiAgfQo+ICAKPiAtc3RhdGljIHN0cnVjdCBkcm1fZGV2aWNlICppbnRl bF9kcF90b19kZXYoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiAtewo+IC0Jc3RydWN0IGlu dGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPSBkcF90b19kaWdfcG9ydChpbnRlbF9k cCk7Cj4gLQo+IC0JcmV0dXJuIGludGVsX2RpZ19wb3J0LT5iYXNlLmJhc2UuZGV2Owo+IC19Cj4g LQo+ICBzdGF0aWMgc3RydWN0IGludGVsX2RwICppbnRlbF9hdHRhY2hlZF9kcChzdHJ1Y3QgZHJt X2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICB7Cj4gIAlyZXR1cm4gZW5jX3RvX2ludGVsX2RwKCZp bnRlbF9hdHRhY2hlZF9lbmNvZGVyKGNvbm5lY3RvciktPmJhc2UpOwo+IEBAIC0zMDU0LDk4ICsz MDQ3LDYgQEAgaW50ZWxfZHBfZ2V0X2xpbmtfc3RhdHVzKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxf ZHAsIHVpbnQ4X3QgbGlua19zdGF0dXNbRFBfTElOS18KPiAgCQkJCSAgICAgICBEUF9MSU5LX1NU QVRVU19TSVpFKSA9PSBEUF9MSU5LX1NUQVRVU19TSVpFOwo+ICB9Cj4gIAo+IC0vKiBUaGVzZSBh cmUgc291cmNlLXNwZWNpZmljIHZhbHVlcy4gKi8KPiAtdWludDhfdAo+IC1pbnRlbF9kcF92b2x0 YWdlX21heChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+IC17Cj4gLQlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2ID0gaW50ZWxfZHBfdG9fZGV2KGludGVsX2RwKTsKPiAtCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gLQllbnVtIHBvcnQgcG9y dCA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKS0+cG9ydDsKPiAtCj4gLQlpZiAoSVNfQlJPWFRP TihkZXYpKQo+IC0JCXJldHVybiBEUF9UUkFJTl9WT0xUQUdFX1NXSU5HX0xFVkVMXzM7Cj4gLQll bHNlIGlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA5KSB7Cj4gLQkJaWYgKGRldl9wcml2LT5l ZHBfbG93X3Zzd2luZyAmJiBwb3J0ID09IFBPUlRfQSkKPiAtCQkJcmV0dXJuIERQX1RSQUlOX1ZP TFRBR0VfU1dJTkdfTEVWRUxfMzsKPiAtCQlyZXR1cm4gRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19M RVZFTF8yOwo+IC0JfSBlbHNlIGlmIChJU19WQUxMRVlWSUVXKGRldikpCj4gLQkJcmV0dXJuIERQ X1RSQUlOX1ZPTFRBR0VfU1dJTkdfTEVWRUxfMzsKPiAtCWVsc2UgaWYgKElTX0dFTjcoZGV2KSAm JiBwb3J0ID09IFBPUlRfQSkKPiAtCQlyZXR1cm4gRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19MRVZF TF8yOwo+IC0JZWxzZSBpZiAoSEFTX1BDSF9DUFQoZGV2KSAmJiBwb3J0ICE9IFBPUlRfQSkKPiAt CQlyZXR1cm4gRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19MRVZFTF8zOwo+IC0JZWxzZQo+IC0JCXJl dHVybiBEUF9UUkFJTl9WT0xUQUdFX1NXSU5HX0xFVkVMXzI7Cj4gLX0KPiAtCj4gLXVpbnQ4X3QK PiAtaW50ZWxfZHBfcHJlX2VtcGhhc2lzX21heChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLCB1 aW50OF90IHZvbHRhZ2Vfc3dpbmcpCj4gLXsKPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBp bnRlbF9kcF90b19kZXYoaW50ZWxfZHApOwo+IC0JZW51bSBwb3J0IHBvcnQgPSBkcF90b19kaWdf cG9ydChpbnRlbF9kcCktPnBvcnQ7Cj4gLQo+IC0JaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49 IDkpIHsKPiAtCQlzd2l0Y2ggKHZvbHRhZ2Vfc3dpbmcgJiBEUF9UUkFJTl9WT0xUQUdFX1NXSU5H X01BU0spIHsKPiAtCQljYXNlIERQX1RSQUlOX1ZPTFRBR0VfU1dJTkdfTEVWRUxfMDoKPiAtCQkJ cmV0dXJuIERQX1RSQUlOX1BSRV9FTVBIX0xFVkVMXzM7Cj4gLQkJY2FzZSBEUF9UUkFJTl9WT0xU QUdFX1NXSU5HX0xFVkVMXzE6Cj4gLQkJCXJldHVybiBEUF9UUkFJTl9QUkVfRU1QSF9MRVZFTF8y Owo+IC0JCWNhc2UgRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19MRVZFTF8yOgo+IC0JCQlyZXR1cm4g RFBfVFJBSU5fUFJFX0VNUEhfTEVWRUxfMTsKPiAtCQljYXNlIERQX1RSQUlOX1ZPTFRBR0VfU1dJ TkdfTEVWRUxfMzoKPiAtCQkJcmV0dXJuIERQX1RSQUlOX1BSRV9FTVBIX0xFVkVMXzA7Cj4gLQkJ ZGVmYXVsdDoKPiAtCQkJcmV0dXJuIERQX1RSQUlOX1BSRV9FTVBIX0xFVkVMXzA7Cj4gLQkJfQo+ IC0JfSBlbHNlIGlmIChJU19IQVNXRUxMKGRldikgfHwgSVNfQlJPQURXRUxMKGRldikpIHsKPiAt CQlzd2l0Y2ggKHZvbHRhZ2Vfc3dpbmcgJiBEUF9UUkFJTl9WT0xUQUdFX1NXSU5HX01BU0spIHsK PiAtCQljYXNlIERQX1RSQUlOX1ZPTFRBR0VfU1dJTkdfTEVWRUxfMDoKPiAtCQkJcmV0dXJuIERQ X1RSQUlOX1BSRV9FTVBIX0xFVkVMXzM7Cj4gLQkJY2FzZSBEUF9UUkFJTl9WT0xUQUdFX1NXSU5H X0xFVkVMXzE6Cj4gLQkJCXJldHVybiBEUF9UUkFJTl9QUkVfRU1QSF9MRVZFTF8yOwo+IC0JCWNh c2UgRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19MRVZFTF8yOgo+IC0JCQlyZXR1cm4gRFBfVFJBSU5f UFJFX0VNUEhfTEVWRUxfMTsKPiAtCQljYXNlIERQX1RSQUlOX1ZPTFRBR0VfU1dJTkdfTEVWRUxf MzoKPiAtCQlkZWZhdWx0Ogo+IC0JCQlyZXR1cm4gRFBfVFJBSU5fUFJFX0VNUEhfTEVWRUxfMDsK PiAtCQl9Cj4gLQl9IGVsc2UgaWYgKElTX1ZBTExFWVZJRVcoZGV2KSkgewo+IC0JCXN3aXRjaCAo dm9sdGFnZV9zd2luZyAmIERQX1RSQUlOX1ZPTFRBR0VfU1dJTkdfTUFTSykgewo+IC0JCWNhc2Ug RFBfVFJBSU5fVk9MVEFHRV9TV0lOR19MRVZFTF8wOgo+IC0JCQlyZXR1cm4gRFBfVFJBSU5fUFJF X0VNUEhfTEVWRUxfMzsKPiAtCQljYXNlIERQX1RSQUlOX1ZPTFRBR0VfU1dJTkdfTEVWRUxfMToK PiAtCQkJcmV0dXJuIERQX1RSQUlOX1BSRV9FTVBIX0xFVkVMXzI7Cj4gLQkJY2FzZSBEUF9UUkFJ Tl9WT0xUQUdFX1NXSU5HX0xFVkVMXzI6Cj4gLQkJCXJldHVybiBEUF9UUkFJTl9QUkVfRU1QSF9M RVZFTF8xOwo+IC0JCWNhc2UgRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19MRVZFTF8zOgo+IC0JCWRl ZmF1bHQ6Cj4gLQkJCXJldHVybiBEUF9UUkFJTl9QUkVfRU1QSF9MRVZFTF8wOwo+IC0JCX0KPiAt CX0gZWxzZSBpZiAoSVNfR0VONyhkZXYpICYmIHBvcnQgPT0gUE9SVF9BKSB7Cj4gLQkJc3dpdGNo ICh2b2x0YWdlX3N3aW5nICYgRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19NQVNLKSB7Cj4gLQkJY2Fz ZSBEUF9UUkFJTl9WT0xUQUdFX1NXSU5HX0xFVkVMXzA6Cj4gLQkJCXJldHVybiBEUF9UUkFJTl9Q UkVfRU1QSF9MRVZFTF8yOwo+IC0JCWNhc2UgRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19MRVZFTF8x Ogo+IC0JCWNhc2UgRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19MRVZFTF8yOgo+IC0JCQlyZXR1cm4g RFBfVFJBSU5fUFJFX0VNUEhfTEVWRUxfMTsKPiAtCQlkZWZhdWx0Ogo+IC0JCQlyZXR1cm4gRFBf VFJBSU5fUFJFX0VNUEhfTEVWRUxfMDsKPiAtCQl9Cj4gLQl9IGVsc2Ugewo+IC0JCXN3aXRjaCAo dm9sdGFnZV9zd2luZyAmIERQX1RSQUlOX1ZPTFRBR0VfU1dJTkdfTUFTSykgewo+IC0JCWNhc2Ug RFBfVFJBSU5fVk9MVEFHRV9TV0lOR19MRVZFTF8wOgo+IC0JCQlyZXR1cm4gRFBfVFJBSU5fUFJF X0VNUEhfTEVWRUxfMjsKPiAtCQljYXNlIERQX1RSQUlOX1ZPTFRBR0VfU1dJTkdfTEVWRUxfMToK PiAtCQkJcmV0dXJuIERQX1RSQUlOX1BSRV9FTVBIX0xFVkVMXzI7Cj4gLQkJY2FzZSBEUF9UUkFJ Tl9WT0xUQUdFX1NXSU5HX0xFVkVMXzI6Cj4gLQkJCXJldHVybiBEUF9UUkFJTl9QUkVfRU1QSF9M RVZFTF8xOwo+IC0JCWNhc2UgRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19MRVZFTF8zOgo+IC0JCWRl ZmF1bHQ6Cj4gLQkJCXJldHVybiBEUF9UUkFJTl9QUkVfRU1QSF9MRVZFTF8wOwo+IC0JCX0KPiAt CX0KPiAtfQo+IC0KPiAgc3RhdGljIHVpbnQzMl90IHZsdl9zaWduYWxfbGV2ZWxzKHN0cnVjdCBp bnRlbF9kcCAqaW50ZWxfZHApCj4gIHsKPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRl bF9kcF90b19kZXYoaW50ZWxfZHApOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcF9saW5rX3RyYWluaW5nLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cF9saW5rX3RyYWluaW5nLmMKPiBpbmRleCBmMzNjYmJiLi44ZDI3ZGNlIDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX2xpbmtfdHJhaW5pbmcuYwo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX2xpbmtfdHJhaW5pbmcuYwo+IEBAIC0yMyw2ICsy Myw5OCBAQAo+ICAKPiAgI2luY2x1ZGUgImludGVsX2Rydi5oIgo+ICAKPiArLyogVGhlc2UgYXJl IHNvdXJjZS1zcGVjaWZpYyB2YWx1ZXMuICovCj4gK3N0YXRpYyB1aW50OF90Cj4gK2ludGVsX2Rw X3ZvbHRhZ2VfbWF4KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gK3sKPiArCXN0cnVjdCBk cm1fZGV2aWNlICpkZXYgPSBpbnRlbF9kcF90b19kZXYoaW50ZWxfZHApOwo+ICsJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiArCWVudW0gcG9y dCBwb3J0ID0gZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApLT5wb3J0Owo+ICsKPiArCWlmIChJU19C Uk9YVE9OKGRldikpCj4gKwkJcmV0dXJuIERQX1RSQUlOX1ZPTFRBR0VfU1dJTkdfTEVWRUxfMzsK PiArCWVsc2UgaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDkpIHsKPiArCQlpZiAoZGV2X3By aXYtPmVkcF9sb3dfdnN3aW5nICYmIHBvcnQgPT0gUE9SVF9BKQo+ICsJCQlyZXR1cm4gRFBfVFJB SU5fVk9MVEFHRV9TV0lOR19MRVZFTF8zOwo+ICsJCXJldHVybiBEUF9UUkFJTl9WT0xUQUdFX1NX SU5HX0xFVkVMXzI7Cj4gKwl9IGVsc2UgaWYgKElTX1ZBTExFWVZJRVcoZGV2KSkKPiArCQlyZXR1 cm4gRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19MRVZFTF8zOwo+ICsJZWxzZSBpZiAoSVNfR0VONyhk ZXYpICYmIHBvcnQgPT0gUE9SVF9BKQo+ICsJCXJldHVybiBEUF9UUkFJTl9WT0xUQUdFX1NXSU5H X0xFVkVMXzI7Cj4gKwllbHNlIGlmIChIQVNfUENIX0NQVChkZXYpICYmIHBvcnQgIT0gUE9SVF9B KQo+ICsJCXJldHVybiBEUF9UUkFJTl9WT0xUQUdFX1NXSU5HX0xFVkVMXzM7Cj4gKwllbHNlCj4g KwkJcmV0dXJuIERQX1RSQUlOX1ZPTFRBR0VfU1dJTkdfTEVWRUxfMjsKPiArfQo+ICsKPiArc3Rh dGljIHVpbnQ4X3QKPiAraW50ZWxfZHBfcHJlX2VtcGhhc2lzX21heChzdHJ1Y3QgaW50ZWxfZHAg KmludGVsX2RwLCB1aW50OF90IHZvbHRhZ2Vfc3dpbmcpCj4gK3sKPiArCXN0cnVjdCBkcm1fZGV2 aWNlICpkZXYgPSBpbnRlbF9kcF90b19kZXYoaW50ZWxfZHApOwo+ICsJZW51bSBwb3J0IHBvcnQg PSBkcF90b19kaWdfcG9ydChpbnRlbF9kcCktPnBvcnQ7Cj4gKwo+ICsJaWYgKElOVEVMX0lORk8o ZGV2KS0+Z2VuID49IDkpIHsKPiArCQlzd2l0Y2ggKHZvbHRhZ2Vfc3dpbmcgJiBEUF9UUkFJTl9W T0xUQUdFX1NXSU5HX01BU0spIHsKPiArCQljYXNlIERQX1RSQUlOX1ZPTFRBR0VfU1dJTkdfTEVW RUxfMDoKPiArCQkJcmV0dXJuIERQX1RSQUlOX1BSRV9FTVBIX0xFVkVMXzM7Cj4gKwkJY2FzZSBE UF9UUkFJTl9WT0xUQUdFX1NXSU5HX0xFVkVMXzE6Cj4gKwkJCXJldHVybiBEUF9UUkFJTl9QUkVf RU1QSF9MRVZFTF8yOwo+ICsJCWNhc2UgRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19MRVZFTF8yOgo+ ICsJCQlyZXR1cm4gRFBfVFJBSU5fUFJFX0VNUEhfTEVWRUxfMTsKPiArCQljYXNlIERQX1RSQUlO X1ZPTFRBR0VfU1dJTkdfTEVWRUxfMzoKPiArCQkJcmV0dXJuIERQX1RSQUlOX1BSRV9FTVBIX0xF VkVMXzA7Cj4gKwkJZGVmYXVsdDoKPiArCQkJcmV0dXJuIERQX1RSQUlOX1BSRV9FTVBIX0xFVkVM XzA7Cj4gKwkJfQo+ICsJfSBlbHNlIGlmIChJU19IQVNXRUxMKGRldikgfHwgSVNfQlJPQURXRUxM KGRldikpIHsKPiArCQlzd2l0Y2ggKHZvbHRhZ2Vfc3dpbmcgJiBEUF9UUkFJTl9WT0xUQUdFX1NX SU5HX01BU0spIHsKPiArCQljYXNlIERQX1RSQUlOX1ZPTFRBR0VfU1dJTkdfTEVWRUxfMDoKPiAr CQkJcmV0dXJuIERQX1RSQUlOX1BSRV9FTVBIX0xFVkVMXzM7Cj4gKwkJY2FzZSBEUF9UUkFJTl9W T0xUQUdFX1NXSU5HX0xFVkVMXzE6Cj4gKwkJCXJldHVybiBEUF9UUkFJTl9QUkVfRU1QSF9MRVZF TF8yOwo+ICsJCWNhc2UgRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19MRVZFTF8yOgo+ICsJCQlyZXR1 cm4gRFBfVFJBSU5fUFJFX0VNUEhfTEVWRUxfMTsKPiArCQljYXNlIERQX1RSQUlOX1ZPTFRBR0Vf U1dJTkdfTEVWRUxfMzoKPiArCQlkZWZhdWx0Ogo+ICsJCQlyZXR1cm4gRFBfVFJBSU5fUFJFX0VN UEhfTEVWRUxfMDsKPiArCQl9Cj4gKwl9IGVsc2UgaWYgKElTX1ZBTExFWVZJRVcoZGV2KSkgewo+ ICsJCXN3aXRjaCAodm9sdGFnZV9zd2luZyAmIERQX1RSQUlOX1ZPTFRBR0VfU1dJTkdfTUFTSykg ewo+ICsJCWNhc2UgRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19MRVZFTF8wOgo+ICsJCQlyZXR1cm4g RFBfVFJBSU5fUFJFX0VNUEhfTEVWRUxfMzsKPiArCQljYXNlIERQX1RSQUlOX1ZPTFRBR0VfU1dJ TkdfTEVWRUxfMToKPiArCQkJcmV0dXJuIERQX1RSQUlOX1BSRV9FTVBIX0xFVkVMXzI7Cj4gKwkJ Y2FzZSBEUF9UUkFJTl9WT0xUQUdFX1NXSU5HX0xFVkVMXzI6Cj4gKwkJCXJldHVybiBEUF9UUkFJ Tl9QUkVfRU1QSF9MRVZFTF8xOwo+ICsJCWNhc2UgRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19MRVZF TF8zOgo+ICsJCWRlZmF1bHQ6Cj4gKwkJCXJldHVybiBEUF9UUkFJTl9QUkVfRU1QSF9MRVZFTF8w Owo+ICsJCX0KPiArCX0gZWxzZSBpZiAoSVNfR0VONyhkZXYpICYmIHBvcnQgPT0gUE9SVF9BKSB7 Cj4gKwkJc3dpdGNoICh2b2x0YWdlX3N3aW5nICYgRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19NQVNL KSB7Cj4gKwkJY2FzZSBEUF9UUkFJTl9WT0xUQUdFX1NXSU5HX0xFVkVMXzA6Cj4gKwkJCXJldHVy biBEUF9UUkFJTl9QUkVfRU1QSF9MRVZFTF8yOwo+ICsJCWNhc2UgRFBfVFJBSU5fVk9MVEFHRV9T V0lOR19MRVZFTF8xOgo+ICsJCWNhc2UgRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19MRVZFTF8yOgo+ ICsJCQlyZXR1cm4gRFBfVFJBSU5fUFJFX0VNUEhfTEVWRUxfMTsKPiArCQlkZWZhdWx0Ogo+ICsJ CQlyZXR1cm4gRFBfVFJBSU5fUFJFX0VNUEhfTEVWRUxfMDsKPiArCQl9Cj4gKwl9IGVsc2Ugewo+ ICsJCXN3aXRjaCAodm9sdGFnZV9zd2luZyAmIERQX1RSQUlOX1ZPTFRBR0VfU1dJTkdfTUFTSykg ewo+ICsJCWNhc2UgRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19MRVZFTF8wOgo+ICsJCQlyZXR1cm4g RFBfVFJBSU5fUFJFX0VNUEhfTEVWRUxfMjsKPiArCQljYXNlIERQX1RSQUlOX1ZPTFRBR0VfU1dJ TkdfTEVWRUxfMToKPiArCQkJcmV0dXJuIERQX1RSQUlOX1BSRV9FTVBIX0xFVkVMXzI7Cj4gKwkJ Y2FzZSBEUF9UUkFJTl9WT0xUQUdFX1NXSU5HX0xFVkVMXzI6Cj4gKwkJCXJldHVybiBEUF9UUkFJ Tl9QUkVfRU1QSF9MRVZFTF8xOwo+ICsJCWNhc2UgRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19MRVZF TF8zOgo+ICsJCWRlZmF1bHQ6Cj4gKwkJCXJldHVybiBEUF9UUkFJTl9QUkVfRU1QSF9MRVZFTF8w Owo+ICsJCX0KPiArCX0KPiArfQo+ICsKPiAgc3RhdGljIHZvaWQKPiAgaW50ZWxfZ2V0X2FkanVz dF90cmFpbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ICAJCSAgICAgICBjb25zdCB1aW50 OF90IGxpbmtfc3RhdHVzW0RQX0xJTktfU1RBVFVTX1NJWkVdKQo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rydi5oCj4gaW5kZXggMjlhZTRiYi4uNjcxYTIwZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rydi5oCj4gQEAgLTEyMTYsMTUgKzEyMTYsMTggQEAgaW50ZWxfZHBfcHJvZ3JhbV9saW5rX3Ry YWluaW5nX3BhdHRlcm4oc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiAgdm9pZAo+ICBpbnRl bF9kcF91cGRhdGVfc2lnbmFsX2xldmVscyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKTsKPiAg dm9pZCBpbnRlbF9kcF9zZXRfaWRsZV9saW5rX3RyYWluKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxf ZHApOwo+IC11aW50OF90Cj4gLWludGVsX2RwX3ZvbHRhZ2VfbWF4KHN0cnVjdCBpbnRlbF9kcCAq aW50ZWxfZHApOwo+IC11aW50OF90Cj4gLWludGVsX2RwX3ByZV9lbXBoYXNpc19tYXgoc3RydWN0 IGludGVsX2RwICppbnRlbF9kcCwgdWludDhfdCB2b2x0YWdlX3N3aW5nKTsKPiAgdm9pZCBpbnRl bF9kcF9jb21wdXRlX3JhdGUoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgaW50IHBvcnRfY2xv Y2ssCj4gIAkJCSAgIHVpbnQ4X3QgKmxpbmtfYncsIHVpbnQ4X3QgKnJhdGVfc2VsZWN0KTsKPiAg Ym9vbCBpbnRlbF9kcF9zb3VyY2Vfc3VwcG9ydHNfaGJyMihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 KTsKPiAgYm9vbAo+ICBpbnRlbF9kcF9nZXRfbGlua19zdGF0dXMoc3RydWN0IGludGVsX2RwICpp bnRlbF9kcCwgdWludDhfdCBsaW5rX3N0YXR1c1tEUF9MSU5LX1NUQVRVU19TSVpFXSk7Cj4gK3N0 YXRpYyBpbmxpbmUgc3RydWN0IGRybV9kZXZpY2UgKmludGVsX2RwX3RvX2RldihzdHJ1Y3QgaW50 ZWxfZHAgKmludGVsX2RwKQo+ICt7Cj4gKwlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRl bF9kaWdfcG9ydCA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKTsKPiArCj4gKwlyZXR1cm4gaW50 ZWxfZGlnX3BvcnQtPmJhc2UuYmFzZS5kZXY7Cj4gK30KPiArCj4gIAo+ICAvKiBpbnRlbF9kcF9t c3QuYyAqLwo+ICBpbnQgaW50ZWxfZHBfbXN0X2VuY29kZXJfaW5pdChzdHJ1Y3QgaW50ZWxfZGln aXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwgaW50IGNvbm5faWQpOwo+IC0tIAo+IDIuNC4zCgot LSAKVmlsbGUgU3lyasOkbMOkCkludGVsIE9UQwpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2ludGVsLWdmeAo=