From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH 2/2] drm/i915: KBL - Recommended buffer translation programming for DisplayPort Date: Thu, 06 Oct 2016 10:14:18 +0300 Message-ID: <87bmyyx839.fsf@intel.com> References: <1475258757-29540-1-git-send-email-rodrigo.vivi@intel.com> <1475258757-29540-2-git-send-email-rodrigo.vivi@intel.com> <878tu5k8oe.fsf@intel.com> <1475541040.2936.23.camel@rdvivi-vienna> <87int8iog9.fsf@intel.com> <1475711990.23853.48.camel@rdvivi-vienna> 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 ESMTPS id A694F6E24B for ; Thu, 6 Oct 2016 07:14:22 +0000 (UTC) In-Reply-To: <1475711990.23853.48.camel@rdvivi-vienna> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Vivi, Rodrigo" Cc: "intel-gfx@lists.freedesktop.org" , "Runyan, Arthur J" List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCAwNiBPY3QgMjAxNiwgIlZpdmksIFJvZHJpZ28iIDxyb2RyaWdvLnZpdmlAaW50ZWwu Y29tPiB3cm90ZToKPiBPbiBUdWUsIDIwMTYtMTAtMDQgYXQgMTA6MDUgKzAzMDAsIEphbmkgTmlr dWxhIHdyb3RlOgo+PiBPbiBUdWUsIDA0IE9jdCAyMDE2LCAiVml2aSwgUm9kcmlnbyIgPHJvZHJp Z28udml2aUBpbnRlbC5jb20+IHdyb3RlOgo+PiA+IE9uIE1vbiwgMjAxNi0xMC0wMyBhdCAxMzo1 MCArMDMwMCwgSmFuaSBOaWt1bGEgd3JvdGU6Cj4+ID4+IE9uIEZyaSwgMzAgU2VwIDIwMTYsIFJv ZHJpZ28gVml2aSA8cm9kcmlnby52aXZpQGludGVsLmNvbT4gd3JvdGU6Cj4+ID4+ID4gQWNjb3Jk aW5nIHRvIHNwZWM6ICJLQkwgcmUtdXNlcyBTS0wgdmFsdWVzLCBleGNlcHQgd2hlcmUKPj4gPj4g PiBzcGVjaWZpYyBLQkwgdmFsdWVzIGFyZSBsaXN0ZWQuIgo+PiA+PiA+Cj4+ID4+ID4gQW5kIHJl Y2VudGx5IHNwZWMgaGFzIGNoYW5nZWQgYWRkaW5nIGRpZmZlcmVudCB0YWJsZSBmb3IgRGlzcGxh eSBQb3J0IG9ubHkuCj4+ID4+ID4gQnV0IGZvciBhbGwgU0tVcyAoSCxTLFUsWSkgd2UgaGF2ZSBz bGlnaHRseSBkaWZmZXJlbnQgdmFsdWVzLgo+PiA+PiA+Cj4+ID4+ID4gQ2M6IE1hbmFzaSBOYXZh cmUgPG1hbmFzaS5kLm5hdmFyZUBpbnRlbC5jb20+Cj4+ID4+ID4gQ2M6IEFydGh1ciBSdW55YW4g PGFydGh1ci5qLnJ1bnlhbkBpbnRlbC5jb20+Cj4+ID4+ID4gU2lnbmVkLW9mZi1ieTogUm9kcmln byBWaXZpIDxyb2RyaWdvLnZpdmlAaW50ZWwuY29tPgo+PiA+PiA+IC0tLQo+PiA+PiA+ICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYyB8IDg4ICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrLS0tLS0KPj4gPj4gPiAgMSBmaWxlIGNoYW5nZWQsIDc4IGluc2VydGlvbnMo KyksIDEwIGRlbGV0aW9ucygtKQo+PiA+PiA+Cj4+ID4+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RkaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRp LmMKPj4gPj4gPiBpbmRleCAwMTg5NjRiLi4xNTczMzYwIDEwMDY0NAo+PiA+PiA+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4+ID4+ID4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGRpLmMKPj4gPj4gPiBAQCAtMTY3LDggKzE2Nyw0NyBAQCBzdGF0aWMg Y29uc3Qgc3RydWN0IGRkaV9idWZfdHJhbnMgc2tsX3lfZGRpX3RyYW5zbGF0aW9uc19kcFtdID0g ewo+PiA+PiA+ICAJeyAweDgwMDA1MDEyLCAweDAwMDAwMEMwLCAweDMgfSwKPj4gPj4gPiAgfTsK Pj4gPj4gPiAgCj4+ID4+ID4gKy8qIEthYnlsYWtlIEggYW5kIFMgKi8KPj4gPj4gPiArc3RhdGlj IGNvbnN0IHN0cnVjdCBkZGlfYnVmX3RyYW5zIGtibF9kZGlfdHJhbnNsYXRpb25zX2RwW10gPSB7 Cj4+ID4+ID4gKwl7IDB4MDAwMDIwMTYsIDB4MDAwMDAwQTAsIDB4MCB9LAo+PiA+PiA+ICsJeyAw eDAwMDA1MDEyLCAweDAwMDAwMDlCLCAweDAgfSwKPj4gPj4gPiArCXsgMHgwMDAwNzAxMSwgMHgw MDAwMDA4OCwgMHgwIH0sCj4+ID4+ID4gKwl7IDB4ODAwMDkwMTAsIDB4MDAwMDAwQzAsIDB4MSB9 LAo+PiA+PiA+ICsJeyAweDAwMDAyMDE2LCAweDAwMDAwMDlCLCAweDAgfSwKPj4gPj4gPiArCXsg MHgwMDAwNTAxMiwgMHgwMDAwMDA4OCwgMHgwIH0sCj4+ID4+ID4gKwl7IDB4ODAwMDcwMTEsIDB4 MDAwMDAwQzAsIDB4MSB9LAo+PiA+PiA+ICsJeyAweDAwMDAyMDE2LCAweDAwMDAwMDlGLCAweDAg fSwKPj4gPj4gPiArCXsgMHg4MDAwNTAxMiwgMHgwMDAwMDBDMCwgMHgxIH0sCj4+ID4+ID4gK307 Cj4+ID4+ID4gKwo+PiA+PiA+ICsvKiBLYWJ5bGFrZSBVICovCj4+ID4+ID4gK3N0YXRpYyBjb25z dCBzdHJ1Y3QgZGRpX2J1Zl90cmFucyBrYmxfdV9kZGlfdHJhbnNsYXRpb25zX2RwW10gPSB7Cj4+ ID4+ID4gKwl7IDB4MDAwMDIwMUIsIDB4MDAwMDAwQTEsIDB4MCB9LAo+PiA+PiA+ICsJeyAweDAw MDA1MDEyLCAweDAwMDAwMDg4LCAweDAgfSwKPj4gPj4gPiArCXsgMHg4MDAwNzAxMSwgMHgwMDAw MDBDRCwgMHgzIH0sCj4+ID4+ID4gKwl7IDB4ODAwMDkwMTAsIDB4MDAwMDAwQzAsIDB4MyB9LAo+ PiA+PiA+ICsJeyAweDAwMDAyMDFCLCAweDAwMDAwMDlELCAweDAgfSwKPj4gPj4gPiArCXsgMHg4 MDAwNTAxMiwgMHgwMDAwMDBDMCwgMHgzIH0sCj4+ID4+ID4gKwl7IDB4ODAwMDcwMTEsIDB4MDAw MDAwQzAsIDB4MyB9LAo+PiA+PiA+ICsJeyAweDAwMDAyMDE2LCAweDAwMDAwMDRGLCAweDAgfSwK Pj4gPj4gPiArCXsgMHg4MDAwNTAxMiwgMHgwMDAwMDBDMCwgMHgzIH0sCj4+ID4+ID4gK307Cj4+ ID4+ID4gKwo+PiA+PiA+ICsvKiBLYWJ5bGFrZSBZICovCj4+ID4+ID4gK3N0YXRpYyBjb25zdCBz dHJ1Y3QgZGRpX2J1Zl90cmFucyBrYmxfeV9kZGlfdHJhbnNsYXRpb25zX2RwW10gPSB7Cj4+ID4+ ID4gKwl7IDB4MDAwMDEwMTcsIDB4MDAwMDAwQTEsIDB4MCB9LAo+PiA+PiA+ICsJeyAweDAwMDA1 MDEyLCAweDAwMDAwMDg4LCAweDAgfSwKPj4gPj4gPiArCXsgMHg4MDAwNzAxMSwgMHgwMDAwMDBD RCwgMHgzIH0sCj4+ID4+ID4gKwl7IDB4ODAwMDgwMEYsIDB4MDAwMDAwQzAsIDB4MyB9LAo+PiA+ PiA+ICsJeyAweDAwMDAxMDE3LCAweDAwMDAwMDlELCAweDAgfSwKPj4gPj4gPiArCXsgMHg4MDAw NTAxMiwgMHgwMDAwMDBDMCwgMHgzIH0sCj4+ID4+ID4gKwl7IDB4ODAwMDcwMTEsIDB4MDAwMDAw QzAsIDB4MyB9LAo+PiA+PiA+ICsJeyAweDAwMDAxMDE3LCAweDAwMDAwMDRDLCAweDAgfSwKPj4g Pj4gPiArCXsgMHg4MDAwNTAxMiwgMHgwMDAwMDBDMCwgMHgzIH0sCj4+ID4+ID4gK307Cj4+ID4+ ID4gKwo+PiA+PiA+ICAvKgo+PiA+PiA+IC0gKiBTa3lsYWtlIEggYW5kIFMKPj4gPj4gPiArICog U2t5bGFrZS9LYWJ5bGFrZSBIIGFuZCBTCj4+ID4+ID4gICAqIGVEUCAxLjQgbG93IHZzd2luZyB0 cmFuc2xhdGlvbiBwYXJhbWV0ZXJzCj4+ID4+ID4gICAqLwo+PiA+PiA+ICBzdGF0aWMgY29uc3Qg c3RydWN0IGRkaV9idWZfdHJhbnMgc2tsX2RkaV90cmFuc2xhdGlvbnNfZWRwW10gPSB7Cj4+ID4+ ID4gQEAgLTE4NSw3ICsyMjQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRkaV9idWZfdHJhbnMg c2tsX2RkaV90cmFuc2xhdGlvbnNfZWRwW10gPSB7Cj4+ID4+ID4gIH07Cj4+ID4+ID4gIAo+PiA+ PiA+ICAvKgo+PiA+PiA+IC0gKiBTa3lsYWtlIFUKPj4gPj4gPiArICogU2t5bGFrZS9LYWJ5bGFr ZSBVCj4+ID4+ID4gICAqIGVEUCAxLjQgbG93IHZzd2luZyB0cmFuc2xhdGlvbiBwYXJhbWV0ZXJz Cj4+ID4+ID4gICAqLwo+PiA+PiA+ICBzdGF0aWMgY29uc3Qgc3RydWN0IGRkaV9idWZfdHJhbnMg c2tsX3VfZGRpX3RyYW5zbGF0aW9uc19lZHBbXSA9IHsKPj4gPj4gPiBAQCAtMjAyLDcgKzI0MSw3 IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZGRpX2J1Zl90cmFucyBza2xfdV9kZGlfdHJhbnNsYXRp b25zX2VkcFtdID0gewo+PiA+PiA+ICB9Owo+PiA+PiA+ICAKPj4gPj4gPiAgLyoKPj4gPj4gPiAt ICogU2t5bGFrZSBZCj4+ID4+ID4gKyAqIFNreWxha2UvS2FieWxha2UgWQo+PiA+PiA+ICAgKiBl RFAgMS40IGxvdyB2c3dpbmcgdHJhbnNsYXRpb24gcGFyYW1ldGVycwo+PiA+PiA+ICAgKi8KPj4g Pj4gPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBkZGlfYnVmX3RyYW5zIHNrbF95X2RkaV90cmFuc2xh dGlvbnNfZWRwW10gPSB7Cj4+ID4+ID4gQEAgLTIxOCw3ICsyNTcsNyBAQCBzdGF0aWMgY29uc3Qg c3RydWN0IGRkaV9idWZfdHJhbnMgc2tsX3lfZGRpX3RyYW5zbGF0aW9uc19lZHBbXSA9IHsKPj4g Pj4gPiAgCXsgMHgwMDAwMDAxOCwgMHgwMDAwMDA4QSwgMHgwIH0sCj4+ID4+ID4gIH07Cj4+ID4+ ID4gIAo+PiA+PiA+IC0vKiBTa3lsYWtlIFUsIEggYW5kIFMgKi8KPj4gPj4gPiArLyogU2t5bGFr ZS9LYWJ5bGFrZSBVLCBIIGFuZCBTICovCj4+ID4+ID4gIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZGRp X2J1Zl90cmFucyBza2xfZGRpX3RyYW5zbGF0aW9uc19oZG1pW10gPSB7Cj4+ID4+ID4gIAl7IDB4 MDAwMDAwMTgsIDB4MDAwMDAwQUMsIDB4MCB9LAo+PiA+PiA+ICAJeyAweDAwMDA1MDEyLCAweDAw MDAwMDlELCAweDAgfSwKPj4gPj4gPiBAQCAtMjMzLDcgKzI3Miw3IEBAIHN0YXRpYyBjb25zdCBz dHJ1Y3QgZGRpX2J1Zl90cmFucyBza2xfZGRpX3RyYW5zbGF0aW9uc19oZG1pW10gPSB7Cj4+ID4+ ID4gIAl7IDB4ODAwMDAwMTgsIDB4MDAwMDAwQzAsIDB4MSB9LAo+PiA+PiA+ICB9Owo+PiA+PiA+ ICAKPj4gPj4gPiAtLyogU2t5bGFrZSBZICovCj4+ID4+ID4gKy8qIFNreWxha2UvS2FieWxha2Ug WSAqLwo+PiA+PiA+ICBzdGF0aWMgY29uc3Qgc3RydWN0IGRkaV9idWZfdHJhbnMgc2tsX3lfZGRp X3RyYW5zbGF0aW9uc19oZG1pW10gPSB7Cj4+ID4+ID4gIAl7IDB4MDAwMDAwMTgsIDB4MDAwMDAw QTEsIDB4MCB9LAo+PiA+PiA+ICAJeyAweDAwMDA1MDEyLCAweDAwMDAwMERGLCAweDAgfSwKPj4g Pj4gPiBAQCAtMzM0LDEwICszNzMsMTAgQEAgYmR3X2dldF9idWZfdHJhbnNfZWRwKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgaW50ICpuX2VudHJpZXMpCj4+ID4+ID4gIHN0YXRp YyBjb25zdCBzdHJ1Y3QgZGRpX2J1Zl90cmFucyAqCj4+ID4+ID4gIHNrbF9nZXRfYnVmX3RyYW5z X2RwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgaW50ICpuX2VudHJpZXMpCj4+ ID4+ID4gIHsKPj4gPj4gPiAtCWlmIChJU19TS0xfVUxYKGRldl9wcml2KSB8fCBJU19LQkxfVUxY KGRldl9wcml2KSkgewo+PiA+PiA+ICsJaWYgKElTX1NLTF9VTFgoZGV2X3ByaXYpKSB7Cj4+ID4+ ID4gIAkJKm5fZW50cmllcyA9IEFSUkFZX1NJWkUoc2tsX3lfZGRpX3RyYW5zbGF0aW9uc19kcCk7 Cj4+ID4+ID4gIAkJcmV0dXJuIHNrbF95X2RkaV90cmFuc2xhdGlvbnNfZHA7Cj4+ID4+ID4gLQl9 IGVsc2UgaWYgKElTX1NLTF9VTFQoZGV2X3ByaXYpIHx8IElTX0tCTF9VTFQoZGV2X3ByaXYpKSB7 Cj4+ID4+ID4gKwl9IGVsc2UgaWYgKElTX1NLTF9VTFQoZGV2X3ByaXYpKSB7Cj4+ID4+ID4gIAkJ Km5fZW50cmllcyA9IEFSUkFZX1NJWkUoc2tsX3VfZGRpX3RyYW5zbGF0aW9uc19kcCk7Cj4+ID4+ ID4gIAkJcmV0dXJuIHNrbF91X2RkaV90cmFuc2xhdGlvbnNfZHA7Cj4+ID4+ID4gIAl9IGVsc2Ug ewo+PiA+PiA+IEBAIC0zNDcsNiArMzg2LDIxIEBAIHNrbF9nZXRfYnVmX3RyYW5zX2RwKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgaW50ICpuX2VudHJpZXMpCj4+ID4+ID4gIH0K Pj4gPj4gPiAgCj4+ID4+ID4gIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZGRpX2J1Zl90cmFucyAqCj4+ ID4+ID4gK2tibF9nZXRfYnVmX3RyYW5zX2RwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwgaW50ICpuX2VudHJpZXMpCj4+ID4+ID4gK3sKPj4gPj4gPiArCWlmIChJU19LQkxfVUxY KGRldl9wcml2KSkgewo+PiA+PiA+ICsJCSpuX2VudHJpZXMgPSBBUlJBWV9TSVpFKGtibF95X2Rk aV90cmFuc2xhdGlvbnNfZHApOwo+PiA+PiA+ICsJCXJldHVybiBrYmxfeV9kZGlfdHJhbnNsYXRp b25zX2RwOwo+PiA+PiA+ICsJfSBlbHNlIGlmIChJU19LQkxfVUxUKGRldl9wcml2KSkgewo+PiA+ PiA+ICsJCSpuX2VudHJpZXMgPSBBUlJBWV9TSVpFKGtibF91X2RkaV90cmFuc2xhdGlvbnNfZHAp Owo+PiA+PiA+ICsJCXJldHVybiBrYmxfdV9kZGlfdHJhbnNsYXRpb25zX2RwOwo+PiA+PiA+ICsJ fSBlbHNlIHsKPj4gPj4gPiArCQkqbl9lbnRyaWVzID0gQVJSQVlfU0laRShrYmxfZGRpX3RyYW5z bGF0aW9uc19kcCk7Cj4+ID4+ID4gKwkJcmV0dXJuIGtibF9kZGlfdHJhbnNsYXRpb25zX2RwOwo+ PiA+PiA+ICsJfQo+PiA+PiA+ICt9Cj4+ID4+ID4gKwo+PiA+PiA+ICtzdGF0aWMgY29uc3Qgc3Ry dWN0IGRkaV9idWZfdHJhbnMgKgo+PiA+PiA+ICBza2xfZ2V0X2J1Zl90cmFuc19lZHAoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBpbnQgKm5fZW50cmllcykKPj4gPj4gPiAgewo+ PiA+PiA+ICAJaWYgKGRldl9wcml2LT52YnQuZWRwLmxvd192c3dpbmcpIHsKPj4gPj4gPiBAQCAt MzYyLDcgKzQxNiwxMCBAQCBza2xfZ2V0X2J1Zl90cmFuc19lZHAoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LCBpbnQgKm5fZW50cmllcykKPj4gPj4gPiAgCQl9Cj4+ID4+ID4gIAl9 Cj4+ID4+ID4gIAo+PiA+PiA+IC0JcmV0dXJuIHNrbF9nZXRfYnVmX3RyYW5zX2RwKGRldl9wcml2 LCBuX2VudHJpZXMpOwo+PiA+PiA+ICsJaWYgKGRldl9wcml2LT52YnQuZWRwLmxvd192c3dpbmcp Cj4+ID4+ID4gKwkJcmV0dXJuIGtibF9nZXRfYnVmX3RyYW5zX2RwKGRldl9wcml2LCBuX2VudHJp ZXMpOwo+PiA+PiA+ICsJZWxzZQo+PiA+PiA+ICsJCXJldHVybiBza2xfZ2V0X2J1Zl90cmFuc19k cChkZXZfcHJpdiwgbl9lbnRyaWVzKTsKPj4gPj4gCj4+ID4+IFRoaXMgc2VlbXMgcmVhbGx5IGNv bmZ1c2luZy4KPj4gPgo+PiA+IEkgYWdyZWUsIGJ1dCBJIHdvdWxkIGxpa2UgdG8gYXZvaWQgZHVw bGljYXRpbmcgdGhlIGlkZW50aWNhbCB0YWJsZXMuLi4KPj4gPiB0aG9zZSBieSBzcGVjIGFyZSBl eHBsaWNpdGx5IHNhbWUgdGFibGUuLi4KPj4gPgo+PiA+IGFub3RoZXIgb3B0aW9uIHdpdGhvdXQg ZHVwbGljYXRpbmcgdGhlIHRhYmxlcyBpcyBkdXBsaWNhdGluZyB0aGUKPj4gPiBmdW5jdGlvbiBs aWtlIGJlbG93Li4uIHdoYXQgSSBiZWxpZXZlIGl0IGlzIHN0aWxsIGNvbmZ1c2luZyB3aXRoIGFs bAo+PiA+IHRob3NlIHNrbCBhbmQga2JsIGluc2lkZSB0aGlzIGZ1bmN0aW9uLi4uCj4+ID4KPj4g PiB3aGF0IGRvIHlvdSBwcmVmZXI/Cj4+IAo+PiBUaGUgdGhpbmcgdGhhdCBidWdzIG1lIGhlcmUg aXMgdGhhdCB5b3UgbWF5IHJldHVybiBrbGJfc29tZXRoaW5nIG9uCj4+IHNrbC4gV2UgcmV1c2Ug cGxlbnR5IG9mIG9sZGVyIGdlbiBzdHVmZiBmb3IgbmV3ZXIgZ2VucywgYnV0IHRoaXMgYmVpbmcK Pj4gdGhlIG90aGVyIHdheSByb3VuZCBpcyB0aGUgY29uZnVzaW5nIHBhcnQuCj4KPgo+IE5vLCBp dCBpcyBub3QgdGhlIG90aGVyIHdheSBhcm91bmQuCj4KPiB3ZSBoYXZlIG1hbnkgY2FzZXMgb2Y6 Cj4gdm9pZCBvbGRfZnVuY3Rpb24oKSB7Cj4gSVNfTkVXRVIoKQo+IAlkb19zb21ldGhpbmcoKTsK PiAvKm9sZCBjb2xkZSovCj4gfQoKSXQncyBva2F5IGlmIHlvdSBleHBsaWNpdGx5IGRvIGl0IGxp a2UgdGhpcywgYnV0IGluIHlvdXIgcGF0Y2ggdGhlCmNvbmRpdGlvbiBpcyBlZHAgbG93X3Zzd2lu Zywgbm90IHBsYXRmb3JtLgoKQlIsCkphbmkuCgoKPgo+IE90aGVyIHdheSBhcm91bmQgZm9yIG1l IHdvdWxkIGJlCj4gYSBrYmwgZnVuY3Rpb24gd2l0aCBJU19TS1lMQUtFIGluc2lkZS4uLgo+Cj4g QnV0IEkgdW5kZXJzdGFuZCB3aGF0IGJ1Z3MgeW91LiBJJ20gYWxzbyBub3QgY29udmluY2VkIHRo aXMgb3B0aW9uIGhlcmUKPiBpcyB0aGUgYmVzdCBvbmUsIGJ1dCB0aGlzIGlzIHRoZSBtaW5pbWFs IGR1cGxpY2F0aW9uIG9mIGNvZGUuCj4KPiBUaGUgc2Vjb25kIG9wdGlvbiBpcyB0byBoYXZlIHRv IGRpZmZlcmVudCBmdW5jdGlvbnMgYWxtb3N0IGlkZW50aWNhbCBvbmUKPiBmb3Igc2tsIGFuZCBv bmUgZm9yIGtibCBhbmQgdGhlIHRoaXJkIG9uZSBkdXBsaWNhdGluZyBldmVuIHRoZSB0YWJsZXMu Cj4KPiBXZSBqdXN0IG5lZWQgdG8gZGVjaWRlIHdoYXQgbGV2ZWwgb2YgZHVwbGljYXRpb24gd291 bGQgYmUgb2suCj4KPj4gIFNvIGp1c3QgY2FsbCBpdAo+PiBza2xfc29tZXRoaW5nLCBhbmQgcmV1 c2UgaW4ga2JsPwo+PiAKPj4gQlIsCj4+IEphbmkuCj4+IAo+PiAKPj4gPgo+PiA+IHN0YXRpYyBj b25zdCBzdHJ1Y3QgZGRpX2J1Zl90cmFucwo+PiA+ICogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIAo+PiA+IGtibF9nZXRfYnVmX3RyYW5zX2VkcChzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsIGludAo+PiA+ICpuX2VudHJpZXMpICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo+PiA+IHsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPj4g PiAgICAgICAgIGlmIChkZXZfcHJpdi0+dmJ0LmVkcC5sb3dfdnN3aW5nKQo+PiA+IHsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAKPj4gPiAgICAgICAgICAgICAgICAgaWYgKElTX0tCTF9VTFgo ZGV2X3ByaXYpKQo+PiA+IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAKPj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAqbl9lbnRy aWVzID0KPj4gPiBBUlJBWV9TSVpFKHNrbF95X2RkaV90cmFuc2xhdGlvbnNfZWRwKTsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPj4gPiAgICAgICAg ICAgICAgICAgICAgICAgICByZXR1cm4KPj4gPiBza2xfeV9kZGlfdHJhbnNsYXRpb25zX2VkcDsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAKPj4gPiAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChJU19LQkxfVUxUKGRl dl9wcml2KSkKPj4gPiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAKPj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAqbl9lbnRyaWVzID0KPj4g PiBBUlJBWV9TSVpFKHNrbF91X2RkaV90cmFuc2xhdGlvbnNfZWRwKTsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPj4gPiAgICAgICAgICAgICAgICAg ICAgICAgICByZXR1cm4KPj4gPiBza2xfdV9kZGlfdHJhbnNsYXRpb25zX2VkcDsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAKPj4gPiAgICAgICAgICAgICAgICAgfSBlbHNlCj4+ID4geyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAKPj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAq bl9lbnRyaWVzID0KPj4gPiBBUlJBWV9TSVpFKHNrbF9kZGlfdHJhbnNsYXRpb25zX2VkcCk7ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPj4gPiAg ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4KPj4gPiBza2xfZGRpX3RyYW5zbGF0aW9uc19l ZHA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAKPj4gPiAgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCj4+ID4gICAgICAgICB9ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo+ PiA+ICAgICAgICAgcmV0dXJuIGtibF9nZXRfYnVmX3RyYW5zX2RwKGRldl9wcml2LAo+PiA+IG5f ZW50cmllcyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIAo+PiA+IH0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo+PiA+Cj4+ID4KPj4gPgo+PiA+Cj4+ ID4+IAo+PiA+PiBCUiwKPj4gPj4gSmFuaS4KPj4gPj4gCj4+ID4+IAo+PiA+PiA+ICB9Cj4+ID4+ ID4gIAo+PiA+PiA+ICBzdGF0aWMgY29uc3Qgc3RydWN0IGRkaV9idWZfdHJhbnMgKgo+PiA+PiA+ IEBAIC00MzAsNyArNDg3LDEzIEBAIHZvaWQgaW50ZWxfcHJlcGFyZV9kcF9kZGlfYnVmZmVycyhz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPj4gPj4gPiAgCWlmIChJU19CUk9YVE9OKGRl dl9wcml2KSkKPj4gPj4gPiAgCQlyZXR1cm47Cj4+ID4+ID4gIAo+PiA+PiA+IC0JaWYgKElTX1NL WUxBS0UoZGV2X3ByaXYpIHx8IElTX0tBQllMQUtFKGRldl9wcml2KSkgewo+PiA+PiA+ICsJaWYg KElTX0tBQllMQUtFKGRldl9wcml2KSkgewo+PiA+PiA+ICsJCWRkaV90cmFuc2xhdGlvbnNfZmRp ID0gTlVMTDsKPj4gPj4gPiArCQlkZGlfdHJhbnNsYXRpb25zX2RwID0KPj4gPj4gPiArCQkJCWti bF9nZXRfYnVmX3RyYW5zX2RwKGRldl9wcml2LCAmbl9kcF9lbnRyaWVzKTsKPj4gPj4gPiArCQlk ZGlfdHJhbnNsYXRpb25zX2VkcCA9Cj4+ID4+ID4gKwkJCQlza2xfZ2V0X2J1Zl90cmFuc19lZHAo ZGV2X3ByaXYsICZuX2VkcF9lbnRyaWVzKTsKPj4gPj4gPiArCX0gZWxzZSBpZiAoSVNfU0tZTEFL RShkZXZfcHJpdikpIHsKPj4gPj4gPiAgCQlkZGlfdHJhbnNsYXRpb25zX2ZkaSA9IE5VTEw7Cj4+ ID4+ID4gIAkJZGRpX3RyYW5zbGF0aW9uc19kcCA9Cj4+ID4+ID4gIAkJCQlza2xfZ2V0X2J1Zl90 cmFuc19kcChkZXZfcHJpdiwgJm5fZHBfZW50cmllcyk7Cj4+ID4+ID4gQEAgLTE0MzcsNyArMTUw MCwxMiBAQCBzdGF0aWMgdm9pZCBza2xfZGRpX3NldF9pYm9vc3Qoc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXIsIHUzMiBsZXZlbCkKPj4gPj4gPiAgCQlpZiAoZHBfaWJvb3N0KSB7Cj4+ID4+ ID4gIAkJCWlib29zdCA9IGRwX2lib29zdDsKPj4gPj4gPiAgCQl9IGVsc2Ugewo+PiA+PiA+IC0J CQlkZGlfdHJhbnNsYXRpb25zID0gc2tsX2dldF9idWZfdHJhbnNfZHAoZGV2X3ByaXYsICZuX2Vu dHJpZXMpOwo+PiA+PiA+ICsJCQlpZiAoSVNfS0FCWUxBS0UoZGV2X3ByaXYpKQo+PiA+PiA+ICsJ CQkJZGRpX3RyYW5zbGF0aW9ucyA9IGtibF9nZXRfYnVmX3RyYW5zX2RwKGRldl9wcml2LAo+PiA+ PiA+ICsJCQkJCQkJCQkmbl9lbnRyaWVzKTsKPj4gPj4gPiArCQkJZWxzZQo+PiA+PiA+ICsJCQkJ ZGRpX3RyYW5zbGF0aW9ucyA9IHNrbF9nZXRfYnVmX3RyYW5zX2RwKGRldl9wcml2LAo+PiA+PiA+ ICsJCQkJCQkJCQkmbl9lbnRyaWVzKTsKPj4gPj4gPiAgCQkJaWJvb3N0ID0gZGRpX3RyYW5zbGF0 aW9uc1tsZXZlbF0uaV9ib29zdDsKPj4gPj4gPiAgCQl9Cj4+ID4+ID4gIAl9IGVsc2UgaWYgKHR5 cGUgPT0gSU5URUxfT1VUUFVUX0VEUCkgewo+PiA+PiAKPj4gPgo+PiAKPgoKLS0gCkphbmkgTmlr dWxhLCBJbnRlbCBPcGVuIFNvdXJjZSBUZWNobm9sb2d5IENlbnRlcgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0Cklu dGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK