From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH 09/18] drm/i915/dsi: Make intel_dsi_enable/disable directly exec VBT sequences Date: Fri, 02 Dec 2016 16:01:24 +0200 Message-ID: <87d1hazayz.fsf@intel.com> References: <20161201202925.12220-1-hdegoede@redhat.com> <20161201202925.12220-10-hdegoede@redhat.com> <87oa0uzkp0.fsf@intel.com> <5ec68620-1bdf-8a96-f6b6-9303a6d0fbc8@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <5ec68620-1bdf-8a96-f6b6-9303a6d0fbc8@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Hans de Goede , Daniel Vetter , Ville =?utf-8?B?U3lyasOkbMOk?= Cc: intel-gfx , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gRnJpLCAwMiBEZWMgMjAxNiwgSGFucyBkZSBHb2VkZSA8aGRlZ29lZGVAcmVkaGF0LmNvbT4g d3JvdGU6Cj4gSGksCj4KPiBPbiAwMi0xMi0xNiAxMTozMSwgSmFuaSBOaWt1bGEgd3JvdGU6Cj4+ IE9uIFRodSwgMDEgRGVjIDIwMTYsIEhhbnMgZGUgR29lZGUgPGhkZWdvZWRlQHJlZGhhdC5jb20+ IHdyb3RlOgo+Pj4gVGhlIGRybV9wYW5lbF9lbmFibGUvZGlzYWJsZSBhbmQgZHJtX3BhbmVsX3By ZXBhcmUvdW5wcmVwYXJlIGNhbGxzIGFyZQo+Pj4gbm90IGZpbmUgZ3JhaW5lZCBlbm91Z2ggdG8g YWJzdHJhY3QgYWxsIHRoZSBkaWZmZXJlbnQgc3RlcHMgd2UgbmVlZCB0bwo+Pj4gdGFrZSAoYW5k IFZCVCBzZXF1ZW5jZXMgd2UgbmVlZCB0byBleGVjKSBwcm9wZXJseS4gU28gc2ltcGx5IHJlbW92 ZSB0aGUKPj4+IHBhbmVsIF9lbmFibGUvZGlzYWJsZSBhbmQgcHJlcGFyZS91bnByZXBhcmUgY2Fs bGJhY2tzIGFuZCBpbnN0ZWFkCj4+PiBleHBvcnQgaW50ZWxfZHNpX2V4ZWNfdmJ0X3NlcXVlbmNl KCkgZnJvbSBpbnRlbF9kc2lfcGFuZWxfdmJ0LmMKPj4+IGFuZCBjYWxsIHRoYXQgZnJvbSBpbnRl bF9kc2lfZW5hYmxlL2Rpc2FibGUoKS4KPj4+Cj4+PiBObyBmdW5jdGlvbmFsIGNoYW5nZXMuCj4+ Cj4+IE5vIGZ1bmN0aW9uYWwgY2hhbmdlcywgYnV0IHRoaXMgaXMgcXVpdGUgYSBiaWcgZGVzaWdu IGNoYW5nZSBiZXR3ZWVuCj4+IGludGVsX2RzaS5jIGFuZCBpbnRlbF9kc2lfcGFuZWxfdmJ0LmMu Cj4KPiBUcnVlLCBJIGRpZCB0aGlzIGJlY2F1c2UgYWRkaW5nIGEgY2FsbGJhY2sgcGVyIGluaXQg c3RlcCB0byB0aGUKPiBkcm1fcGFuZWwgaW50ZXJmYWNlIGZlbHQgbGlrZSBpdCB3aWxsIHJlc3Vs dCBpbiBhIGdhbWUgb2YKPiB3aGFjayBhIG1vbGUgKGFkZGluZyBtb3JlIGFuZCBtb3JlIGNhbGxi YWNrcykuIFNlZSB0aGUgZW5kIG9mCj4gdGhpcyBtYWlsIGZvciBhIHByb3Bvc2FsIHdpdGggbGVh dmVzIHRoZSBkcm1fcGFuZWwgaW50ZXJmYWNlCj4gaW4gcGxhY2UsIHdoaWxlIGFsc28gYXZvaWRp bmcgdGhpcyBwcm9ibGVtLgo+Cj4+IE9yaWdpbmFsbHkgdGhlIGlkZWEgd2FzIHRvCj4+IHNlcGFy YXRlIHRoZSBkc2kgY29yZSBjb2RlIGFuZCB0aGUgcGFuZWwgc3BlY2lmaWMgY29kZSwgbGV0dGlu ZyBvbmUKPj4gd3JpdGUgYSBwYW5lbCBkcml2ZXIgdGhhdCB3YXMgbm90IGJhc2VkIG9uIHZhbHVl cyBpbiBWQlQuIFRoaXMgcGF0Y2gKPj4gY2hhbmdlcyB0aGF0Lgo+Cj4gSSBzZWUsIEkgd2FzIG5v dCBhd2FyZSBvZiB0aGlzIGhpc3RvcnkuCj4KPj4gTm93IEknbSBub3Qgc3VyZSBpZiB0aGVyZSds bCBldmVyIGJlIGEgcGFuZWwgZHJpdmVyIG5vdCBiYXNlZCBvbiBWQlQsCj4+IGFuZCBwZXJoYXBz IHRoZSBjdXJyZW50IGRybV9wYW5lbCBiYXNlZCBpbnRlcmZhY2UgYmV0d2VlbiB0d28gaXMgbm90 Cj4+IGVub3VnaCBpbiB0aGUgZW5kLCBub3IgcHJldHRpZXN0LiBCdXQgYWZ0ZXIgdGhpcyBwYXRj aCwgd2UgbWlnaHQganVzdCBhcwo+PiB3ZWxsIHRocm93IG91dCB0aGUgZHJtX3BhbmVsIGludGVy ZmFjZSwgYW5kIHJlZmFjdG9yIHRoZSBkaXZpc2lvbgo+PiBiZXR3ZWVuIHRoZSB0d28gZmlsZXMg Y29tcGxldGVseS4gSW5kZWVkLCBpZiB3ZSBhY2NlcHQgdGhlIGRpcmVjdGlvbiBzZXQKPj4gaW4g dGhpcyBwYXRjaCwgdGhhdCByZWZhY3RvcmluZyB3b3VsZCBiZSB0aGUgbG9naWNhbCBuZXh0IHN0 ZXAuCj4KPiBJcyBpbnRlbF9kc2kuYyB0aGUgb25seSB1c2VyIG9mIHRoZSBkcm1fcGFuZWwgaW50 ZXJmYWNlID8gVGhlIG5hbWUKPiBzdWdnZXN0cyBpdCBpcyBub3QgaW50ZWwgc3BlY2lmaWMuCgpK dXN0IGEgcXVpY2sgbm90ZSBoZXJlLCBpdCdzIG5vdCBpOTE1IHNwZWNpZmljLCBpdCdzIHVzZWQg aW4gb3RoZXIKZHJpdmVycy4KCkJSLApKYW5pLgoKPgo+PiBJIGhhdmUgbm90IG1hZGUgdXAgbXkg bWluZCBhYm91dCB0aGlzIHlldC4gQW4gYWx0ZXJuYXRpdmUgd291bGQgYmUgdG8KPj4gYW1lbmQg dGhlIGRybV9wYW5lbCBpbnRlcmZhY2UgdG8gYWNoaWV2ZSB0aGUga2luZCBvZiBncmFudWxhcml0 eSB5b3UncmUKPj4gYWZ0ZXIgaW4gdGhlIGZvbGxvdy11cCBwYXRjaGVzLiBJbmRlZWQsIHN1Y2gg cGF0Y2hlcyBoYXZlIGJlZW4gc2VudCBpbgo+PiB0aGUgcGFzdC4KPgo+IEhvdyBhYm91dCB3ZSBh ZGQgYSAiZHJtX3BhbmVsX2V4ZWNfc2VxdWVuY2UiIGNhbGxiYWNrIHRvIHRoZQo+IGRybV9wYW5l bCBpbnRlcmZhY2UsIHdoaWNoIHRha2VzIGFuIGVudW0gYXJndW1lbnQgd2hpY2ggKGRlKWluaXQK PiBzdGVwIHRvIGRvID8KPgo+IFRoZW4gd2UgY2FuIGVhc2lseSBhZGQgZXh0cmEgaW5pdCBzdGVw cyBsYXRlciBieSBleHRlbmRpbmcgdGhlCj4gZW51bSwgYW5kIHBhbmVsIGltcGxlbWVudGF0aW9u cyB3aGljaCBkbyBub3QgY2FyZSBhYm91dCBjZXJ0YWluCj4gc3RlcHMgY2FuIHNpbXBseSB0cmVh dCB0aGVzZSBhcyBub3BzLiBUaGlzIGF2b2lkcyB0aGUgbmVlZAo+IHRvIGFkZCBhIHRvbiBvZiBj YWxsYmFja3MgdG8gdGhlIGRybV9wYW5lbCBzdHJ1Y3QuCj4KPiBJZiB0aGVyZSBhcmUgbm8gb3Ro ZXIgdXNlcnMsIHdlIGNvdWxkIHRoZW4gYWxzbyByZW1vdmUgdGhlCj4gZW5hYmxlL2Rpc2FibGUg YW5kIHByZXBhcmUvdW5wcmVwYXJlIHBhaXJzIGZyb20gZHJtX3BhbmVsCj4gbm93LCBJIGxlZnQg dGhvc2UgaW4gcGxhY2UgYXNzdW1pbmcgdGhhdCBpbnRlbF9kc2kuYyB3YXMKPiBub3QgdGhlIG9u bHkgdXNlciBvZiBkcm1fcGFuZWwuCj4KPiBSZWdhcmRzLAo+Cj4gSGFucwo+Cj4KPgo+Cj4+Cj4+ IEJSLAo+PiBKYW5pLgo+Pgo+Pj4KPj4+IFNpZ25lZC1vZmYtYnk6IEhhbnMgZGUgR29lZGUgPGhk ZWdvZWRlQHJlZGhhdC5jb20+Cj4+PiAtLS0KPj4+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kc2kuYyAgICAgICAgICAgfCAxNCArKysrKysrLS0tCj4+PiAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHNpLmggICAgICAgICAgIHwgIDMgKysrCj4+PiAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHNpX3BhbmVsX3ZidC5jIHwgNDMgKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCj4+PiAgMyBmaWxlcyBjaGFuZ2VkLCAxNSBpbnNlcnRpb25zKCspLCA0NSBkZWxldGlvbnMo LSkKPj4+Cj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuYwo+Pj4gaW5kZXggODViNzQ4ZC4uY2Y3 NjFlOCAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5jCj4+ PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuYwo+Pj4gQEAgLTY1Niw3ICs2 NTYsMTAgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHNpX3ByZV9lbmFibGUoc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXIsCj4+PiAgCS8qIHB1dCBkZXZpY2UgaW4gcmVhZHkgc3RhdGUgKi8KPj4+ ICAJaW50ZWxfZHNpX2RldmljZV9yZWFkeShlbmNvZGVyKTsKPj4+Cj4+PiAtCWRybV9wYW5lbF9w cmVwYXJlKGludGVsX2RzaS0+cGFuZWwpOwo+Pj4gKwlpbnRlbF9kc2lfZXhlY192YnRfc2VxdWVu Y2UoaW50ZWxfZHNpLCBNSVBJX1NFUV9BU1NFUlRfUkVTRVQpOwo+Pj4gKwlpbnRlbF9kc2lfZXhl Y192YnRfc2VxdWVuY2UoaW50ZWxfZHNpLCBNSVBJX1NFUV9QT1dFUl9PTik7Cj4+PiArCWludGVs X2RzaV9leGVjX3ZidF9zZXF1ZW5jZShpbnRlbF9kc2ksIE1JUElfU0VRX0RFQVNTRVJUX1JFU0VU KTsKPj4+ICsJaW50ZWxfZHNpX2V4ZWNfdmJ0X3NlcXVlbmNlKGludGVsX2RzaSwgTUlQSV9TRVFf SU5JVF9PVFApOwo+Pj4KPj4+ICAJLyogRW5hYmxlIHBvcnQgaW4gcHJlLWVuYWJsZSBwaGFzZSBp dHNlbGYgYmVjYXVzZSBhcyBwZXIgaHcgdGVhbQo+Pj4gIAkgKiByZWNvbW1lbmRhdGlvbiwgcG9y dCBzaG91bGQgYmUgZW5hYmxlZCBiZWZvciBwbGFuZSAmIHBpcGUgKi8KPj4+IEBAIC02NjksNyAr NjcyLDggQEAgc3RhdGljIHZvaWQgaW50ZWxfZHNpX3ByZV9lbmFibGUoc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXIsCj4+PiAgCQkJZHBpX3NlbmRfY21kKGludGVsX2RzaSwgVFVSTl9PTiwg ZmFsc2UsIHBvcnQpOwo+Pj4gIAkJbXNsZWVwKDEwMCk7Cj4+Pgo+Pj4gLQkJZHJtX3BhbmVsX2Vu YWJsZShpbnRlbF9kc2ktPnBhbmVsKTsKPj4+ICsJCWludGVsX2RzaV9leGVjX3ZidF9zZXF1ZW5j ZShpbnRlbF9kc2ksIE1JUElfU0VRX0RJU1BMQVlfT04pOwo+Pj4gKwkJaW50ZWxfZHNpX2V4ZWNf dmJ0X3NlcXVlbmNlKGludGVsX2RzaSwgTUlQSV9TRVFfQkFDS0xJR0hUX09OKTsKPj4+Cj4+PiAg CQlpbnRlbF9kc2lfcG9ydF9lbmFibGUoZW5jb2Rlcik7Cj4+PiAgCX0KPj4+IEBAIC03MzIsNyAr NzM2LDggQEAgc3RhdGljIHZvaWQgaW50ZWxfZHNpX3Bvc3RfZGlzYWJsZShzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlciwKPj4+ICAJICogaWYgZGlzYWJsZSBwYWNrZXRzIGFyZSBzZW50IGJl Zm9yZSBzZW5kaW5nIHNodXRkb3duIHBhY2tldCB0aGVuIGluCj4+PiAgCSAqIHNvbWUgbmV4dCBl bmFibGUgc2VxdWVuY2Ugc2VuZCB0dXJuIG9uIHBhY2tldCBlcnJvciBpcyBvYnNlcnZlZAo+Pj4g IAkgKi8KPj4+IC0JZHJtX3BhbmVsX2Rpc2FibGUoaW50ZWxfZHNpLT5wYW5lbCk7Cj4+PiArCWlu dGVsX2RzaV9leGVjX3ZidF9zZXF1ZW5jZShpbnRlbF9kc2ksIE1JUElfU0VRX0JBQ0tMSUdIVF9P RkYpOwo+Pj4gKwlpbnRlbF9kc2lfZXhlY192YnRfc2VxdWVuY2UoaW50ZWxfZHNpLCBNSVBJX1NF UV9ESVNQTEFZX09GRik7Cj4+Pgo+Pj4gIAlpbnRlbF9kc2lfY2xlYXJfZGV2aWNlX3JlYWR5KGVu Y29kZXIpOwo+Pj4KPj4+IEBAIC03NDYsNyArNzUxLDggQEAgc3RhdGljIHZvaWQgaW50ZWxfZHNp X3Bvc3RfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPj4+ICAJCUk5MTVf V1JJVEUoRFNQQ0xLX0dBVEVfRCwgdmFsKTsKPj4+ICAJfQo+Pj4KPj4+IC0JZHJtX3BhbmVsX3Vu cHJlcGFyZShpbnRlbF9kc2ktPnBhbmVsKTsKPj4+ICsJaW50ZWxfZHNpX2V4ZWNfdmJ0X3NlcXVl bmNlKGludGVsX2RzaSwgTUlQSV9TRVFfQVNTRVJUX1JFU0VUKTsKPj4+ICsJaW50ZWxfZHNpX2V4 ZWNfdmJ0X3NlcXVlbmNlKGludGVsX2RzaSwgTUlQSV9TRVFfUE9XRVJfT0ZGKTsKPj4+Cj4+PiAg CW1zbGVlcChpbnRlbF9kc2ktPnBhbmVsX29mZl9kZWxheSk7Cj4+Pgo+Pj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHNpLmgKPj4+IGluZGV4IGQ1Njc4MjMuLjU0ODY0OTEgMTAwNjQ0Cj4+PiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuaAo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHNpLmgKPj4+IEBAIC0xMzIsNiArMTMyLDkgQEAgc3RhdGljIGlubGluZSBz dHJ1Y3QgaW50ZWxfZHNpICplbmNfdG9faW50ZWxfZHNpKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5j b2RlcikKPj4+Cj4+PiAgdm9pZCB3YWl0X2Zvcl9kc2lfZmlmb19lbXB0eShzdHJ1Y3QgaW50ZWxf ZHNpICppbnRlbF9kc2ksIGVudW0gcG9ydCBwb3J0KTsKPj4+Cj4+PiArdm9pZCBpbnRlbF9kc2lf ZXhlY192YnRfc2VxdWVuY2Uoc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpLAo+Pj4gKwkJCQkg ZW51bSBtaXBpX3NlcSBzZXFfaWQpOwo+Pj4gKwo+Pj4gIGJvb2wgaW50ZWxfZHNpX3BsbF9pc19l bmFibGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4+PiAgaW50IGludGVs X2NvbXB1dGVfZHNpX3BsbChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPj4+ICAJCQkg IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjb25maWcpOwo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaV9wYW5lbF92YnQuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2RzaV9wYW5lbF92YnQuYwo+Pj4gaW5kZXggYjVhMDJjNi4uZjcxZjkxMyAxMDA2 NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaV9wYW5lbF92YnQuYwo+ Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpX3BhbmVsX3ZidC5jCj4+PiBA QCAtNDAwLDEwICs0MDAsOSBAQCBzdGF0aWMgY29uc3QgY2hhciAqc2VxdWVuY2VfbmFtZShlbnVt IG1pcGlfc2VxIHNlcV9pZCkKPj4+ICAJCXJldHVybiAiKHVua25vd24pIjsKPj4+ICB9Cj4+Pgo+ Pj4gLXN0YXRpYyB2b2lkIGdlbmVyaWNfZXhlY19zZXF1ZW5jZShzdHJ1Y3QgZHJtX3BhbmVsICpw YW5lbCwgZW51bSBtaXBpX3NlcSBzZXFfaWQpCj4+PiArdm9pZCBpbnRlbF9kc2lfZXhlY192YnRf c2VxdWVuY2Uoc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpLAo+Pj4gKwkJCQkgZW51bSBtaXBp X3NlcSBzZXFfaWQpCj4+PiAgewo+Pj4gLQlzdHJ1Y3QgdmJ0X3BhbmVsICp2YnRfcGFuZWwgPSB0 b192YnRfcGFuZWwocGFuZWwpOwo+Pj4gLQlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSB2 YnRfcGFuZWwtPmludGVsX2RzaTsKPj4+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShpbnRlbF9kc2ktPmJhc2UuYmFzZS5kZXYpOwo+Pj4gIAljb25zdCB1OCAq ZGF0YTsKPj4+ICAJZm5fbWlwaV9lbGVtX2V4ZWMgbWlwaV9lbGVtX2V4ZWM7Cj4+PiBAQCAtNDY3 LDQwICs0NjYsNiBAQCBzdGF0aWMgdm9pZCBnZW5lcmljX2V4ZWNfc2VxdWVuY2Uoc3RydWN0IGRy bV9wYW5lbCAqcGFuZWwsIGVudW0gbWlwaV9zZXEgc2VxX2lkKQo+Pj4gIAl9Cj4+PiAgfQo+Pj4K Pj4+IC1zdGF0aWMgaW50IHZidF9wYW5lbF9wcmVwYXJlKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVs KQo+Pj4gLXsKPj4+IC0JZ2VuZXJpY19leGVjX3NlcXVlbmNlKHBhbmVsLCBNSVBJX1NFUV9BU1NF UlRfUkVTRVQpOwo+Pj4gLQlnZW5lcmljX2V4ZWNfc2VxdWVuY2UocGFuZWwsIE1JUElfU0VRX1BP V0VSX09OKTsKPj4+IC0JZ2VuZXJpY19leGVjX3NlcXVlbmNlKHBhbmVsLCBNSVBJX1NFUV9ERUFT U0VSVF9SRVNFVCk7Cj4+PiAtCWdlbmVyaWNfZXhlY19zZXF1ZW5jZShwYW5lbCwgTUlQSV9TRVFf SU5JVF9PVFApOwo+Pj4gLQo+Pj4gLQlyZXR1cm4gMDsKPj4+IC19Cj4+PiAtCj4+PiAtc3RhdGlj IGludCB2YnRfcGFuZWxfdW5wcmVwYXJlKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQo+Pj4gLXsK Pj4+IC0JZ2VuZXJpY19leGVjX3NlcXVlbmNlKHBhbmVsLCBNSVBJX1NFUV9BU1NFUlRfUkVTRVQp Owo+Pj4gLQlnZW5lcmljX2V4ZWNfc2VxdWVuY2UocGFuZWwsIE1JUElfU0VRX1BPV0VSX09GRik7 Cj4+PiAtCj4+PiAtCXJldHVybiAwOwo+Pj4gLX0KPj4+IC0KPj4+IC1zdGF0aWMgaW50IHZidF9w YW5lbF9lbmFibGUoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCj4+PiAtewo+Pj4gLQlnZW5lcmlj X2V4ZWNfc2VxdWVuY2UocGFuZWwsIE1JUElfU0VRX0RJU1BMQVlfT04pOwo+Pj4gLQlnZW5lcmlj X2V4ZWNfc2VxdWVuY2UocGFuZWwsIE1JUElfU0VRX0JBQ0tMSUdIVF9PTik7Cj4+PiAtCj4+PiAt CXJldHVybiAwOwo+Pj4gLX0KPj4+IC0KPj4+IC1zdGF0aWMgaW50IHZidF9wYW5lbF9kaXNhYmxl KHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQo+Pj4gLXsKPj4+IC0JZ2VuZXJpY19leGVjX3NlcXVl bmNlKHBhbmVsLCBNSVBJX1NFUV9CQUNLTElHSFRfT0ZGKTsKPj4+IC0JZ2VuZXJpY19leGVjX3Nl cXVlbmNlKHBhbmVsLCBNSVBJX1NFUV9ESVNQTEFZX09GRik7Cj4+PiAtCj4+PiAtCXJldHVybiAw Owo+Pj4gLX0KPj4+IC0KPj4+ICBzdGF0aWMgaW50IHZidF9wYW5lbF9nZXRfbW9kZXMoc3RydWN0 IGRybV9wYW5lbCAqcGFuZWwpCj4+PiAgewo+Pj4gIAlzdHJ1Y3QgdmJ0X3BhbmVsICp2YnRfcGFu ZWwgPSB0b192YnRfcGFuZWwocGFuZWwpOwo+Pj4gQEAgLTUyNCwxMCArNDg5LDYgQEAgc3RhdGlj IGludCB2YnRfcGFuZWxfZ2V0X21vZGVzKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQo+Pj4gIH0K Pj4+Cj4+PiAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fcGFuZWxfZnVuY3MgdmJ0X3BhbmVsX2Z1 bmNzID0gewo+Pj4gLQkuZGlzYWJsZSA9IHZidF9wYW5lbF9kaXNhYmxlLAo+Pj4gLQkudW5wcmVw YXJlID0gdmJ0X3BhbmVsX3VucHJlcGFyZSwKPj4+IC0JLnByZXBhcmUgPSB2YnRfcGFuZWxfcHJl cGFyZSwKPj4+IC0JLmVuYWJsZSA9IHZidF9wYW5lbF9lbmFibGUsCj4+PiAgCS5nZXRfbW9kZXMg PSB2YnRfcGFuZWxfZ2V0X21vZGVzLAo+Pj4gIH07Cj4+CgotLSAKSmFuaSBOaWt1bGEsIEludGVs IE9wZW4gU291cmNlIFRlY2hub2xvZ3kgQ2VudGVyCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ludGVsLWdmeAo=