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: Tue, 04 Oct 2016 10:05:26 +0300 Message-ID: <87int8iog9.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> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1CC066E052 for ; Tue, 4 Oct 2016 07:05:53 +0000 (UTC) In-Reply-To: <1475541040.2936.23.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 T24gVHVlLCAwNCBPY3QgMjAxNiwgIlZpdmksIFJvZHJpZ28iIDxyb2RyaWdvLnZpdmlAaW50ZWwu Y29tPiB3cm90ZToKPiBPbiBNb24sIDIwMTYtMTAtMDMgYXQgMTM6NTAgKzAzMDAsIEphbmkgTmlr dWxhIHdyb3RlOgo+PiBPbiBGcmksIDMwIFNlcCAyMDE2LCBSb2RyaWdvIFZpdmkgPHJvZHJpZ28u dml2aUBpbnRlbC5jb20+IHdyb3RlOgo+PiA+IEFjY29yZGluZyB0byBzcGVjOiAiS0JMIHJlLXVz ZXMgU0tMIHZhbHVlcywgZXhjZXB0IHdoZXJlCj4+ID4gc3BlY2lmaWMgS0JMIHZhbHVlcyBhcmUg bGlzdGVkLiIKPj4gPgo+PiA+IEFuZCByZWNlbnRseSBzcGVjIGhhcyBjaGFuZ2VkIGFkZGluZyBk aWZmZXJlbnQgdGFibGUgZm9yIERpc3BsYXkgUG9ydCBvbmx5Lgo+PiA+IEJ1dCBmb3IgYWxsIFNL VXMgKEgsUyxVLFkpIHdlIGhhdmUgc2xpZ2h0bHkgZGlmZmVyZW50IHZhbHVlcy4KPj4gPgo+PiA+ IENjOiBNYW5hc2kgTmF2YXJlIDxtYW5hc2kuZC5uYXZhcmVAaW50ZWwuY29tPgo+PiA+IENjOiBB cnRodXIgUnVueWFuIDxhcnRodXIuai5ydW55YW5AaW50ZWwuY29tPgo+PiA+IFNpZ25lZC1vZmYt Ynk6IFJvZHJpZ28gVml2aSA8cm9kcmlnby52aXZpQGludGVsLmNvbT4KPj4gPiAtLS0KPj4gPiAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMgfCA4OCArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKy0tLS0tCj4+ID4gIDEgZmlsZSBjaGFuZ2VkLCA3OCBpbnNlcnRpb25z KCspLCAxMCBkZWxldGlvbnMoLSkKPj4gPgo+PiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kZGkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4+ ID4gaW5kZXggMDE4OTY0Yi4uMTU3MzM2MCAxMDA2NDQKPj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kZGkuYwo+PiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2RkaS5jCj4+ID4gQEAgLTE2Nyw4ICsxNjcsNDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkZGlf YnVmX3RyYW5zIHNrbF95X2RkaV90cmFuc2xhdGlvbnNfZHBbXSA9IHsKPj4gPiAgCXsgMHg4MDAw NTAxMiwgMHgwMDAwMDBDMCwgMHgzIH0sCj4+ID4gIH07Cj4+ID4gIAo+PiA+ICsvKiBLYWJ5bGFr ZSBIIGFuZCBTICovCj4+ID4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZGRpX2J1Zl90cmFucyBrYmxf ZGRpX3RyYW5zbGF0aW9uc19kcFtdID0gewo+PiA+ICsJeyAweDAwMDAyMDE2LCAweDAwMDAwMEEw LCAweDAgfSwKPj4gPiArCXsgMHgwMDAwNTAxMiwgMHgwMDAwMDA5QiwgMHgwIH0sCj4+ID4gKwl7 IDB4MDAwMDcwMTEsIDB4MDAwMDAwODgsIDB4MCB9LAo+PiA+ICsJeyAweDgwMDA5MDEwLCAweDAw MDAwMEMwLCAweDEgfSwKPj4gPiArCXsgMHgwMDAwMjAxNiwgMHgwMDAwMDA5QiwgMHgwIH0sCj4+ ID4gKwl7IDB4MDAwMDUwMTIsIDB4MDAwMDAwODgsIDB4MCB9LAo+PiA+ICsJeyAweDgwMDA3MDEx LCAweDAwMDAwMEMwLCAweDEgfSwKPj4gPiArCXsgMHgwMDAwMjAxNiwgMHgwMDAwMDA5RiwgMHgw IH0sCj4+ID4gKwl7IDB4ODAwMDUwMTIsIDB4MDAwMDAwQzAsIDB4MSB9LAo+PiA+ICt9Owo+PiA+ ICsKPj4gPiArLyogS2FieWxha2UgVSAqLwo+PiA+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGRkaV9i dWZfdHJhbnMga2JsX3VfZGRpX3RyYW5zbGF0aW9uc19kcFtdID0gewo+PiA+ICsJeyAweDAwMDAy MDFCLCAweDAwMDAwMEExLCAweDAgfSwKPj4gPiArCXsgMHgwMDAwNTAxMiwgMHgwMDAwMDA4OCwg MHgwIH0sCj4+ID4gKwl7IDB4ODAwMDcwMTEsIDB4MDAwMDAwQ0QsIDB4MyB9LAo+PiA+ICsJeyAw eDgwMDA5MDEwLCAweDAwMDAwMEMwLCAweDMgfSwKPj4gPiArCXsgMHgwMDAwMjAxQiwgMHgwMDAw MDA5RCwgMHgwIH0sCj4+ID4gKwl7IDB4ODAwMDUwMTIsIDB4MDAwMDAwQzAsIDB4MyB9LAo+PiA+ ICsJeyAweDgwMDA3MDExLCAweDAwMDAwMEMwLCAweDMgfSwKPj4gPiArCXsgMHgwMDAwMjAxNiwg MHgwMDAwMDA0RiwgMHgwIH0sCj4+ID4gKwl7IDB4ODAwMDUwMTIsIDB4MDAwMDAwQzAsIDB4MyB9 LAo+PiA+ICt9Owo+PiA+ICsKPj4gPiArLyogS2FieWxha2UgWSAqLwo+PiA+ICtzdGF0aWMgY29u c3Qgc3RydWN0IGRkaV9idWZfdHJhbnMga2JsX3lfZGRpX3RyYW5zbGF0aW9uc19kcFtdID0gewo+ PiA+ICsJeyAweDAwMDAxMDE3LCAweDAwMDAwMEExLCAweDAgfSwKPj4gPiArCXsgMHgwMDAwNTAx MiwgMHgwMDAwMDA4OCwgMHgwIH0sCj4+ID4gKwl7IDB4ODAwMDcwMTEsIDB4MDAwMDAwQ0QsIDB4 MyB9LAo+PiA+ICsJeyAweDgwMDA4MDBGLCAweDAwMDAwMEMwLCAweDMgfSwKPj4gPiArCXsgMHgw MDAwMTAxNywgMHgwMDAwMDA5RCwgMHgwIH0sCj4+ID4gKwl7IDB4ODAwMDUwMTIsIDB4MDAwMDAw QzAsIDB4MyB9LAo+PiA+ICsJeyAweDgwMDA3MDExLCAweDAwMDAwMEMwLCAweDMgfSwKPj4gPiAr CXsgMHgwMDAwMTAxNywgMHgwMDAwMDA0QywgMHgwIH0sCj4+ID4gKwl7IDB4ODAwMDUwMTIsIDB4 MDAwMDAwQzAsIDB4MyB9LAo+PiA+ICt9Owo+PiA+ICsKPj4gPiAgLyoKPj4gPiAtICogU2t5bGFr ZSBIIGFuZCBTCj4+ID4gKyAqIFNreWxha2UvS2FieWxha2UgSCBhbmQgUwo+PiA+ICAgKiBlRFAg MS40IGxvdyB2c3dpbmcgdHJhbnNsYXRpb24gcGFyYW1ldGVycwo+PiA+ICAgKi8KPj4gPiAgc3Rh dGljIGNvbnN0IHN0cnVjdCBkZGlfYnVmX3RyYW5zIHNrbF9kZGlfdHJhbnNsYXRpb25zX2VkcFtd ID0gewo+PiA+IEBAIC0xODUsNyArMjI0LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkZGlfYnVm X3RyYW5zIHNrbF9kZGlfdHJhbnNsYXRpb25zX2VkcFtdID0gewo+PiA+ICB9Owo+PiA+ICAKPj4g PiAgLyoKPj4gPiAtICogU2t5bGFrZSBVCj4+ID4gKyAqIFNreWxha2UvS2FieWxha2UgVQo+PiA+ ICAgKiBlRFAgMS40IGxvdyB2c3dpbmcgdHJhbnNsYXRpb24gcGFyYW1ldGVycwo+PiA+ICAgKi8K Pj4gPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBkZGlfYnVmX3RyYW5zIHNrbF91X2RkaV90cmFuc2xh dGlvbnNfZWRwW10gPSB7Cj4+ID4gQEAgLTIwMiw3ICsyNDEsNyBAQCBzdGF0aWMgY29uc3Qgc3Ry dWN0IGRkaV9idWZfdHJhbnMgc2tsX3VfZGRpX3RyYW5zbGF0aW9uc19lZHBbXSA9IHsKPj4gPiAg fTsKPj4gPiAgCj4+ID4gIC8qCj4+ID4gLSAqIFNreWxha2UgWQo+PiA+ICsgKiBTa3lsYWtlL0th YnlsYWtlIFkKPj4gPiAgICogZURQIDEuNCBsb3cgdnN3aW5nIHRyYW5zbGF0aW9uIHBhcmFtZXRl cnMKPj4gPiAgICovCj4+ID4gIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZGRpX2J1Zl90cmFucyBza2xf eV9kZGlfdHJhbnNsYXRpb25zX2VkcFtdID0gewo+PiA+IEBAIC0yMTgsNyArMjU3LDcgQEAgc3Rh dGljIGNvbnN0IHN0cnVjdCBkZGlfYnVmX3RyYW5zIHNrbF95X2RkaV90cmFuc2xhdGlvbnNfZWRw W10gPSB7Cj4+ID4gIAl7IDB4MDAwMDAwMTgsIDB4MDAwMDAwOEEsIDB4MCB9LAo+PiA+ICB9Owo+ PiA+ICAKPj4gPiAtLyogU2t5bGFrZSBVLCBIIGFuZCBTICovCj4+ID4gKy8qIFNreWxha2UvS2Fi eWxha2UgVSwgSCBhbmQgUyAqLwo+PiA+ICBzdGF0aWMgY29uc3Qgc3RydWN0IGRkaV9idWZfdHJh bnMgc2tsX2RkaV90cmFuc2xhdGlvbnNfaGRtaVtdID0gewo+PiA+ICAJeyAweDAwMDAwMDE4LCAw eDAwMDAwMEFDLCAweDAgfSwKPj4gPiAgCXsgMHgwMDAwNTAxMiwgMHgwMDAwMDA5RCwgMHgwIH0s Cj4+ID4gQEAgLTIzMyw3ICsyNzIsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRkaV9idWZfdHJh bnMgc2tsX2RkaV90cmFuc2xhdGlvbnNfaGRtaVtdID0gewo+PiA+ICAJeyAweDgwMDAwMDE4LCAw eDAwMDAwMEMwLCAweDEgfSwKPj4gPiAgfTsKPj4gPiAgCj4+ID4gLS8qIFNreWxha2UgWSAqLwo+ PiA+ICsvKiBTa3lsYWtlL0thYnlsYWtlIFkgKi8KPj4gPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBk ZGlfYnVmX3RyYW5zIHNrbF95X2RkaV90cmFuc2xhdGlvbnNfaGRtaVtdID0gewo+PiA+ICAJeyAw eDAwMDAwMDE4LCAweDAwMDAwMEExLCAweDAgfSwKPj4gPiAgCXsgMHgwMDAwNTAxMiwgMHgwMDAw MDBERiwgMHgwIH0sCj4+ID4gQEAgLTMzNCwxMCArMzczLDEwIEBAIGJkd19nZXRfYnVmX3RyYW5z X2VkcChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGludCAqbl9lbnRyaWVzKQo+ PiA+ICBzdGF0aWMgY29uc3Qgc3RydWN0IGRkaV9idWZfdHJhbnMgKgo+PiA+ICBza2xfZ2V0X2J1 Zl90cmFuc19kcChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGludCAqbl9lbnRy aWVzKQo+PiA+ICB7Cj4+ID4gLQlpZiAoSVNfU0tMX1VMWChkZXZfcHJpdikgfHwgSVNfS0JMX1VM WChkZXZfcHJpdikpIHsKPj4gPiArCWlmIChJU19TS0xfVUxYKGRldl9wcml2KSkgewo+PiA+ICAJ CSpuX2VudHJpZXMgPSBBUlJBWV9TSVpFKHNrbF95X2RkaV90cmFuc2xhdGlvbnNfZHApOwo+PiA+ ICAJCXJldHVybiBza2xfeV9kZGlfdHJhbnNsYXRpb25zX2RwOwo+PiA+IC0JfSBlbHNlIGlmIChJ U19TS0xfVUxUKGRldl9wcml2KSB8fCBJU19LQkxfVUxUKGRldl9wcml2KSkgewo+PiA+ICsJfSBl bHNlIGlmIChJU19TS0xfVUxUKGRldl9wcml2KSkgewo+PiA+ICAJCSpuX2VudHJpZXMgPSBBUlJB WV9TSVpFKHNrbF91X2RkaV90cmFuc2xhdGlvbnNfZHApOwo+PiA+ICAJCXJldHVybiBza2xfdV9k ZGlfdHJhbnNsYXRpb25zX2RwOwo+PiA+ICAJfSBlbHNlIHsKPj4gPiBAQCAtMzQ3LDYgKzM4Niwy MSBAQCBza2xfZ2V0X2J1Zl90cmFuc19kcChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsIGludCAqbl9lbnRyaWVzKQo+PiA+ICB9Cj4+ID4gIAo+PiA+ICBzdGF0aWMgY29uc3Qgc3Ry dWN0IGRkaV9idWZfdHJhbnMgKgo+PiA+ICtrYmxfZ2V0X2J1Zl90cmFuc19kcChzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGludCAqbl9lbnRyaWVzKQo+PiA+ICt7Cj4+ID4gKwlp ZiAoSVNfS0JMX1VMWChkZXZfcHJpdikpIHsKPj4gPiArCQkqbl9lbnRyaWVzID0gQVJSQVlfU0la RShrYmxfeV9kZGlfdHJhbnNsYXRpb25zX2RwKTsKPj4gPiArCQlyZXR1cm4ga2JsX3lfZGRpX3Ry YW5zbGF0aW9uc19kcDsKPj4gPiArCX0gZWxzZSBpZiAoSVNfS0JMX1VMVChkZXZfcHJpdikpIHsK Pj4gPiArCQkqbl9lbnRyaWVzID0gQVJSQVlfU0laRShrYmxfdV9kZGlfdHJhbnNsYXRpb25zX2Rw KTsKPj4gPiArCQlyZXR1cm4ga2JsX3VfZGRpX3RyYW5zbGF0aW9uc19kcDsKPj4gPiArCX0gZWxz ZSB7Cj4+ID4gKwkJKm5fZW50cmllcyA9IEFSUkFZX1NJWkUoa2JsX2RkaV90cmFuc2xhdGlvbnNf ZHApOwo+PiA+ICsJCXJldHVybiBrYmxfZGRpX3RyYW5zbGF0aW9uc19kcDsKPj4gPiArCX0KPj4g PiArfQo+PiA+ICsKPj4gPiArc3RhdGljIGNvbnN0IHN0cnVjdCBkZGlfYnVmX3RyYW5zICoKPj4g PiAgc2tsX2dldF9idWZfdHJhbnNfZWRwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwgaW50ICpuX2VudHJpZXMpCj4+ID4gIHsKPj4gPiAgCWlmIChkZXZfcHJpdi0+dmJ0LmVkcC5s b3dfdnN3aW5nKSB7Cj4+ID4gQEAgLTM2Miw3ICs0MTYsMTAgQEAgc2tsX2dldF9idWZfdHJhbnNf ZWRwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgaW50ICpuX2VudHJpZXMpCj4+ ID4gIAkJfQo+PiA+ICAJfQo+PiA+ICAKPj4gPiAtCXJldHVybiBza2xfZ2V0X2J1Zl90cmFuc19k cChkZXZfcHJpdiwgbl9lbnRyaWVzKTsKPj4gPiArCWlmIChkZXZfcHJpdi0+dmJ0LmVkcC5sb3df dnN3aW5nKQo+PiA+ICsJCXJldHVybiBrYmxfZ2V0X2J1Zl90cmFuc19kcChkZXZfcHJpdiwgbl9l bnRyaWVzKTsKPj4gPiArCWVsc2UKPj4gPiArCQlyZXR1cm4gc2tsX2dldF9idWZfdHJhbnNfZHAo ZGV2X3ByaXYsIG5fZW50cmllcyk7Cj4+IAo+PiBUaGlzIHNlZW1zIHJlYWxseSBjb25mdXNpbmcu Cj4KPiBJIGFncmVlLCBidXQgSSB3b3VsZCBsaWtlIHRvIGF2b2lkIGR1cGxpY2F0aW5nIHRoZSBp ZGVudGljYWwgdGFibGVzLi4uCj4gdGhvc2UgYnkgc3BlYyBhcmUgZXhwbGljaXRseSBzYW1lIHRh YmxlLi4uCj4KPiBhbm90aGVyIG9wdGlvbiB3aXRob3V0IGR1cGxpY2F0aW5nIHRoZSB0YWJsZXMg aXMgZHVwbGljYXRpbmcgdGhlCj4gZnVuY3Rpb24gbGlrZSBiZWxvdy4uLiB3aGF0IEkgYmVsaWV2 ZSBpdCBpcyBzdGlsbCBjb25mdXNpbmcgd2l0aCBhbGwKPiB0aG9zZSBza2wgYW5kIGtibCBpbnNp ZGUgdGhpcyBmdW5jdGlvbi4uLgo+Cj4gd2hhdCBkbyB5b3UgcHJlZmVyPwoKVGhlIHRoaW5nIHRo YXQgYnVncyBtZSBoZXJlIGlzIHRoYXQgeW91IG1heSByZXR1cm4ga2xiX3NvbWV0aGluZyBvbgpz a2wuIFdlIHJldXNlIHBsZW50eSBvZiBvbGRlciBnZW4gc3R1ZmYgZm9yIG5ld2VyIGdlbnMsIGJ1 dCB0aGlzIGJlaW5nCnRoZSBvdGhlciB3YXkgcm91bmQgaXMgdGhlIGNvbmZ1c2luZyBwYXJ0LiBT byBqdXN0IGNhbGwgaXQKc2tsX3NvbWV0aGluZywgYW5kIHJldXNlIGluIGtibD8KCkJSLApKYW5p LgoKCj4KPiBzdGF0aWMgY29uc3Qgc3RydWN0IGRkaV9idWZfdHJhbnMKPiAqICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAKPiBrYmxfZ2V0X2J1Zl90cmFuc19lZHAoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBpbnQKPiAqbl9lbnRyaWVzKSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPiB7ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Cj4gICAgICAgICBpZiAoZGV2X3ByaXYtPnZidC5lZHAubG93X3Zzd2luZykKPiB7ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgCj4gICAgICAgICAgICAgICAgIGlmIChJU19LQkxfVUxYKGRldl9w cml2KSkKPiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgCj4gICAgICAgICAgICAgICAgICAgICAgICAgKm5fZW50cmllcyA9Cj4gQVJS QVlfU0laRShza2xfeV9kZGlfdHJhbnNsYXRpb25zX2VkcCk7ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCj4gICAgICAgICAgICAgICAgICAgICAgICAg cmV0dXJuCj4gc2tsX3lfZGRpX3RyYW5zbGF0aW9uc19lZHA7ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCj4gICAgICAg ICAgICAgICAgIH0gZWxzZSBpZiAoSVNfS0JMX1VMVChkZXZfcHJpdikpCj4geyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCj4gICAgICAgICAgICAg ICAgICAgICAgICAgKm5fZW50cmllcyA9Cj4gQVJSQVlfU0laRShza2xfdV9kZGlfdHJhbnNsYXRp b25zX2VkcCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgCj4gICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuCj4gc2tsX3VfZGRpX3RyYW5zbGF0 aW9uc19lZHA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgCj4gICAgICAgICAgICAgICAgIH0gZWxzZQo+IHsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCj4gICAgICAgICAgICAgICAg ICAgICAgICAgKm5fZW50cmllcyA9Cj4gQVJSQVlfU0laRShza2xfZGRpX3RyYW5zbGF0aW9uc19l ZHApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Cj4gICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuCj4gc2tsX2RkaV90cmFuc2xhdGlvbnNf ZWRwOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgCj4gICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo+ICAgICAgICAgfSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPiAgICAg ICAgIHJldHVybiBrYmxfZ2V0X2J1Zl90cmFuc19kcChkZXZfcHJpdiwKPiBuX2VudHJpZXMpOyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAKPiB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAKPgo+Cj4KPgo+PiAKPj4gQlIsCj4+IEphbmkuCj4+IAo+PiAK Pj4gPiAgfQo+PiA+ICAKPj4gPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBkZGlfYnVmX3RyYW5zICoK Pj4gPiBAQCAtNDMwLDcgKzQ4NywxMyBAQCB2b2lkIGludGVsX3ByZXBhcmVfZHBfZGRpX2J1ZmZl cnMoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4+ID4gIAlpZiAoSVNfQlJPWFRPTihk ZXZfcHJpdikpCj4+ID4gIAkJcmV0dXJuOwo+PiA+ICAKPj4gPiAtCWlmIChJU19TS1lMQUtFKGRl dl9wcml2KSB8fCBJU19LQUJZTEFLRShkZXZfcHJpdikpIHsKPj4gPiArCWlmIChJU19LQUJZTEFL RShkZXZfcHJpdikpIHsKPj4gPiArCQlkZGlfdHJhbnNsYXRpb25zX2ZkaSA9IE5VTEw7Cj4+ID4g KwkJZGRpX3RyYW5zbGF0aW9uc19kcCA9Cj4+ID4gKwkJCQlrYmxfZ2V0X2J1Zl90cmFuc19kcChk ZXZfcHJpdiwgJm5fZHBfZW50cmllcyk7Cj4+ID4gKwkJZGRpX3RyYW5zbGF0aW9uc19lZHAgPQo+ PiA+ICsJCQkJc2tsX2dldF9idWZfdHJhbnNfZWRwKGRldl9wcml2LCAmbl9lZHBfZW50cmllcyk7 Cj4+ID4gKwl9IGVsc2UgaWYgKElTX1NLWUxBS0UoZGV2X3ByaXYpKSB7Cj4+ID4gIAkJZGRpX3Ry YW5zbGF0aW9uc19mZGkgPSBOVUxMOwo+PiA+ICAJCWRkaV90cmFuc2xhdGlvbnNfZHAgPQo+PiA+ ICAJCQkJc2tsX2dldF9idWZfdHJhbnNfZHAoZGV2X3ByaXYsICZuX2RwX2VudHJpZXMpOwo+PiA+ IEBAIC0xNDM3LDcgKzE1MDAsMTIgQEAgc3RhdGljIHZvaWQgc2tsX2RkaV9zZXRfaWJvb3N0KHN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLCB1MzIgbGV2ZWwpCj4+ID4gIAkJaWYgKGRwX2li b29zdCkgewo+PiA+ICAJCQlpYm9vc3QgPSBkcF9pYm9vc3Q7Cj4+ID4gIAkJfSBlbHNlIHsKPj4g PiAtCQkJZGRpX3RyYW5zbGF0aW9ucyA9IHNrbF9nZXRfYnVmX3RyYW5zX2RwKGRldl9wcml2LCAm bl9lbnRyaWVzKTsKPj4gPiArCQkJaWYgKElTX0tBQllMQUtFKGRldl9wcml2KSkKPj4gPiArCQkJ CWRkaV90cmFuc2xhdGlvbnMgPSBrYmxfZ2V0X2J1Zl90cmFuc19kcChkZXZfcHJpdiwKPj4gPiAr CQkJCQkJCQkJJm5fZW50cmllcyk7Cj4+ID4gKwkJCWVsc2UKPj4gPiArCQkJCWRkaV90cmFuc2xh dGlvbnMgPSBza2xfZ2V0X2J1Zl90cmFuc19kcChkZXZfcHJpdiwKPj4gPiArCQkJCQkJCQkJJm5f ZW50cmllcyk7Cj4+ID4gIAkJCWlib29zdCA9IGRkaV90cmFuc2xhdGlvbnNbbGV2ZWxdLmlfYm9v c3Q7Cj4+ID4gIAkJfQo+PiA+ICAJfSBlbHNlIGlmICh0eXBlID09IElOVEVMX09VVFBVVF9FRFAp IHsKPj4gCj4KCi0tIApKYW5pIE5pa3VsYSwgSW50ZWwgT3BlbiBTb3VyY2UgVGVjaG5vbG9neSBD ZW50ZXIKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50 ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==