From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 12/15] drm/i915: Split DP/eDP/FDI and HDMI/DVI DDI buffer programming apart Date: Thu, 10 Dec 2015 16:15:34 +0200 Message-ID: <20151210141534.GV4437@intel.com> References: <1449597590-6971-1-git-send-email-ville.syrjala@linux.intel.com> <1449597590-6971-13-git-send-email-ville.syrjala@linux.intel.com> <20151210135229.GJ20822@phenom.ffwll.local> 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 F2D806E8C7 for ; Thu, 10 Dec 2015 06:15:42 -0800 (PST) Content-Disposition: inline In-Reply-To: <20151210135229.GJ20822@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniel Vetter Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBEZWMgMTAsIDIwMTUgYXQgMDI6NTI6MjlQTSArMDEwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBPbiBUdWUsIERlYyAwOCwgMjAxNSBhdCAwNzo1OTo0N1BNICswMjAwLCB2aWxsZS5z eXJqYWxhQGxpbnV4LmludGVsLmNvbSB3cm90ZToKPiA+IEZyb206IFZpbGxlIFN5cmrDpGzDpCA8 dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gPiAKPiA+IERESSBidWZmZXIgcHJvcmdy YW1taW5nIHdvcmtzIHF1aXRlIGRpZmZlcmVudGx5IGRlcGVuZGluZyBvbgo+ID4gdGhlIG1vZGUg b2YgdGhlIERESSBwb3J0IChEUC9lRFAvRkRJIHZzLiBIRE1JL0RWSSkuIExldCdzIHNwbGl0Cj4g PiB0aGUgZnVuY3Rpb24gdGhhdCBkb2VzIHRoZSBwcm9ncmFtbWluZyBpbnRvIHR3byBtYXRjaGlu ZyB2YXJpYW50cwo+ID4gYXMgd2VsbC4KPiA+IAo+ID4gU2lnbmVkLW9mZi1ieTogVmlsbGUgU3ly asOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiA+IC0tLQo+ID4gIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jICAgIHwgOTQgKysrKysrKysrKysrKysrKysrKysr Ky0tLS0tLS0tLS0tLS0tLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX21zdC5j IHwgIDQgKy0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICB8ICAyICst Cj4gPiAgMyBmaWxlcyBjaGFuZ2VkLCA2MCBpbnNlcnRpb25zKCspLCA0MCBkZWxldGlvbnMoLSkK PiA+IAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKPiA+IGluZGV4IGY4MTI2MDcwNDVkNi4u YzQ3ZjQ1YzBmNGEyIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGRpLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4gPiBAQCAt Mzk3LDM3ICszOTcsMjIgQEAgc2tsX2dldF9idWZfdHJhbnNfaGRtaShzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsIGludCAqbl9lbnRyaWVzKQo+ID4gIAo+ID4gIC8qCj4gPiAgICog U3RhcnRpbmcgd2l0aCBIYXN3ZWxsLCBEREkgcG9ydCBidWZmZXJzIG11c3QgYmUgcHJvZ3JhbW1l ZCB3aXRoIGNvcnJlY3QKPiA+IC0gKiB2YWx1ZXMgaW4gYWR2YW5jZS4gVGhlIGJ1ZmZlciB2YWx1 ZXMgYXJlIGRpZmZlcmVudCBmb3IgRkRJIGFuZCBEUCBtb2RlcywKPiA+IC0gKiBidXQgdGhlIEhE TUkvRFZJIGZpZWxkcyBhcmUgc2hhcmVkIGFtb25nIHRob3NlLiBTbyB3ZSBwcm9ncmFtIHRoZSBE REkKPiA+IC0gKiBpbiBlaXRoZXIgRkRJIG9yIERQIG1vZGVzIG9ubHksIGFzIEhETUkgY29ubmVj dGlvbnMgd2lsbCB3b3JrIHdpdGggYm90aAo+ID4gLSAqIG9mIHRob3NlCj4gPiArICogdmFsdWVz IGluIGFkdmFuY2UuIFRoaXMgZnVuY3Rpb24gcHJvZ3JhbXMgdGhlIGNvcnJlY3QgdmFsdWVzIGZv cgo+ID4gKyAqIERQL2VEUC9GREkgdXNlIGNhc2VzLgo+ID4gICAqLwo+ID4gLXZvaWQgaW50ZWxf cHJlcGFyZV9kZGlfYnVmZmVycyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiA+ICt2 b2lkIGludGVsX3ByZXBhcmVfZHBfZGRpX2J1ZmZlcnMoc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIpCj4gPiAgewo+ID4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiA+ICAJdTMyIGlib29zdF9iaXQgPSAwOwo+ID4g LQlpbnQgaSwgbl9oZG1pX2VudHJpZXMsIG5fZHBfZW50cmllcywgbl9lZHBfZW50cmllcywgaGRt aV9kZWZhdWx0X2VudHJ5LAo+ID4gLQkgICAgc2l6ZTsKPiA+IC0JaW50IGhkbWlfbGV2ZWw7Cj4g PiAtCWVudW0gcG9ydCBwb3J0Owo+ID4gKwlpbnQgaSwgbl9kcF9lbnRyaWVzLCBuX2VkcF9lbnRy aWVzLCBzaXplOwo+ID4gKwllbnVtIHBvcnQgcG9ydCA9IGludGVsX2RkaV9nZXRfZW5jb2Rlcl9w b3J0KGVuY29kZXIpOwo+ID4gIAljb25zdCBzdHJ1Y3QgZGRpX2J1Zl90cmFucyAqZGRpX3RyYW5z bGF0aW9uc19mZGk7Cj4gPiAgCWNvbnN0IHN0cnVjdCBkZGlfYnVmX3RyYW5zICpkZGlfdHJhbnNs YXRpb25zX2RwOwo+ID4gIAljb25zdCBzdHJ1Y3QgZGRpX2J1Zl90cmFucyAqZGRpX3RyYW5zbGF0 aW9uc19lZHA7Cj4gPiAtCWNvbnN0IHN0cnVjdCBkZGlfYnVmX3RyYW5zICpkZGlfdHJhbnNsYXRp b25zX2hkbWk7Cj4gPiAgCWNvbnN0IHN0cnVjdCBkZGlfYnVmX3RyYW5zICpkZGlfdHJhbnNsYXRp b25zOwo+ID4gIAo+ID4gLQlwb3J0ID0gaW50ZWxfZGRpX2dldF9lbmNvZGVyX3BvcnQoZW5jb2Rl cik7Cj4gPiAtCWhkbWlfbGV2ZWwgPSBkZXZfcHJpdi0+dmJ0LmRkaV9wb3J0X2luZm9bcG9ydF0u aGRtaV9sZXZlbF9zaGlmdDsKPiA+IC0KPiA+IC0JaWYgKElTX0JST1hUT04oZGV2X3ByaXYpKSB7 Cj4gPiAtCQlpZiAoZW5jb2Rlci0+dHlwZSAhPSBJTlRFTF9PVVRQVVRfSERNSSkKPiA+IC0JCQly ZXR1cm47Cj4gPiAtCj4gPiAtCQkvKiBWc3dpbmcgcHJvZ3JhbW1pbmcgZm9yIEhETUkgKi8KPiA+ IC0JCWJ4dF9kZGlfdnN3aW5nX3NlcXVlbmNlKGRldl9wcml2LCBoZG1pX2xldmVsLCBwb3J0LAo+ ID4gLQkJCQkJSU5URUxfT1VUUFVUX0hETUkpOwo+ID4gKwlpZiAoSVNfQlJPWFRPTihkZXZfcHJp dikpCj4gPiAgCQlyZXR1cm47Cj4gPiAtCX0KPiA+ICAKPiA+ICAJaWYgKElTX1NLWUxBS0UoZGV2 X3ByaXYpIHx8IElTX0tBQllMQUtFKGRldl9wcml2KSkgewo+ID4gIAkJZGRpX3RyYW5zbGF0aW9u c19mZGkgPSBOVUxMOwo+ID4gQEAgLTQzNSw5ICs0MjAsNiBAQCB2b2lkIGludGVsX3ByZXBhcmVf ZGRpX2J1ZmZlcnMoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gPiAgCQkJCXNrbF9n ZXRfYnVmX3RyYW5zX2RwKGRldl9wcml2LCAmbl9kcF9lbnRyaWVzKTsKPiA+ICAJCWRkaV90cmFu c2xhdGlvbnNfZWRwID0KPiA+ICAJCQkJc2tsX2dldF9idWZfdHJhbnNfZWRwKGRldl9wcml2LCAm bl9lZHBfZW50cmllcyk7Cj4gPiAtCQlkZGlfdHJhbnNsYXRpb25zX2hkbWkgPQo+ID4gLQkJCQlz a2xfZ2V0X2J1Zl90cmFuc19oZG1pKGRldl9wcml2LCAmbl9oZG1pX2VudHJpZXMpOwo+ID4gLQkJ aGRtaV9kZWZhdWx0X2VudHJ5ID0gODsKPiA+ICAJCS8qIElmIHdlJ3JlIGJvb3N0aW5nIHRoZSBj dXJyZW50LCBzZXQgYml0IDMxIG9mIHRyYW5zMSAqLwo+ID4gIAkJaWYgKGRldl9wcml2LT52YnQu ZGRpX3BvcnRfaW5mb1twb3J0XS5oZG1pX2Jvb3N0X2xldmVsIHx8Cj4gPiAgCQkgICAgZGV2X3By aXYtPnZidC5kZGlfcG9ydF9pbmZvW3BvcnRdLmRwX2Jvb3N0X2xldmVsKQo+ID4gQEAgLTQ1NCwx MSArNDM2LDggQEAgdm9pZCBpbnRlbF9wcmVwYXJlX2RkaV9idWZmZXJzKHN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyKQo+ID4gIAkJZGRpX3RyYW5zbGF0aW9uc19mZGkgPSBiZHdfZGRpX3Ry YW5zbGF0aW9uc19mZGk7Cj4gPiAgCQlkZGlfdHJhbnNsYXRpb25zX2RwID0gYmR3X2RkaV90cmFu c2xhdGlvbnNfZHA7Cj4gPiAgCQlkZGlfdHJhbnNsYXRpb25zX2VkcCA9IGJkd19kZGlfdHJhbnNs YXRpb25zX2VkcDsKPiA+IC0JCWRkaV90cmFuc2xhdGlvbnNfaGRtaSA9IGJkd19kZGlfdHJhbnNs YXRpb25zX2hkbWk7Cj4gPiAgCQluX2VkcF9lbnRyaWVzID0gQVJSQVlfU0laRShiZHdfZGRpX3Ry YW5zbGF0aW9uc19lZHApOwo+ID4gIAkJbl9kcF9lbnRyaWVzID0gQVJSQVlfU0laRShiZHdfZGRp X3RyYW5zbGF0aW9uc19kcCk7Cj4gPiAtCQluX2hkbWlfZW50cmllcyA9IEFSUkFZX1NJWkUoYmR3 X2RkaV90cmFuc2xhdGlvbnNfaGRtaSk7Cj4gPiAtCQloZG1pX2RlZmF1bHRfZW50cnkgPSA3Owo+ ID4gIAl9IGVsc2UgaWYgKElTX0hBU1dFTEwoZGV2X3ByaXYpKSB7Cj4gPiAgCQlCVUlMRF9CVUdf T04oQVJSQVlfU0laRShoc3dfZGRpX3RyYW5zbGF0aW9uc19mZGkpICE9IDkpOwo+ID4gIAkJQlVJ TERfQlVHX09OKEFSUkFZX1NJWkUoaHN3X2RkaV90cmFuc2xhdGlvbnNfZHApICE9IDkpOwo+ID4g QEAgLTQ2NiwyMCArNDQ1LDE0IEBAIHZvaWQgaW50ZWxfcHJlcGFyZV9kZGlfYnVmZmVycyhzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiA+ICAJCWRkaV90cmFuc2xhdGlvbnNfZmRpID0g aHN3X2RkaV90cmFuc2xhdGlvbnNfZmRpOwo+ID4gIAkJZGRpX3RyYW5zbGF0aW9uc19kcCA9IGhz d19kZGlfdHJhbnNsYXRpb25zX2RwOwo+ID4gIAkJZGRpX3RyYW5zbGF0aW9uc19lZHAgPSBoc3df ZGRpX3RyYW5zbGF0aW9uc19kcDsKPiA+IC0JCWRkaV90cmFuc2xhdGlvbnNfaGRtaSA9IGhzd19k ZGlfdHJhbnNsYXRpb25zX2hkbWk7Cj4gPiAgCQluX2RwX2VudHJpZXMgPSBuX2VkcF9lbnRyaWVz ID0gQVJSQVlfU0laRShoc3dfZGRpX3RyYW5zbGF0aW9uc19kcCk7Cj4gPiAtCQluX2hkbWlfZW50 cmllcyA9IEFSUkFZX1NJWkUoaHN3X2RkaV90cmFuc2xhdGlvbnNfaGRtaSk7Cj4gPiAtCQloZG1p X2RlZmF1bHRfZW50cnkgPSA2Owo+ID4gIAl9IGVsc2Ugewo+ID4gIAkJV0FSTigxLCAiZGRpIHRy YW5zbGF0aW9uIHRhYmxlIG1pc3NpbmdcbiIpOwo+ID4gIAkJZGRpX3RyYW5zbGF0aW9uc19lZHAg PSBiZHdfZGRpX3RyYW5zbGF0aW9uc19kcDsKPiA+ICAJCWRkaV90cmFuc2xhdGlvbnNfZmRpID0g YmR3X2RkaV90cmFuc2xhdGlvbnNfZmRpOwo+ID4gIAkJZGRpX3RyYW5zbGF0aW9uc19kcCA9IGJk d19kZGlfdHJhbnNsYXRpb25zX2RwOwo+ID4gLQkJZGRpX3RyYW5zbGF0aW9uc19oZG1pID0gYmR3 X2RkaV90cmFuc2xhdGlvbnNfaGRtaTsKPiA+ICAJCW5fZWRwX2VudHJpZXMgPSBBUlJBWV9TSVpF KGJkd19kZGlfdHJhbnNsYXRpb25zX2VkcCk7Cj4gPiAgCQluX2RwX2VudHJpZXMgPSBBUlJBWV9T SVpFKGJkd19kZGlfdHJhbnNsYXRpb25zX2RwKTsKPiA+IC0JCW5faGRtaV9lbnRyaWVzID0gQVJS QVlfU0laRShiZHdfZGRpX3RyYW5zbGF0aW9uc19oZG1pKTsKPiA+IC0JCWhkbWlfZGVmYXVsdF9l bnRyeSA9IDc7Cj4gPiAgCX0KPiA+ICAKPiA+ICAJc3dpdGNoIChlbmNvZGVyLT50eXBlKSB7Cj4g PiBAQCAtNDg4LDcgKzQ2MSw2IEBAIHZvaWQgaW50ZWxfcHJlcGFyZV9kZGlfYnVmZmVycyhzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiA+ICAJCXNpemUgPSBuX2VkcF9lbnRyaWVzOwo+ ID4gIAkJYnJlYWs7Cj4gPiAgCWNhc2UgSU5URUxfT1VUUFVUX0RJU1BMQVlQT1JUOgo+ID4gLQlj YXNlIElOVEVMX09VVFBVVF9IRE1JOgo+ID4gIAkJZGRpX3RyYW5zbGF0aW9ucyA9IGRkaV90cmFu c2xhdGlvbnNfZHA7Cj4gPiAgCQlzaXplID0gbl9kcF9lbnRyaWVzOwo+ID4gIAkJYnJlYWs7Cj4g PiBAQCAtNTA2LDEwICs0NzgsNTQgQEAgdm9pZCBpbnRlbF9wcmVwYXJlX2RkaV9idWZmZXJzKHN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ID4gIAkJSTkxNV9XUklURShERElfQlVGX1RS QU5TX0hJKHBvcnQsIGkpLAo+ID4gIAkJCSAgIGRkaV90cmFuc2xhdGlvbnNbaV0udHJhbnMyKTsK PiA+ICAJfQo+ID4gK30KPiA+ICsKPiA+ICsvKgo+ID4gKyAqIFN0YXJ0aW5nIHdpdGggSGFzd2Vs bCwgRERJIHBvcnQgYnVmZmVycyBtdXN0IGJlIHByb2dyYW1tZWQgd2l0aCBjb3JyZWN0Cj4gPiAr ICogdmFsdWVzIGluIGFkdmFuY2UuIFRoaXMgZnVuY3Rpb24gcHJvZ3JhbXMgdGhlIGNvcnJlY3Qg dmFsdWVzIGZvcgo+ID4gKyAqIEhETUkvRFZJIHVzZSBjYXNlcy4KPiA+ICsgKi8KPiA+ICtzdGF0 aWMgdm9pZCBpbnRlbF9wcmVwYXJlX2hkbWlfZGRpX2J1ZmZlcnMoc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXIpCj4gPiArewo+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiA+ICsJdTMyIGlib29zdF9iaXQgPSAw Owo+ID4gKwlpbnQgbl9oZG1pX2VudHJpZXMsIGhkbWlfZGVmYXVsdF9lbnRyeSwgaGRtaV9sZXZl bDsKPiA+ICsJZW51bSBwb3J0IHBvcnQgPSBpbnRlbF9kZGlfZ2V0X2VuY29kZXJfcG9ydChlbmNv ZGVyKTsKPiA+ICsJY29uc3Qgc3RydWN0IGRkaV9idWZfdHJhbnMgKmRkaV90cmFuc2xhdGlvbnNf aGRtaTsKPiA+ICAKPiA+ICAJaWYgKGVuY29kZXItPnR5cGUgIT0gSU5URUxfT1VUUFVUX0hETUkp Cj4gCj4gV0FSTl9PTj8KClllYWgsIG9yIGp1c3QgZHJvcCBpdCBlbnRpcmVseS4gRG9lc24ndCBz ZWVtIHZlcnkgbGlrZWx5IHRoYXQgYW55b25lCndvdWxkIG1lc3MgdGhpcyB1cCBzaW5jZSBpdCdz IGNhbGxlZCBmcm9tIG9uZSBwbGFjZSBvbmx5LgoKPiAKPiA+ICAJCXJldHVybjsKPiA+ICAKPiA+ ICsJaGRtaV9sZXZlbCA9IGRldl9wcml2LT52YnQuZGRpX3BvcnRfaW5mb1twb3J0XS5oZG1pX2xl dmVsX3NoaWZ0Owo+ID4gKwo+ID4gKwlpZiAoSVNfQlJPWFRPTihkZXZfcHJpdikpIHsKPiA+ICsJ CWJ4dF9kZGlfdnN3aW5nX3NlcXVlbmNlKGRldl9wcml2LCBoZG1pX2xldmVsLCBwb3J0LAo+ID4g KwkJCQkJSU5URUxfT1VUUFVUX0hETUkpOwo+ID4gKwkJcmV0dXJuOwo+ID4gKwl9Cj4gPiArCj4g PiArCWlmIChJU19TS1lMQUtFKGRldl9wcml2KSB8fCBJU19LQUJZTEFLRShkZXZfcHJpdikpIHsK PiA+ICsJCWRkaV90cmFuc2xhdGlvbnNfaGRtaSA9IHNrbF9nZXRfYnVmX3RyYW5zX2hkbWkoZGV2 X3ByaXYsICZuX2hkbWlfZW50cmllcyk7Cj4gPiArCQloZG1pX2RlZmF1bHRfZW50cnkgPSA4Owo+ ID4gKwkJLyogSWYgd2UncmUgYm9vc3RpbmcgdGhlIGN1cnJlbnQsIHNldCBiaXQgMzEgb2YgdHJh bnMxICovCj4gPiArCQlpZiAoZGV2X3ByaXYtPnZidC5kZGlfcG9ydF9pbmZvW3BvcnRdLmhkbWlf Ym9vc3RfbGV2ZWwgfHwKPiA+ICsJCSAgICBkZXZfcHJpdi0+dmJ0LmRkaV9wb3J0X2luZm9bcG9y dF0uZHBfYm9vc3RfbGV2ZWwpCj4gPiArCQkJaWJvb3N0X2JpdCA9IDE8PDMxOwo+ID4gKwl9IGVs c2UgaWYgKElTX0JST0FEV0VMTChkZXZfcHJpdikpIHsKPiA+ICsJCWRkaV90cmFuc2xhdGlvbnNf aGRtaSA9IGJkd19kZGlfdHJhbnNsYXRpb25zX2hkbWk7Cj4gPiArCQluX2hkbWlfZW50cmllcyA9 IEFSUkFZX1NJWkUoYmR3X2RkaV90cmFuc2xhdGlvbnNfaGRtaSk7Cj4gPiArCQloZG1pX2RlZmF1 bHRfZW50cnkgPSA3Owo+ID4gKwl9IGVsc2UgaWYgKElTX0hBU1dFTEwoZGV2X3ByaXYpKSB7Cj4g PiArCQlkZGlfdHJhbnNsYXRpb25zX2hkbWkgPSBoc3dfZGRpX3RyYW5zbGF0aW9uc19oZG1pOwo+ ID4gKwkJbl9oZG1pX2VudHJpZXMgPSBBUlJBWV9TSVpFKGhzd19kZGlfdHJhbnNsYXRpb25zX2hk bWkpOwo+ID4gKwkJaGRtaV9kZWZhdWx0X2VudHJ5ID0gNjsKPiA+ICsJfSBlbHNlIHsKPiA+ICsJ CVdBUk4oMSwgImRkaSB0cmFuc2xhdGlvbiB0YWJsZSBtaXNzaW5nXG4iKTsKPiA+ICsJCWRkaV90 cmFuc2xhdGlvbnNfaGRtaSA9IGJkd19kZGlfdHJhbnNsYXRpb25zX2hkbWk7Cj4gPiArCQluX2hk bWlfZW50cmllcyA9IEFSUkFZX1NJWkUoYmR3X2RkaV90cmFuc2xhdGlvbnNfaGRtaSk7Cj4gPiAr CQloZG1pX2RlZmF1bHRfZW50cnkgPSA3Owo+ID4gKwl9Cj4gPiArCj4gPiAgCS8qIENob29zZSBh IGdvb2QgZGVmYXVsdCBpZiBWQlQgaXMgYmFkbHkgcG9wdWxhdGVkICovCj4gPiAgCWlmIChoZG1p X2xldmVsID09IEhETUlfTEVWRUxfU0hJRlRfVU5LTk9XTiB8fAo+ID4gIAkgICAgaGRtaV9sZXZl bCA+PSBuX2hkbWlfZW50cmllcykKPiA+IEBAIC01NTUsNyArNTcxLDcgQEAgdm9pZCBoc3dfZmRp X2xpbmtfdHJhaW4oc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ID4gIAo+ID4gIAlmb3JfZWFjaF9l bmNvZGVyX29uX2NydGMoZGV2LCBjcnRjLCBlbmNvZGVyKSB7Cj4gPiAgCQlXQVJOX09OKGVuY29k ZXItPnR5cGUgIT0gSU5URUxfT1VUUFVUX0FOQUxPRyk7Cj4gPiAtCQlpbnRlbF9wcmVwYXJlX2Rk aV9idWZmZXJzKGVuY29kZXIpOwo+ID4gKwkJaW50ZWxfcHJlcGFyZV9kcF9kZGlfYnVmZmVycyhl bmNvZGVyKTsKPiA+ICAJfQo+ID4gIAo+ID4gIAkvKiBTZXQgdGhlIEZESV9SWF9NSVNDIHB3cmRu IGxhbmVzIGFuZCB0aGUgMiB3b3JrYXJvdW5kcyBsaXN0ZWQgYXQgdGhlCj4gPiBAQCAtMjM3Niw4 ICsyMzkyLDYgQEAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX3ByZV9lbmFibGUoc3RydWN0IGludGVs X2VuY29kZXIgKmludGVsX2VuY29kZXIpCj4gPiAgCWVudW0gcG9ydCBwb3J0ID0gaW50ZWxfZGRp X2dldF9lbmNvZGVyX3BvcnQoaW50ZWxfZW5jb2Rlcik7Cj4gPiAgCWludCB0eXBlID0gaW50ZWxf ZW5jb2Rlci0+dHlwZTsKPiA+ICAKPiA+IC0JaW50ZWxfcHJlcGFyZV9kZGlfYnVmZmVycyhpbnRl bF9lbmNvZGVyKTsKPiA+IC0KPiA+ICAJaWYgKHR5cGUgPT0gSU5URUxfT1VUUFVUX0VEUCkgewo+ ID4gIAkJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGVuY190b19pbnRlbF9kcChlbmNvZGVy KTsKPiA+ICAJCWludGVsX2VkcF9wYW5lbF9vbihpbnRlbF9kcCk7Cj4gPiBAQCAtMjM4OCw2ICsy NDAyLDggQEAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX3ByZV9lbmFibGUoc3RydWN0IGludGVsX2Vu Y29kZXIgKmludGVsX2VuY29kZXIpCj4gPiAgCWlmICh0eXBlID09IElOVEVMX09VVFBVVF9ESVNQ TEFZUE9SVCB8fCB0eXBlID09IElOVEVMX09VVFBVVF9FRFApIHsKPiA+ICAJCXN0cnVjdCBpbnRl bF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoZW5jb2Rlcik7Cj4gPiAgCj4gPiArCQlp bnRlbF9wcmVwYXJlX2RwX2RkaV9idWZmZXJzKGludGVsX2VuY29kZXIpOwo+ID4gKwo+ID4gIAkJ aW50ZWxfZHBfc2V0X2xpbmtfcGFyYW1zKGludGVsX2RwLCBjcnRjLT5jb25maWcpOwo+ID4gIAo+ ID4gIAkJaW50ZWxfZGRpX2luaXRfZHBfYnVmX3JlZyhpbnRlbF9lbmNvZGVyKTsKPiA+IEBAIC0y Mzk5LDkgKzI0MTUsMTMgQEAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX3ByZV9lbmFibGUoc3RydWN0 IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIpCj4gPiAgCX0gZWxzZSBpZiAodHlwZSA9PSBJ TlRFTF9PVVRQVVRfSERNSSkgewo+ID4gIAkJc3RydWN0IGludGVsX2hkbWkgKmludGVsX2hkbWkg PSBlbmNfdG9faW50ZWxfaGRtaShlbmNvZGVyKTsKPiA+ICAKPiA+ICsJCWludGVsX3ByZXBhcmVf aGRtaV9kZGlfYnVmZmVycyhpbnRlbF9lbmNvZGVyKTsKPiA+ICsKPiA+ICAJCWludGVsX2hkbWkt PnNldF9pbmZvZnJhbWVzKGVuY29kZXIsCj4gPiAgCQkJCQkgICBjcnRjLT5jb25maWctPmhhc19o ZG1pX3NpbmssCj4gPiAgCQkJCQkgICAmY3J0Yy0+Y29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUp Owo+ID4gKwl9IGVsc2UgaWYgKHR5cGUgPT0gSU5URUxfT1VUUFVUX0FOQUxPRykgewo+ID4gKwkJ aW50ZWxfcHJlcGFyZV9kcF9kZGlfYnVmZmVycyhpbnRlbF9lbmNvZGVyKTsKPiAKPiBIbSwgSSB3 YXMgaG9waW5nIHdpdGggYW4gZW5jb2RlciBzcGxpdCB0aGF0IHdlIGNvdWxkIHVzZSB0aGUgdmZ1 bmMgaG9va3MKPiBpbnN0ZWFkIG9mIHRoZXNlIG1hc3NpdmUgaWYgbGFkZGVycyBldmVyeXdoZXJl IC4uLiB0b28gbXVjaCB0cm91YmxlIHN0aWxsPwoKSSBkaWRuJ3QgcmVhbGx5IHRoaW5rIGFib3V0 IHRoYXQgVEJILiBCdXQgc291bmRzIGxpa2UgYSBkZWNlbnQgaWRlYSBmb3IKYSBmb2xsb3d1cCBw YXRjaC4KCj4gCj4gQW55d2F5LCBiZXNpZGVzIHRoZSBXQVJOX09OIHJlcXVlc3QgdGhlIHBhdGNo IGxvb2tzIGNvcnJlY3QsIHNvIHdpdGggdGhhdAo+IGFkZHJlc3NlZCBSZXZpZXdlZC1ieTogRGFu aWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KPiA+ICAJfQo+ID4gIH0KPiA+ICAK PiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9tc3QuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX21zdC5jCj4gPiBpbmRleCA3M2FjNjhlMjFiN2Uu LmQ4ZTliMjhiYjJlMCAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2RwX21zdC5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9tc3QuYwo+ ID4gQEAgLTE3MywxMCArMTczLDEwIEBAIHN0YXRpYyB2b2lkIGludGVsX21zdF9wcmVfZW5hYmxl X2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ID4gIAlpbnRlbF9tc3QtPnBvcnQg PSBmb3VuZC0+cG9ydDsKPiA+ICAKPiA+ICAJaWYgKGludGVsX2RwLT5hY3RpdmVfbXN0X2xpbmtz ID09IDApIHsKPiA+IC0JCWludGVsX3ByZXBhcmVfZGRpX2J1ZmZlcnMoJmludGVsX2RpZ19wb3J0 LT5iYXNlKTsKPiA+IC0KPiA+ICAJCWludGVsX2RkaV9jbGtfc2VsZWN0KCZpbnRlbF9kaWdfcG9y dC0+YmFzZSwgaW50ZWxfY3J0Yy0+Y29uZmlnKTsKPiA+ICAKPiA+ICsJCWludGVsX3ByZXBhcmVf ZHBfZGRpX2J1ZmZlcnMoJmludGVsX2RpZ19wb3J0LT5iYXNlKTsKPiA+ICsKPiA+ICAJCWludGVs X2RwX3NldF9saW5rX3BhcmFtcyhpbnRlbF9kcCwgaW50ZWxfY3J0Yy0+Y29uZmlnKTsKPiA+ICAK PiA+ICAJCWludGVsX2RkaV9pbml0X2RwX2J1Zl9yZWcoJmludGVsX2RpZ19wb3J0LT5iYXNlKTsK PiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiBpbmRleCA5ZTVkYjNkNzFlMTIuLmY3ZWU0 YmMzOWIzMyAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5o Cj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gQEAgLTk5NSw3 ICs5OTUsNyBAQCB2b2lkIGludGVsX2NydF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ ID4gIC8qIGludGVsX2RkaS5jICovCj4gPiAgdm9pZCBpbnRlbF9kZGlfY2xrX3NlbGVjdChzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+ICAJCQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpwaXBlX2NvbmZpZyk7Cj4gPiAtdm9pZCBpbnRlbF9wcmVwYXJlX2RkaV9idWZm ZXJzKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKTsKPiA+ICt2b2lkIGludGVsX3ByZXBh cmVfZHBfZGRpX2J1ZmZlcnMoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpOwo+ID4gIHZv aWQgaHN3X2ZkaV9saW5rX3RyYWluKHN0cnVjdCBkcm1fY3J0YyAqY3J0Yyk7Cj4gPiAgdm9pZCBp bnRlbF9kZGlfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBlbnVtIHBvcnQgcG9ydCk7Cj4g PiAgZW51bSBwb3J0IGludGVsX2RkaV9nZXRfZW5jb2Rlcl9wb3J0KHN0cnVjdCBpbnRlbF9lbmNv ZGVyICppbnRlbF9lbmNvZGVyKTsKPiA+IC0tIAo+ID4gMi40LjEwCj4gPiAKPiA+IF9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gPiBJbnRlbC1nZnggbWFp bGluZyBsaXN0Cj4gPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gPiBodHRwOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cj4gCj4gLS0g Cj4gRGFuaWVsIFZldHRlcgo+IFNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgo+ IGh0dHA6Ly9ibG9nLmZmd2xsLmNoCgotLSAKVmlsbGUgU3lyasOkbMOkCkludGVsIE9UQwpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFp bGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=