From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 3/3] drm/i915: Share cdclk code for BDW and BXT Date: Fri, 30 Oct 2015 19:32:33 +0200 Message-ID: <20151030173233.GG4437@intel.com> References: <1445952218-25830-1-git-send-email-ville.syrjala@linux.intel.com> <1445952218-25830-3-git-send-email-ville.syrjala@linux.intel.com> <871tcgv34o.fsf@intel.com> <20151027143156.GJ4437@intel.com> <20151030160626.GJ16848@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id 0CF6B6ED38 for ; Fri, 30 Oct 2015 10:32:36 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20151030160626.GJ16848@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 T24gRnJpLCBPY3QgMzAsIDIwMTUgYXQgMDU6MDY6MjdQTSArMDEwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBPbiBUdWUsIE9jdCAyNywgMjAxNSBhdCAwNDozMTo1NlBNICswMjAwLCBWaWxsZSBT eXJqw6Rsw6Qgd3JvdGU6Cj4gPiBPbiBUdWUsIE9jdCAyNywgMjAxNSBhdCAwMzo0MzowM1BNICsw MjAwLCBKYW5pIE5pa3VsYSB3cm90ZToKPiA+ID4gT24gVHVlLCAyNyBPY3QgMjAxNSwgdmlsbGUu c3lyamFsYUBsaW51eC5pbnRlbC5jb20gd3JvdGU6Cj4gPiA+ID4gRnJvbTogVmlsbGUgU3lyasOk bMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiA+ID4gPgo+ID4gPiA+IFRoZSBk aWZmZXJlbmNlIGJldHdlbiB0aGUgQlhUIGFuZCBCRFcgY2RjbGsgY29kZSBib2lscyBkb3duIHRv IHR3bwo+ID4gPiA+IHRoaW5nczogY2xhbWluZyB0aGUgY2RjbGsgdG8gdGhlIG1heGltdW0gc3Vw cG9ydGVkLCBhbmQgcGFuZWwgZml0dGVyCj4gPiA+ID4gZG93bnNjYWxpbmcgcmF0aW8KPiA+ID4g Pgo+ID4gPiA+IFVuaWZ5aW5nIHRoZSB0aGUgbWF4IGNkY2xrIGNsYW1waW5nIGlzIGVhc3ksIGp1 c3QgZG8gaXQuCj4gPiA+ID4KPiA+ID4gPiBBbmQgYXMgZmFyIGFzIHRoZSBwYW5lbCBmaXR0ZXIg aXMgY29uY2VybmVkLCBTS0wrIGFscmVhZHkgKGFiKXVzZSB0aGUKPiA+ID4gPiBwY2ggcGZpdCBz dGF0ZSBmb3IgaXRzIHBpcGUgc2NhbGVyIGluZm9ybWF0aW9uLCBzbyBpdCB3aWxsIGNvbXB1dGUg dGhlCj4gPiA+ID4gYWRqdXN0ZWQgcGl4ZWwgcmF0ZSBjb3JyZWN0bHkuCj4gPiA+ID4KPiA+ID4g PiBTbyB3ZSBjYW4ganVzdCB1c2UgdGhlIEJEVyBjb2RlIGZvciBCWFQsIGFzIGxvbmcgYXMgd2Ug bGlmdCB0aGUgQlhUCj4gPiA+ID4gcGl4ZWwgcmF0ZSAtPiBjZGNsayBzZWxlY3Rpb24gaW50byB0 aGUgY29ycmVjdCBwbGFjZS4KPiA+ID4gCj4gPiA+IEkgZG9uJ3QgbGlrZSB0aGUgZGlyZWN0aW9u IHRha2VuIGJ5IHRoaXMgcGF0Y2guCj4gPiA+IAo+ID4gPiBXZSBoYXZlIHRoZSBwbGF0Zm9ybSBz cGVjaWZpYyBmdW5jdGlvbnMgdG8ga2VlcCBzdHVmZiBwbGF0Zm9ybQo+ID4gPiBzcGVjaWZpYy4g Tm93IHlvdSBjbGFpbSBiZHcgYW5kIGJ4dCBhcmUgYWxtb3N0IHRoZSBzYW1lLCB5ZXQgdGhlCj4g PiA+IGZ1bmN0aW9ucyBhcmUgZmlsbGVkIHdpdGggY29uZGl0aW9uYWxzIG9uIHRoZSBwbGF0Zm9y bS4gSSB2YWx1ZSBoYXZpbmcKPiA+ID4gc3RyYWlnaHRmb3J3YXJkIGFuZCByZWFkYWJsZSBwbGF0 Zm9ybSBzcGVjaWZpYyBob29rcyBtdWNoIGhpZ2hlciB0aGFuCj4gPiA+IHRoZSBzbGlnaHQgcmVk dWN0aW9uIGluIGxpbmUgY291bnQuCj4gPiAKPiA+IEkgYWdyZWUgdGhhdCBpdCdzIG5vdCBhbGwg dGhhdCBuaWNlLiBUaGUgcmVhbCBwcm9ibGVtIGlzIHRoYXQgdGhlIGN1cnJlbnQKPiA+IGNkY2xr ICBmdW5jdGlvbiBwb2ludGVycyBhcmUganVzdCB0b28gaGlnaCBsZXZlbC4gVGhleSByZWFsbHkg c2hvdWxkCj4gPiBiZSBhdCB0aGUgY2FsY19jZGNsayBhbmQgc2V0X2NkY2xrIGxldmVsLiBCdXQg Zml4aW5nIHRoYXQgd291bGQgcmVxdWlyZQo+ID4gYWN0dWFsbHkgZGVhbGluZyB3aXRoIHRoZSBn bWNoIHBmaXQsIGFuZCBzdHVmZmluZyB0aGUgcG93ZXIgZG9tYWluCj4gPiBoYWNrIChhc3N1bWlu ZyB3ZSBzdGlsbCBuZWVkIGl0KSBhbmQgdGhlIHBmaSBwcm9ncmFtbWluZyBmb3Igdmx2L2Nodgo+ ID4gaW50byB0aGUgbG93ZXIgbGV2ZWwgZnVuY3Rpb25zLiBBbmQgbG9va3MgbGlrZSBubyBvbmUg aGFzIGJvdGhlcmVkIHRvIGRvCj4gPiBhbnkgb2YgdGhhdC4KPiAKPiB2ZnVuYyBob29rcyBpbW8g c2hvdWxkIGJlIGhpZ2gtbGV2ZWwsIHdpdGggY29tbW9uIGNvZGUgc2hhcmVkIGJ5Cj4gZXh0cmFj dGluZyBoZWxwZXJzLiBUcnlpbmcgdG8gbWFrZSB2ZnVuY3Mgc3VwZXIgZmxleGlibGUgaXMgaW1v IGFuCj4gYXBwcm9hY2ggd2hpY2ggb2Z0ZW4ganVzdCBsZWFkcyB0byBiaWcgdHJvdWJsZS4gV2Ug cHJvYmFibHkgc2hvdWxkIHJpcCBvdXQKPiBhIHBpbGUgb2YgdGhlIGN1cnJlbnQgY2Rsb2NrIHZm dW5jIGhvb2tzIC4uLiBVbmZvcnR1bmF0ZWx5IGF0b21pYyBpcyBzdGlsbAo+IGluLWZsaWdodCBh IGxvdCwgYW5kIGl0J3MgYWxzbyBsYWNraW5nIHNvbWUgcmVhbGx5IGltcG9ydGFudCB0b3AtbGV2 ZWwKPiB2ZnVuY3MgZm9yIGhhbmRsaW5nIG1vZGVzZXR0aW5nLgoKVGhlIHRvcCBsZXZlbCBjZGNs ayBsb2dpYyBpcyAob3IgcmF0aGVyIHNob3VsZCBiZSkgdGhlIHNhbWUgZm9yIGFsbApwbGF0Zm9y bXMuIFNob3ZlbGluZyBpdCBpbnRvIHZmdW5jcyBkb2Vzbid0IG1ha2Ugc2Vuc2UgdG8gbWUuIE9u bHkKdGhlIGxvdyBsZXZlbCBkZXRhaWxzIGRpZmZlci4KCj4gLURhbmllbAo+IAo+ID4gCj4gPiA+ IAo+ID4gPiBCUiwKPiA+ID4gSmFuaS4KPiA+ID4gCj4gPiA+ID4KPiA+ID4gPiBTaWduZWQtb2Zm LWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+ID4g PiA+IC0tLQo+ID4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCA4 NyArKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4gPiAgMSBmaWxlIGNo YW5nZWQsIDMwIGluc2VydGlvbnMoKyksIDU3IGRlbGV0aW9ucygtKQo+ID4gPiA+Cj4gPiA+ID4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4gPiA+IGluZGV4IDk3OGY1NDMuLjBj NzgyYzcgMTAwNjQ0Cj4gPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jCj4gPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5j Cj4gPiA+ID4gQEAgLTU5MzIsMjUgKzU5MzIsNiBAQCBzdGF0aWMgaW50IHZhbGxleXZpZXdfY2Fs Y19jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiA+ID4gIAkJcmV0 dXJuIDIwMDAwMDsKPiA+ID4gPiAgfQo+ID4gPiA+ICAKPiA+ID4gPiAtc3RhdGljIGludCBicm94 dG9uX2NhbGNfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gPiA+ IC0JCQkgICAgICBpbnQgbWF4X3BpeGNsaykKPiA+ID4gPiAtewo+ID4gPiA+IC0JLyoKPiA+ID4g PiAtCSAqIEZJWE1FOgo+ID4gPiA+IC0JICogLSBzZXQgMTkuMk1IeiBieXBhc3MgZnJlcXVlbmN5 IGlmIHRoZXJlIGFyZSBubyBhY3RpdmUgcGlwZXMKPiA+ID4gPiAtCSAqLwo+ID4gPiA+IC0JaWYg KG1heF9waXhjbGsgPiA1NzYwMDApCj4gPiA+ID4gLQkJcmV0dXJuIDYyNDAwMDsKPiA+ID4gPiAt CWVsc2UgaWYgKG1heF9waXhjbGsgPiAzODQwMDApCj4gPiA+ID4gLQkJcmV0dXJuIDU3NjAwMDsK PiA+ID4gPiAtCWVsc2UgaWYgKG1heF9waXhjbGsgPiAyODgwMDApCj4gPiA+ID4gLQkJcmV0dXJu IDM4NDAwMDsKPiA+ID4gPiAtCWVsc2UgaWYgKG1heF9waXhjbGsgPiAxNDQwMDApCj4gPiA+ID4g LQkJcmV0dXJuIDI4ODAwMDsKPiA+ID4gPiAtCWVsc2UKPiA+ID4gPiAtCQlyZXR1cm4gMTQ0MDAw Owo+ID4gPiA+IC19Cj4gPiA+ID4gLQo+ID4gPiA+ICAvKiBDb21wdXRlIHRoZSBtYXggcGl4ZWwg Y2xvY2sgZm9yIG5ldyBjb25maWd1cmF0aW9uLiBVc2VzIGF0b21pYyBzdGF0ZSBpZgo+ID4gPiA+ ICAgKiB0aGF0J3Mgbm9uLU5VTEwsIGxvb2sgYXQgY3VycmVudCBzdGF0ZSBvdGhlcndpc2UuICov Cj4gPiA+ID4gIHN0YXRpYyBpbnQgaW50ZWxfbW9kZV9tYXhfcGl4Y2xrKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsCj4gPiA+ID4gQEAgLTU5OTAsMjEgKzU5NzEsNiBAQCBzdGF0aWMgaW50IHZhbGxl eXZpZXdfbW9kZXNldF9jYWxjX2NkY2xrKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkK PiA+ID4gPiAgCXJldHVybiAwOwo+ID4gPiA+ICB9Cj4gPiA+ID4gIAo+ID4gPiA+IC1zdGF0aWMg aW50IGJyb3h0b25fbW9kZXNldF9jYWxjX2NkY2xrKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpz dGF0ZSkKPiA+ID4gPiAtewo+ID4gPiA+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHN0YXRl LT5kZXY7Cj4gPiA+ID4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYt PmRldl9wcml2YXRlOwo+ID4gPiA+IC0JaW50IG1heF9waXhjbGsgPSBpbnRlbF9tb2RlX21heF9w aXhjbGsoZGV2LCBzdGF0ZSk7Cj4gPiA+ID4gLQo+ID4gPiA+IC0JaWYgKG1heF9waXhjbGsgPCAw KQo+ID4gPiA+IC0JCXJldHVybiBtYXhfcGl4Y2xrOwo+ID4gPiA+IC0KPiA+ID4gPiAtCXRvX2lu dGVsX2F0b21pY19zdGF0ZShzdGF0ZSktPmNkY2xrID0KPiA+ID4gPiAtCQlicm94dG9uX2NhbGNf Y2RjbGsoZGV2X3ByaXYsIG1heF9waXhjbGspOwo+ID4gPiA+IC0KPiA+ID4gPiAtCXJldHVybiAw Owo+ID4gPiA+IC19Cj4gPiA+ID4gLQo+ID4gPiA+ICBzdGF0aWMgdm9pZCB2bHZfcHJvZ3JhbV9w ZmlfY3JlZGl0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gPiA+ID4gIHsK PiA+ID4gPiAgCXVuc2lnbmVkIGludCBjcmVkaXRzLCBkZWZhdWx0X2NyZWRpdHM7Cj4gPiA+ID4g QEAgLTk0OTcsMTQgKzk0NjMsNiBAQCB2b2lkIGhzd19kaXNhYmxlX3BjOChzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gPiA+ID4gIAlpbnRlbF9wcmVwYXJlX2RkaShkZXYpOwo+ ID4gPiA+ICB9Cj4gPiA+ID4gIAo+ID4gPiA+IC1zdGF0aWMgdm9pZCBicm94dG9uX21vZGVzZXRf Y29tbWl0X2NkY2xrKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpvbGRfc3RhdGUpCj4gPiA+ID4g LXsKPiA+ID4gPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBvbGRfc3RhdGUtPmRldjsKPiA+ ID4gPiAtCXVuc2lnbmVkIGludCByZXFfY2RjbGsgPSB0b19pbnRlbF9hdG9taWNfc3RhdGUob2xk X3N0YXRlKS0+Y2RjbGs7Cj4gPiA+ID4gLQo+ID4gPiA+IC0JYnJveHRvbl9zZXRfY2RjbGsoZGV2 LCByZXFfY2RjbGspOwo+ID4gPiA+IC19Cj4gPiA+ID4gLQo+ID4gPiA+ICAvKiBjb21wdXRlIHRo ZSBtYXggcmF0ZSBmb3IgbmV3IGNvbmZpZ3VyYXRpb24gKi8KPiA+ID4gPiAgc3RhdGljIGludCBp bGtfbWF4X3BpeGVsX3JhdGUoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ID4gPiA+ ICB7Cj4gPiA+ID4gQEAgLTk2MjEsMTQgKzk1NzksMzEgQEAgc3RhdGljIGludCBicm9hZHdlbGxf bW9kZXNldF9jYWxjX2NkY2xrKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiA+ID4g PiAgCSAqIEZJWE1FIHNob3VsZCBhbHNvIGFjY291bnQgZm9yIHBsYW5lIHJhdGlvCj4gPiA+ID4g IAkgKiBvbmNlIDY0YnBwIHBpeGVsIGZvcm1hdHMgYXJlIHN1cHBvcnRlZC4KPiA+ID4gPiAgCSAq Lwo+ID4gPiA+IC0JaWYgKG1heF9waXhjbGsgPiA1NDAwMDApCj4gPiA+ID4gLQkJY2RjbGsgPSA2 NzUwMDA7Cj4gPiA+ID4gLQllbHNlIGlmIChtYXhfcGl4Y2xrID4gNDUwMDAwKQo+ID4gPiA+IC0J CWNkY2xrID0gNTQwMDAwOwo+ID4gPiA+IC0JZWxzZSBpZiAobWF4X3BpeGNsayA+IDMzNzUwMCkK PiA+ID4gPiAtCQljZGNsayA9IDQ1MDAwMDsKPiA+ID4gPiAtCWVsc2UKPiA+ID4gPiAtCQljZGNs ayA9IDMzNzUwMDsKPiA+ID4gPiArCWlmIChJU19CUk9YVE9OKGRldl9wcml2KSkgewo+ID4gPiA+ ICsJCS8qCj4gPiA+ID4gKwkJICogRklYTUU6Cj4gPiA+ID4gKwkJICogLSBzZXQgMTkuMk1IeiBi eXBhc3MgZnJlcXVlbmN5IGlmIHRoZXJlIGFyZSBubyBhY3RpdmUgcGlwZXMKPiA+ID4gPiArCQkg Ki8KPiA+ID4gPiArCQlpZiAobWF4X3BpeGNsayA+IDU3NjAwMCkKPiA+ID4gPiArCQkJY2RjbGsg PSA2MjQwMDA7Cj4gPiA+ID4gKwkJZWxzZSBpZiAobWF4X3BpeGNsayA+IDM4NDAwMCkKPiA+ID4g PiArCQkJY2RjbGsgPSA1NzYwMDA7Cj4gPiA+ID4gKwkJZWxzZSBpZiAobWF4X3BpeGNsayA+IDI4 ODAwMCkKPiA+ID4gPiArCQkJY2RjbGsgPSAzODQwMDA7Cj4gPiA+ID4gKwkJZWxzZSBpZiAobWF4 X3BpeGNsayA+IDE0NDAwMCkKPiA+ID4gPiArCQkJY2RjbGsgPSAyODgwMDA7Cj4gPiA+ID4gKwkJ ZWxzZQo+ID4gPiA+ICsJCQljZGNsayA9IDE0NDAwMDsKPiA+ID4gPiArCX0gZWxzZSB7Cj4gPiA+ ID4gKwkJaWYgKG1heF9waXhjbGsgPiA1NDAwMDApCj4gPiA+ID4gKwkJCWNkY2xrID0gNjc1MDAw Owo+ID4gPiA+ICsJCWVsc2UgaWYgKG1heF9waXhjbGsgPiA0NTAwMDApCj4gPiA+ID4gKwkJCWNk Y2xrID0gNTQwMDAwOwo+ID4gPiA+ICsJCWVsc2UgaWYgKG1heF9waXhjbGsgPiAzMzc1MDApCj4g PiA+ID4gKwkJCWNkY2xrID0gNDUwMDAwOwo+ID4gPiA+ICsJCWVsc2UKPiA+ID4gPiArCQkJY2Rj bGsgPSAzMzc1MDA7Cj4gPiA+ID4gKwl9Cj4gPiA+ID4gIAo+ID4gPiA+ICAJLyoKPiA+ID4gPiAg CSAqIEZJWE1FIG1vdmUgdGhlIGNkY2xrIGNhY2x1bGF0aW9uIHRvCj4gPiA+ID4gQEAgLTk2NTAs NyArOTYyNSwxMCBAQCBzdGF0aWMgdm9pZCBicm9hZHdlbGxfbW9kZXNldF9jb21taXRfY2RjbGso c3RydWN0IGRybV9hdG9taWNfc3RhdGUgKm9sZF9zdGF0ZSkKPiA+ID4gPiAgCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXYgPSBvbGRfc3RhdGUtPmRldjsKPiA+ID4gPiAgCXVuc2lnbmVkIGludCByZXFf Y2RjbGsgPSB0b19pbnRlbF9hdG9taWNfc3RhdGUob2xkX3N0YXRlKS0+Y2RjbGs7Cj4gPiA+ID4g IAo+ID4gPiA+IC0JYnJvYWR3ZWxsX3NldF9jZGNsayhkZXYsIHJlcV9jZGNsayk7Cj4gPiA+ID4g KwlpZiAoSVNfQlJPWFRPTihkZXYpKQo+ID4gPiA+ICsJCWJyb3h0b25fc2V0X2NkY2xrKGRldiwg cmVxX2NkY2xrKTsKPiA+ID4gPiArCWVsc2UKPiA+ID4gPiArCQlicm9hZHdlbGxfc2V0X2NkY2xr KGRldiwgcmVxX2NkY2xrKTsKPiA+ID4gPiAgfQo+ID4gPiA+ICAKPiA+ID4gPiAgc3RhdGljIGlu dCBoYXN3ZWxsX2NydGNfY29tcHV0ZV9jbG9jayhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiA+ ID4gPiBAQCAtMTQ2MTksNyArMTQ1OTcsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9pbml0X2Rpc3Bs YXkoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiA+ID4gPiAgCQlkZXZfcHJpdi0+ZGlzcGxheS5m ZGlfbGlua190cmFpbiA9IGhzd19mZGlfbGlua190cmFpbjsKPiA+ID4gPiAgCX0KPiA+ID4gPiAg Cj4gPiA+ID4gLQlpZiAoSVNfQlJPQURXRUxMKGRldikpIHsKPiA+ID4gPiArCWlmIChJU19CUk9B RFdFTEwoZGV2KSB8fCBJU19CUk9YVE9OKGRldikpIHsKPiA+ID4gPiAgCQlkZXZfcHJpdi0+ZGlz cGxheS5tb2Rlc2V0X2NvbW1pdF9jZGNsayA9Cj4gPiA+ID4gIAkJCWJyb2Fkd2VsbF9tb2Rlc2V0 X2NvbW1pdF9jZGNsazsKPiA+ID4gPiAgCQlkZXZfcHJpdi0+ZGlzcGxheS5tb2Rlc2V0X2NhbGNf Y2RjbGsgPQo+ID4gPiA+IEBAIC0xNDYyOSwxMSArMTQ2MDcsNiBAQCBzdGF0aWMgdm9pZCBpbnRl bF9pbml0X2Rpc3BsYXkoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiA+ID4gPiAgCQkJdmFsbGV5 dmlld19tb2Rlc2V0X2NvbW1pdF9jZGNsazsKPiA+ID4gPiAgCQlkZXZfcHJpdi0+ZGlzcGxheS5t b2Rlc2V0X2NhbGNfY2RjbGsgPQo+ID4gPiA+ICAJCQl2YWxsZXl2aWV3X21vZGVzZXRfY2FsY19j ZGNsazsKPiA+ID4gPiAtCX0gZWxzZSBpZiAoSVNfQlJPWFRPTihkZXYpKSB7Cj4gPiA+ID4gLQkJ ZGV2X3ByaXYtPmRpc3BsYXkubW9kZXNldF9jb21taXRfY2RjbGsgPQo+ID4gPiA+IC0JCQlicm94 dG9uX21vZGVzZXRfY29tbWl0X2NkY2xrOwo+ID4gPiA+IC0JCWRldl9wcml2LT5kaXNwbGF5Lm1v ZGVzZXRfY2FsY19jZGNsayA9Cj4gPiA+ID4gLQkJCWJyb3h0b25fbW9kZXNldF9jYWxjX2NkY2xr Owo+ID4gPiA+ICAJfQo+ID4gPiA+ICAKPiA+ID4gPiAgCXN3aXRjaCAoSU5URUxfSU5GTyhkZXYp LT5nZW4pIHsKPiA+ID4gCj4gPiA+IC0tIAo+ID4gPiBKYW5pIE5pa3VsYSwgSW50ZWwgT3BlbiBT b3VyY2UgVGVjaG5vbG9neSBDZW50ZXIKPiA+IAo+ID4gLS0gCj4gPiBWaWxsZSBTeXJqw6Rsw6QK PiA+IEludGVsIE9UQwo+ID4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KPiA+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiA+IEludGVsLWdmeEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKPiA+IGh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZngKPiAKPiAtLSAKPiBEYW5pZWwgVmV0dGVyCj4gU29mdHdhcmUgRW5n aW5lZXIsIEludGVsIENvcnBvcmF0aW9uCj4gaHR0cDovL2Jsb2cuZmZ3bGwuY2gKCi0tIApWaWxs ZSBTeXJqw6Rsw6QKSW50ZWwgT1RDCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v aW50ZWwtZ2Z4Cg==