From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 2/2] drm/i915/BXT: Tolerance at BXT DSI pipe_config comparison Date: Wed, 13 Apr 2016 12:05:11 +0200 Message-ID: <20160413100511.GT2510@phenom.ffwll.local> References: <1459272891-6830-1-git-send-email-ramalingam.c@intel.com> <1459272891-6830-2-git-send-email-ramalingam.c@intel.com> <20160330113240.GH2510@phenom.ffwll.local> <56FBE07C.7010200@intel.com> <20160330190427.GS2510@phenom.ffwll.local> <57028BAD.6030601@intel.com> <87vb3wxxt0.fsf@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x242.google.com (mail-wm0-x242.google.com [IPv6:2a00:1450:400c:c09::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id B4FF36E893 for ; Wed, 13 Apr 2016 10:04:55 +0000 (UTC) Received: by mail-wm0-x242.google.com with SMTP id n3so12464249wmn.1 for ; Wed, 13 Apr 2016 03:04:55 -0700 (PDT) Content-Disposition: inline In-Reply-To: <87vb3wxxt0.fsf@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Jani Nikula Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBBcHIgMDUsIDIwMTYgYXQgMTE6MzA6MTlBTSArMDMwMCwgSmFuaSBOaWt1bGEgd3Jv dGU6Cj4gT24gTW9uLCAwNCBBcHIgMjAxNiwgUmFtYWxpbmdhbSBDIDxyYW1hbGluZ2FtLmNAaW50 ZWwuY29tPiB3cm90ZToKPiA+IE9uIFRodXJzZGF5IDMxIE1hcmNoIDIwMTYgMTI6MzQgQU0sIERh bmllbCBWZXR0ZXIgd3JvdGU6Cj4gPj4gT24gV2VkLCBNYXIgMzAsIDIwMTYgYXQgMDc6NDk6NDBQ TSArMDUzMCwgUmFtYWxpbmdhbSBDIHdyb3RlOgo+ID4+PiBPbiBXZWRuZXNkYXkgMzAgTWFyY2gg MjAxNiAwNTowMiBQTSwgRGFuaWVsIFZldHRlciB3cm90ZToKPiA+Pj4+IE9uIFR1ZSwgTWFyIDI5 LCAyMDE2IGF0IDExOjA0OjUxUE0gKzA1MzAsIFJhbWFsaW5nYW0gQyB3cm90ZToKPiA+Pj4+PiBB dCBCWFQgRFNJLCBQSVBFIHJlZ2lzdGVycyBhcmUgaW5hY3RpdmUuIFNvIHdlIGNhbid0IGdldCB0 aGUKPiA+Pj4+PiBQSVBFJ3MgbW9kZSBwYXJhbWV0ZXJzIGZyb20gdGhlbS4gVGhlIHBvc3NpYmxl IG9wdGlvbiBpcwo+ID4+Pj4+IHJldHJpdmluZyB0aGVtIGZyb20gdGhlIFBPUlQgcmVnaXN0ZXJz LiBCdXQgbW9kZSB0aW1pbmcKPiA+Pj4+PiBwYXJhbWV0ZXJzIGFyZSBwcm9nYW1tZWQgdG8gcG9y dCByZWdpc3RlcnMgaW50ZXJtcyBvZiBieXRlY2xvY2tzLgo+ID4+Pj4+Cj4gPj4+Pj4gVGhlIGZv cm11bGEgdXNlZCB0byBjb252ZXJ0IHRoZSBwaXhlbHMgaW50ZXJtcyBvZiBieXRlY2xrIGlzCj4g Pj4+Pj4gCURJVl9ST1VORF9VUChESVZfUk9VTkRfVVAocGl4ZWxzICogYnBwICogYnVyc3RfbW9k ZV9yYXRpbywKPiA+Pj4+PiAgIAkJCQkJCTggKiAxMDApLCBsYW5lX2NvdW50KTsKPiA+Pj4+Pgo+ ID4+Pj4+IFNvIHdlIHJldHJpZXZlIHRoZW0sIGludGVybXMgb2YgcGl4ZWxzIGFzCj4gPj4+Pj4g CURJVl9ST1VORF9VUCgoY2xrX2hzICogbGFuZV9jb3VudCAqIDggKiAxMDApLAo+ID4+Pj4+IAkJ CQkJKGJwcCAqIGJ1cnN0X21vZGVfcmF0aW8pKTsKPiA+Pj4+Pgo+ID4+Pj4+IER1ZSB0byB0aGUg bXVsdGlwbGUgRElWX1JPVU5EX1VQIGluIGJvdGggZm9ybXVsYXMgd2UgZ2V0IHRoZSB3b3JzdAo+ ID4+Pj4+IGNhc2UgZGVsdGEgaW4gdGhlIHJldHJpZXZlZCBQSVBFJ3MgdGltaW5nIHBhcmFtZXRl ciBhcyBiZWxvdwo+ID4+Pj4+IAlESVZfUk9VTkRfVVAoKDggKiBpbnRlbF9kc2ktPmxhbmVfY291 bnQgKiAxMDApLAo+ID4+Pj4+IAkJKGRzaV9waXhlbF9mb3JtYXRfYnBwKGludGVsX2RzaS0+cGl4 ZWxfZm9ybWF0KSAqCj4gPj4+Pj4gCQkJaW50ZWxfZHNpLT5idXJzdF9tb2RlX3JhdGlvKSkpCj4g Pj4+Pj4KPiA+Pj4+PiBUaGlzIGNvbnZlcnNvbiBvZiBieXRlY2xrIHRvIHBpeGVsIGlzIHJlcXVp cmVkIGZvciBoc3luYywgaGZwIGFuZCBoYnAuCj4gPj4+Pj4gV2hpY2ggaW50ZXJuIGltcGFjdHMg aG9ycml6b250YWwgdGltaW5nIHBhcmFtZXRlcnMuIEF0IHdvcnN0IGNhc2UgdG8KPiA+Pj4+PiBn ZXQgaHRvdGFsIGFsbCB0aGVyZSBwYXJhbWV0ZXJzIGFyZSBhZGRlZCB3aXRoIGhhY3RpdmUuCj4g Pj4+Pj4gSGVuY2UgZGVsdGEgd2lsbCBiZSAzIHRpbWVzIG9mIGFib3ZlIGZvcm11bGEuIEhlbmNl IHRoaXMgdmFsdWUgaXMKPiA+Pj4+PiBjb25zaWRlcmVkIGFzIHRvbGVyYW5jZSBmb3IgcGlwZV9j b25maWcgY29tcGFyaXNvbiwgaW4gY2FzZSBvZiBCWFQgRFNJLgo+ID4+Pj4+Cj4gPj4+Pj4gU2ln bmVkLW9mZi1ieTogUmFtYWxpbmdhbSBDIDxyYW1hbGluZ2FtLmNAaW50ZWwuY29tPgo+ID4+Pj4g VGhpcyBpcyB0aGUgd3Jvbmcgd2F5IHJvdW5kIGltbywgYmV0dGVyIHdvdWxkIGJlIHRvIGFkanVz dCB0aGUgYWRqdXN0ZWQKPiA+Pj4+IG1vZGUgaW4gdGhlIGJ4dCBkc2kgY29tcHV0ZV9jb25maWcg ZnVuY3Rpb24gdG8gbWF0Y2ggdGhlIGh3IGdyYW51bGFyaXR5Lgo+ID4+Pj4gU3R1ZmYgX3JlYWxs eV8gc2hvdWxkIG1hdGNoIGV4YWN0bHksIHRoZSBmdXp6eSBjbG9jayBtYXRjaGluZyBpcyBtb3N0 bHkKPiA+Pj4+IGJlY2F1c2Ugb3VyIGNsb2NrIGNvZCBpcyBhIG1lc3MsIGFuZCB3ZSBjYW4ndC9k b24ndCBwcm9wZXJseQo+ID4+Pj4gZm9yd2FyZC1jb21wdWF0ZSB0aGUgYWN0dWFsIGNsb2NrIHRp bWluZ3Mgd2UgcHJvZ3JhbSBpbnRvIHRoZSBoYXJkd2FyZS4KPiA+Pj4+IC1EYW5pZWwKPiA+Pj4g RGFuaWVsLCBJIGdvdCB5b3VyIHBvaW50LiBCdXQgdGhlIHByb2JsZW0gd2lsbCBiZSB0aGF0IGRp ZmZpY3VsdHkoZXZlbiBpZgo+ID4+PiBwb3NzaWJsZSkgaW4gYWRqdXN0aW5nIHRoZSBhZGp1c3Rl ZCBtb2RlIHBhcmFtZXRlcnMuCj4gPj4+IFJlYXNvbiBpcyB3ZSBhcmUgbm90IHByb2dyYW1pbmcg dGhlIG1vZGUgcGFyYW1ldGVyIGFzIHN1Y2guIFdlIHdpbGwgZGVyaXZlCj4gPj4+IHRoZSBoZnAs IGhzeW5jIGFuZCBoYnAgZnJvbQo+ID4+PiBoc3luY19zdGFydCwgaHN5bmNfZW5kLCBoZGlzcGxh eSBhbmQgaHRvdGFsLiBUaGVzZSB3aWxsIGJlIGFkanVzdGVkKGRpdmlkZWQKPiA+Pj4gYnkgMikg Zm9yIGR1YWwgbGluayBzY2VuYXJpby4KPiA+Pj4gQW5kIHRoZW4gcmVzdWx0YW50IHdpbGwgZ28g aW50byB0aGUgY29udmVyc2lvbiBhcyBtZW50aW9uZWQgaW4gdGhlIGNvbW1pdAo+ID4+PiBtZXNz YWdlICh0d28gRElWX1JPVU5EX1VQIG9ud2FyZHMKPiA+Pj4gYW5kIG9uZSBESVZfUk9VTkRfVVAg YmFja3dhcmRzKS4gRm9yIHRoaXMgd2UgaGF2ZSB0byBtYWtlIHRoZSBwYXJhbWV0ZXIKPiA+Pj4g ZGl2aXNpYmxlIGJ5IHRocmVlIGRpZmZlcmVudCBmYWN0b3JzLgo+ID4+PiBTbyBJTUhPLCBldmVu IGlmIHRoaXMgaXMgcG9zc2libGUsIGl0IHdpbGwgbG9vayBtb3JlIG1lc3N5Lgo+ID4+Pgo+ID4+ PiBQcmVkaWN0aW5nIHRoZSBtYXggZXJyb3IgYW5kIHRvbGVyYXRpbmcgaXQgaW4gcGlwZV9jb25m aWdfY29tcGFyZSB3aWxsIGJlCj4gPj4+IHRoZSBzdHJhaWdodCBmb3J3YXJkIGFuZCBtb3JlIHJl YXNvbmFibGUuCj4gPj4+IFBsZWFzZSBsZXQgbWUga25vdyBpZiBpIGNhbiBnbyBhaGVhZCBpbiB0 aGlzIGFwcHJvYWNoLgo+ID4+IFllYWggSSBkaXNjdXNzZWQgdGhpcyBzb21lIG1vcmUgd2l0aCBK YW5pIG9uIGlyYy4gSSdkIHNheSB3ZSBzaG91bGQgc3RvcmUKPiA+PiB0aGlzIGFkanVzdGVkIGhv cml6b250YWwgdGltaW5ncyAodGhlIG9uZXMgZnVkZ2VkIHdpdGggYnVyc3RfbW9kZV9yYXRpbywK PiA+PiBsYW5lX2NvdW50LCBkdWFsLWxpbmsgYW5kIGFsbCB0aGVzZSB0aGluZ3MgYXBwbGllZCkg aW50bwo+ID4+IGNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZS4gQW5kIHRoZW4gb2ZjIGFs c28gcmVhZCB0aG9zZSB2YWx1ZXMgb3V0Lgo+ID4+Cj4gPj4gVGhlIG92ZXJhbGwgaWRlYSBvZiB0 aGUgc3RhdGUgdmVyaWZ5L2NvbXBhcmUgbG9naWMgaXMgdGhhdCB3ZSBzdGFydCBvdXQKPiA+PiB3 aXRoIHJlcXVlc3RlZCBzdGF0ZSBmcm9tIHVzZXJzcGFjZSwgdGhlbiBkZXJpdmUgdGhlIHJlYWwg aHcgc3RhdGUuIEFuZAo+ID4+IHRoZW4gY29tcGFyZSB0aGF0IGNvbXB1dGVkIGh3IHN0YXRlIHdp dGggd2hhdCdzIHRoZXJlIGFscmVhZHkuIEV4Y2VwdCBmb3IKPiA+PiBjbG9ja3MsIHdoZXJlIHRo ZXJlJ3Mgc3BlY2lhbCByZWFzb25zLCB3ZSBuZXZlciBnbyBiYWNrLCBzaW5jZSBnb2luZyBiYWNr Cj4gPj4gcmVxdWlyZXMgdXMgdG8gYXBwbHkgYSByYW5nZS4gVGhpcyBpcyB0aGUgb25seSB3YXkg dG8gZ3Vhcm5hdGVlIHRoYXQgImh3Cj4gPj4gaGFzIHRoZSBzYW1lIGV4YWN0IG1vZGUgcHJvZ3Jh bW1lZCBpbiBib3RoIGNhc2VzIiBpZmYgImludGVsX2NydGNfc3RhdGUKPiA+PiBtYXRjaGVzIHBl ciBpbnRlbF9jcnRjX2NvbmZpZ19jb21wYXJlIi4KPiA+Pgo+ID4+IHN0YXRlLT5hZGp1c3RlZF9t b2RlIGlzIG5ldmVyIGV4cG9zZWQgdG8gdXNlcnNwYWNlLCBzbyB0aGVyZSdzIG5vIHByb2JsZW0K PiA+PiBpZiBpdCdzIGhhcyAic3RyYW5nZSIgdmFsdWVzLiBBbmQgd2UgYWxyZWFkeSBoYXZlIHBp cGVfc3JjX2gvdyB0byBleHByZXNzCj4gPj4gdGhlIGxvZ2ljYWwgaW5wdXQgcmVjdGFuZ2xlLgo+ ID4+Cj4gPj4gVGhlIGlkZWEgaXMgc2ltaWxhciB0byBob3cgd2Ugc2V0IGFkanVzdGVkX21vZGUu ZmxhZ3MgdG8gd2hhdCB3ZSBhY3R1YWxseQo+ID4+IHByb2dyYW0sIGluc3RlYWQgb2YgdHJ5aW5n IHRvIG1ha2Ugc29tZXRoaW5nIHVwIHRoYXQncyBub3QgcGVyZmVjdGx5Cj4gPj4gYWNjdXJhdGUu Cj4gPj4gLURhbmllbAo+ID4gRGFuaWVsLAo+ID4KPiA+IEkgaGF2ZSB0ZXN0ZWQgYnkgYWRqdXN0 aW5nIHRoZSBhZGp1c3RlZF9tb2RlIGluIHNldF9kc2lfdGltaW5ncygpIAo+ID4gaW5zdGVhZCBv ZiBpbnRlbF9kc2lfY29tcHV0ZV9jb25maWcoKS4KPiA+IFJlYXNvbiBpcyBpZiB3ZSBtb2RpZnkg dGhlIGFkanVzdGVkIG1vZGUgYXQgaW50ZWxfZHNpX2NvbXB1dGVfY29uZmlnKCkgCj4gPiBpdHNl bGYsIHRoZW4gbW9kaWZpZWQgdmFsdWUgd2lsbAo+ID4gYmUgdGFrZW4gYXMgaW5wdXQgZm9yIHNl dF9kc2lfdGltaW5ncy4gSGVuY2UgdGhlIGdldF9jb25maWcgd2lsbCBkZXZpYXRlIAo+ID4gZnVy dGhlci4gSSBob3BlIHRoaXMgc2hvdWxkIGJlIGZpbmUgd2l0aCB5b3UgYW5kIEphbmkuCj4gPgo+ ID4gVGhpcyB3aWxsIHdvcmsgb3V0LCBpZiBzZXRfZHNpX3RpbWluZ3MoKSBpcyBjYWxsZWQgYWZ0 ZXIgdGhlIAo+ID4gZHNpX2NvbXB1dGVfY29uZmlnKCkgb24gZXZlcnkgc3VzcGVuZCBhbmQgcmVz dW1lIG9yIG1vZGVzZXQuCj4gPiBJIHdpbGwgdmVyaWZ5IHRoaXMgb24gQW5kcm9pZCBvbmNlIGFu ZCB1cGRhdGUuCj4gPgo+ID4gUGxlYXNlIHNoYXJlIHlvdXIgdmlldyBvbiB0aGlzLCBzbyB0aGF0 IGNhbiB1cGRhdGUgdGhlIHBhdGNoIHdpdGggCj4gPiBjb3JyZXNwb25kaW5nIGNoYW5nZXMuCj4g Cj4gSSBjYW4ndCBzcGVhayBmb3IgRGFuaWVsLCBidXQgSSB0aGluayBoaXMgcG9pbnQgd2FzIHRv IHVwZGF0ZSBhZGp1c3RlZAo+IG1vZGUgaW4gLT5jb21wdXRlX2NvbmZpZygpIGluIGEgd2F5IHRo YXQgY2FuIGJlIHVzZWQgZGlyZWN0bHkgaW4KPiBzZXRfZHNpX3RpbWluZ3MoKS4gVGhlbiwgaXQg c2hvdWxkIGJlIHBvc3NpYmxlIHRvIHJlYWQgdGhlIHRpbWluZ3MgZnJvbQo+IHRoZSBoYXJkd2Fy ZSwgYW5kIGNvbXBhcmUuCgpZdXAsIHRoYXQncyB0aGUgaWRlYS4gQW5kIHRoZSBpZGVhIGZ1cnRo ZXJtb3JlIGlzIHRvIHN0b3JlIF9leGFjdGx5XyB0aGUKdGltaW5ncyB3ZSBzdG9yZSBpbiB0aGUg ZHNpIGNvbnRyb2xsZXIgKGluY2x1ZGluZyBjbG9jayBmdWRnaW5nIGFuZAp3aGF0ZXZlcikgYW5k IF9ub3RfIHRyeSB0byBjb21wdXRlIHRoaW5ncyBiYWNrd2FyZHMuIFRoZSBpZGVhIGJlaGluZCB0 aGUKaHcgc3RhdGUgY2hlY2tlciBpcyB0aGF0IHlvdSB0YWtlIHRoZSByZXF1ZXN0ZWQgbW9kZSBh bmQgY29tcHV0ZSBmb3J3YXJkCnVudGlsIHlvdSBhcmUgYXQgdGhlIHZhbHVlcyB5b3UgY2FuIHBy b2dyYW0gaW50byB0aGUgaHcuIEN1cnJlbnRseSB3aGF0IHdlCmhhdmUgaW4gLT5hZGp1c3RlZF9t b2RlIGlzIG5vdCBhY3R1YWxseSB3aGF0IHdlIHByb2dyYW0gaW50byB0aGUgaHcsIHNvCm5vdCB5 ZXQgZ29vZCBlbm91Z2guCgpUaGVuIHRoZSBodyBzdGF0ZSB2ZXJpZmllciBvbmx5IGNvbXBhcmVz IHRoaW5ncyAxOjEuIENsb2NrcyBhcmUgYSBiaXQgYW4KZXhjZXB0aW9uLCBmb3Igc3BlY2lhbCBy ZWFzb25zLiBCdXQgZm9yIGFueXRoaW5nIGVsc2Ugd2Ugc2hvdWxkbid0IGV2ZXIKdHJ5IHRvIHJl Y29uc3RydWN0IHRoZSBvcmlnaW5hbCByZXF1ZXN0ZWQgbW9kZSBmcm9tIHVzZXJzcGFjZSwgZHVl IHRvCmFsaWFzaW5nIGlzc3VlcyBhbmQgcm91bmRpbmcgcHJvYmxlbXMuCgpUaGlzIG1lYW5zIHRo YXQgZm9yIGRzaSAtPmFkanVzdGVkX21vZGUgd2lsbCBoYXZlIGV2ZW4gbGVzcyB0byBkbyB3aXRo IHRoZQpyZXF1ZXN0ZWQgbW9kZSBmcm9tIHVzZXJzcGFjZSwgYnV0IHRoYXQncyBubyBpc3N1ZS4g V2Ugb25seSB1c2UgdGhhdAppbnRlcm5hbGx5IHRvIHRyYWNrIHRoZSBhY3R1YWwgaHcgc3RhdGUu Ci1EYW5pZWwKCj4gCj4gQlIsCj4gSmFuaS4KPiAKPiAKPiA+Pgo+ID4+Pj4+IC0tLQo+ID4+Pj4+ IFJldmlld2VkIGF0IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL2FyY2hpdmVzL2ludGVs LWdmeC8yMDE2LU1hcmNoLzA4OTU0OC5odG1sCj4gPj4+Pj4KPiA+Pj4+PiAgIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8ICAgNjIgKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKy0tLQo+ID4+Pj4+ICAgMSBmaWxlIGNoYW5nZWQsIDU3IGluc2VydGlvbnMoKyksIDUg ZGVsZXRpb25zKC0pCj4gPj4+Pj4KPiA+Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxh eS5jCj4gPj4+Pj4gaW5kZXggYzA2MjdkNi4uMjgyZjAzNiAxMDA2NDQKPiA+Pj4+PiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+Pj4+PiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+Pj4+PiBAQCAtMTI1NTcsNiArMTI1NTcs OSBAQCBpbnRlbF9waXBlX2NvbmZpZ19jb21wYXJlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4g Pj4+Pj4gICAJCQkgIGJvb2wgYWRqdXN0KQo+ID4+Pj4+ICAgewo+ID4+Pj4+ICAgCWJvb2wgcmV0 ID0gdHJ1ZTsKPiA+Pj4+PiArCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0 YyhjdXJyZW50X2NvbmZpZy0+YmFzZS5jcnRjKTsKPiA+Pj4+PiArCXN0cnVjdCBpbnRlbF9lbmNv ZGVyICppbnRlbF9lbmNvZGVyOwo+ID4+Pj4+ICsJc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNp ID0gTlVMTDsKPiA+Pj4+PiAgICNkZWZpbmUgSU5URUxfRVJSX09SX0RCR19LTVMoZm10LCAuLi4p IFwKPiA+Pj4+PiAgIAlkbyB7IFwKPiA+Pj4+PiBAQCAtMTI1OTMsNiArMTI1OTYsNTQgQEAgaW50 ZWxfcGlwZV9jb25maWdfY29tcGFyZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ID4+Pj4+ICAg CQlyZXQgPSBmYWxzZTsgXAo+ID4+Pj4+ICAgCX0KPiA+Pj4+PiArLyoKPiA+Pj4+PiArICogSW4g Y2FzZSBvZiBCWFQgRFNJLCBIVyBwaXBlX2NvbmZpZyB3aWxsIGJlIHJldHJpZXZlZCBmcm9tIHRo ZSBwb3J0J3MgdGltaW5nCj4gPj4+Pj4gKyAqIGNvbmZpZ3VyYXRpb24uIFRoaXMgcmV0cml2YWwg aW5jbHVkZXMgc29tZSBlcnJvcnMgZHVlIHRvIHRoZSBESVZfUk9VTkRfVVAuCj4gPj4+Pj4gKyAq IFNvIHdlIGFyZSBjb25zaWRlcmluZyB0aGUgbWF4IHBvc3NpYmxlIGVycm9yIGF0IHRoZSBjb21w YXJpc29uLgo+ID4+Pj4+ICsgKi8KPiA+Pj4+PiArLyoKPiA+Pj4+PiArICogaHRvdGFsID0gaGFj dGl2ZSArIGhmcCArIGhzeW5jICsgaGJwLiBIZXJlIGxhc3QgdGhyZWUgbGVtZW50cyBtaWdodCBo YXZlCj4gPj4+Pj4gKyAqIHRoZSBjb252ZXJzb24gZXJyb3IsIGhlbmNlIHdlIGNvbnNpZGVyIHRo ZSAzIHRpbWVzIG9mIGVycm9yIGFzIHRvbGVyYW5jZS4KPiA+Pj4+PiArICovCj4gPj4+Pj4gKwo+ ID4+Pj4+ICsjZGVmaW5lIE1BWF9CWFRfRFNJX1RJTUlOR19SRVRSSVZBTF9FUlIgXAo+ID4+Pj4+ ICsJCShpbnRlbF9kc2kgPT0gTlVMTCA/IDAgOiBcCj4gPj4+Pj4gKwkJRElWX1JPVU5EX1VQKCgz ICogOCAqIGludGVsX2RzaS0+bGFuZV9jb3VudCAqIDEwMCksIFwKPiA+Pj4+PiArCQkoZHNpX3Bp eGVsX2Zvcm1hdF9icHAoaW50ZWxfZHNpLT5waXhlbF9mb3JtYXQpICogXAo+ID4+Pj4+ICsJCQlp bnRlbF9kc2ktPmJ1cnN0X21vZGVfcmF0aW8pKSkKPiA+Pj4+PiArCj4gPj4+Pj4gKyNkZWZpbmUg QlhUX0RTSV9QSVBFX0NPTkZfQ0hFQ0tfSV9SQU5HRShuYW1lKSB7IFwKPiA+Pj4+PiArCWZvcl9l YWNoX2VuY29kZXJfb25fY3J0YyhkZXYsICZjcnRjLT5iYXNlLCBcCj4gPj4+Pj4gKwkJCQkJaW50 ZWxfZW5jb2RlcikgeyBcCj4gPj4+Pj4gKwkJaWYgKGludGVsX2VuY29kZXItPnR5cGUgPT0gSU5U RUxfT1VUUFVUX0RTSSkgeyBcCj4gPj4+Pj4gKwkJCWludGVsX2RzaSA9IGVuY190b19pbnRlbF9k c2koJmludGVsX2VuY29kZXItPmJhc2UpOyBcCj4gPj4+Pj4gKwkJfSBcCj4gPj4+Pj4gKwl9IFwK PiA+Pj4+PiArCWlmICghKGN1cnJlbnRfY29uZmlnLT5uYW1lIDwgcGlwZV9jb25maWctPm5hbWUg JiYgXAo+ID4+Pj4+ICsJCWN1cnJlbnRfY29uZmlnLT5uYW1lID49IChwaXBlX2NvbmZpZy0+bmFt ZSAtIFwKPiA+Pj4+PiArCQkJTUFYX0JYVF9EU0lfVElNSU5HX1JFVFJJVkFMX0VSUikpKSB7IFwK PiA+Pj4+PiArCQlJTlRFTF9FUlJfT1JfREJHX0tNUygibWlzbWF0Y2ggaW4gIiAjbmFtZSAiICIg XAo+ID4+Pj4+ICsJCSAgIihleHBlY3RlZCAlaSwgZm91bmQgJWkoRXJyIHRvbGVyYW5jZSBjb25z aWRlcmVkKSlcbiIsIFwKPiA+Pj4+PiArCQkgIGN1cnJlbnRfY29uZmlnLT5uYW1lLCBcCj4gPj4+ Pj4gKwkJICBwaXBlX2NvbmZpZy0+bmFtZSk7IFwKPiA+Pj4+PiArCQlyZXQgPSBmYWxzZTsgXAo+ ID4+Pj4+ICsJfSBcCj4gPj4+Pj4gK30KPiA+Pj4+PiArCj4gPj4+Pj4gKyNkZWZpbmUgUElQRV9D T05GX0NIRUNLX0lfUkFOR0UobmFtZSkgeyBcCj4gPj4+Pj4gKwlpZiAoY3VycmVudF9jb25maWct Pm5hbWUgIT0gcGlwZV9jb25maWctPm5hbWUpIHsgXAo+ID4+Pj4+ICsJCWlmIChJU19CUk9YVE9O KGRldikgJiYgY3J0Yy0+Y29uZmlnLT5oYXNfZHNpX2VuY29kZXIpIHsgXAo+ID4+Pj4+ICsJCQlC WFRfRFNJX1BJUEVfQ09ORl9DSEVDS19JX1JBTkdFKG5hbWUpIFwKPiA+Pj4+PiArCQl9IGVsc2Ug eyBcCj4gPj4+Pj4gKwkJCUlOVEVMX0VSUl9PUl9EQkdfS01TKCJtaXNtYXRjaCBpbiAiICNuYW1l ICIgIiBcCj4gPj4+Pj4gKwkJCSAgIihleHBlY3RlZCAlaSwgZm91bmQgJWkpXG4iLCBcCj4gPj4+ Pj4gKwkJCSAgY3VycmVudF9jb25maWctPm5hbWUsIFwKPiA+Pj4+PiArCQkJICBwaXBlX2NvbmZp Zy0+bmFtZSk7IFwKPiA+Pj4+PiArCQkJcmV0ID0gZmFsc2U7IFwKPiA+Pj4+PiArCQl9IFwKPiA+ Pj4+PiArCX0gXAo+ID4+Pj4+ICt9Cj4gPj4+Pj4gKwo+ID4+Pj4+ICAgI2RlZmluZSBQSVBFX0NP TkZfQ0hFQ0tfTV9OKG5hbWUpIFwKPiA+Pj4+PiAgIAlpZiAoIWludGVsX2NvbXBhcmVfbGlua19t X24oJmN1cnJlbnRfY29uZmlnLT5uYW1lLCBcCj4gPj4+Pj4gICAJCQkJICAgICZwaXBlX2NvbmZp Zy0+bmFtZSxcCj4gPj4+Pj4gQEAgLTEyNjk3LDExICsxMjc0OCwxMSBAQCBpbnRlbF9waXBlX2Nv bmZpZ19jb21wYXJlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gPj4+Pj4gICAJUElQRV9DT05G X0NIRUNLX0koaGFzX2RzaV9lbmNvZGVyKTsKPiA+Pj4+PiAgIAlQSVBFX0NPTkZfQ0hFQ0tfSShi YXNlLmFkanVzdGVkX21vZGUuY3J0Y19oZGlzcGxheSk7Cj4gPj4+Pj4gLQlQSVBFX0NPTkZfQ0hF Q0tfSShiYXNlLmFkanVzdGVkX21vZGUuY3J0Y19odG90YWwpOwo+ID4+Pj4+IC0JUElQRV9DT05G X0NIRUNLX0koYmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfaGJsYW5rX3N0YXJ0KTsKPiA+Pj4+PiAt CVBJUEVfQ09ORl9DSEVDS19JKGJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2hibGFua19lbmQpOwo+ ID4+Pj4+IC0JUElQRV9DT05GX0NIRUNLX0koYmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfaHN5bmNf c3RhcnQpOwo+ID4+Pj4+IC0JUElQRV9DT05GX0NIRUNLX0koYmFzZS5hZGp1c3RlZF9tb2RlLmNy dGNfaHN5bmNfZW5kKTsKPiA+Pj4+PiArCVBJUEVfQ09ORl9DSEVDS19JX1JBTkdFKGJhc2UuYWRq dXN0ZWRfbW9kZS5jcnRjX2h0b3RhbCk7Cj4gPj4+Pj4gKwlQSVBFX0NPTkZfQ0hFQ0tfSV9SQU5H RShiYXNlLmFkanVzdGVkX21vZGUuY3J0Y19oYmxhbmtfc3RhcnQpOwo+ID4+Pj4+ICsJUElQRV9D T05GX0NIRUNLX0lfUkFOR0UoYmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfaGJsYW5rX2VuZCk7Cj4g Pj4+Pj4gKwlQSVBFX0NPTkZfQ0hFQ0tfSV9SQU5HRShiYXNlLmFkanVzdGVkX21vZGUuY3J0Y19o c3luY19zdGFydCk7Cj4gPj4+Pj4gKwlQSVBFX0NPTkZfQ0hFQ0tfSV9SQU5HRShiYXNlLmFkanVz dGVkX21vZGUuY3J0Y19oc3luY19lbmQpOwo+ID4+Pj4+ICAgCVBJUEVfQ09ORl9DSEVDS19JKGJh c2UuYWRqdXN0ZWRfbW9kZS5jcnRjX3ZkaXNwbGF5KTsKPiA+Pj4+PiAgIAlQSVBFX0NPTkZfQ0hF Q0tfSShiYXNlLmFkanVzdGVkX21vZGUuY3J0Y192dG90YWwpOwo+ID4+Pj4+IEBAIC0xMjc3OSw2 ICsxMjgzMCw3IEBAIGludGVsX3BpcGVfY29uZmlnX2NvbXBhcmUoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwKPiA+Pj4+PiAgICN1bmRlZiBQSVBFX0NPTkZfQ0hFQ0tfWAo+ID4+Pj4+ICAgI3VuZGVm IFBJUEVfQ09ORl9DSEVDS19JCj4gPj4+Pj4gKyN1bmRlZiBQSVBFX0NPTkZfQ0hFQ0tfSV9SQU5H RQo+ID4+Pj4+ICAgI3VuZGVmIFBJUEVfQ09ORl9DSEVDS19QCj4gPj4+Pj4gICAjdW5kZWYgUElQ RV9DT05GX0NIRUNLX0lfQUxUCj4gPj4+Pj4gICAjdW5kZWYgUElQRV9DT05GX0NIRUNLX0ZMQUdT Cj4gPj4+Pj4gLS0gCj4gPj4+Pj4gMS43LjkuNQo+ID4+Pj4+Cj4gPj4+Pj4gX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiA+Pj4+PiBJbnRlbC1nZnggbWFp bGluZyBsaXN0Cj4gPj4+Pj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+ID4+Pj4+ IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 Cj4gPj4+IC0tIAo+ID4+PiBUaGFua3MsCj4gPj4+IC0tUmFtCj4gPj4+Cj4gCj4gLS0gCj4gSmFu aSBOaWt1bGEsIEludGVsIE9wZW4gU291cmNlIFRlY2hub2xvZ3kgQ2VudGVyCgotLSAKRGFuaWVs IFZldHRlcgpTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Jsb2cu ZmZ3bGwuY2gKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K SW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==