From mboxrd@z Thu Jan 1 00:00:00 1970 From: Damien Lespiau Subject: Re: [PATCH v4 12/12] drm/i915: BDW clock change support Date: Fri, 29 May 2015 12:45:25 +0100 Message-ID: <20150529114525.GD28280@strange.ger.corp.intel.com> References: <1432282962-3530-1-git-send-email-mika.kahola@intel.com> <1432282962-3530-13-git-send-email-mika.kahola@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 496216ED5C for ; Fri, 29 May 2015 04:45:28 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1432282962-3530-13-git-send-email-mika.kahola@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Mika Kahola Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBNYXkgMjIsIDIwMTUgYXQgMTE6MjI6NDJBTSArMDMwMCwgTWlrYSBLYWhvbGEgd3Jv dGU6Cj4gRnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNv bT4KPiAKPiBBZGQgc3VwcG9ydCBmb3IgY2hhbmdpbmcgY2RjbGsgZnJlcXVlbmN5IGR1cmluZyBy dW50aW1lIG9uIEJEVy4gVGhlCj4gcHJvY2VkdXJlIGlzIHF1aXRlIGEgYml0IGRpZmZlcmVudCBv biBCRFcgZnJvbSB0aGUgb25lIG9uIEhTVywgc28KPiBhZGQgYSBzZXBhcmF0ZSBmdW5jdGlvbiBm b3IgaXQuCj4gCj4gQWxzbyB3aXRoIElQUyBlbmFibGVkIHRoZSBhY3R1YWwgcGl4ZWwgcmF0ZSBt dXN0bid0IGV4Y2VlZCA5NSUgb2YgY2RjbGssCj4gc28gdGFrZSB0aGF0IGludG8gYWNjb3VudCB3 aGVuIGNvbXB1dGluZyB0aGUgbWF4IHBpeGVsIHJhdGUuCj4gCj4gdjI6IEdyYWIgcnBzLmh3X2xv Y2sgYXJvdW5kIHNhbmR5YnJpZGdlX3Bjb2RlX3dyaXRlKCkKPiB2MzogUmViYXNlIGR1ZSB0byBw b3dlciB3ZWxsIHZzLiAuZ2xvYmFsX3Jlc291cmNlcygpIHJlb3JkZXJpbmcKPiAKPiBTaWduZWQt b2ZmLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+ IAo+IHY0OiBSZWJhc2VkIHRvIHRoZSBsYXRlc3QKPiB2NTogUmViYXNlZCB0byB0aGUgbGF0ZXN0 Cj4gCj4gUmV2aWV3ZWQtYnk6IE1pa2EgS2Fob2xhIDxtaWthLmthaG9sYUBpbnRlbC5jb20+Cj4g Cj4gQXV0aG9yOiAgICBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwu Y29tPgo+IC0tLQoKKGZ3aXcsIEknbSBtYWtpbmcgdGhlIFNLTCBjZGNsayBjb2RlIGxvb2sgbGlr ZSB0aG9zZSBIU1cvQkRXIHBhdGNoZXMgYQpiaXQgbW9yZS4gV2UgbWF5IHdhbnQgdG8gZXh0cmFj dCBhIGZldyBsb3cgbGV2ZWwgdmZ1bmNzCihzZXRfY29yZV9kaXNwbGF5X2Nsb2NrKCksIC4uLikg YnV0IHRoYXQncyBmb3IgYW5vdGhlciB0aW1lKQoKUmV2aWV3ZWQtYnk6IERhbWllbiBMZXNwaWF1 IDxkYW1pZW4ubGVzcGlhdUBpbnRlbC5jb20+Cgo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3JlZy5oICAgICAgfCAgIDEgKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5 LmMgfCAxMzkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0KPiAgMiBmaWxlcyBj aGFuZ2VkLCAxMjIgaW5zZXJ0aW9ucygrKSwgMTggZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3JlZy5oCj4gaW5kZXggMDE1ZmUxMi4uNjRlYzUwMCAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9yZWcuaAo+IEBAIC02NzAyLDYgKzY3MDIsNyBAQCBlbnVtIHNrbF9kaXNwX3Bvd2VyX3dl bGxzIHsKPiAgI2RlZmluZSAgICAgR0VONl9FTkNPREVfUkM2X1ZJRChtdikJCSgoKG12KSAtIDI0 NSkgLyA1KQo+ICAjZGVmaW5lICAgICBHRU42X0RFQ09ERV9SQzZfVklEKHZpZHMpCQkoKCh2aWRz KSAqIDUpICsgMjQ1KQo+ICAjZGVmaW5lICAgSFNXX1BDT0RFX0RFX1dSSVRFX0ZSRVFfUkVRCQkw eDE3Cj4gKyNkZWZpbmUgICBCRFdfUENPREVfRElTUExBWV9GUkVRX0NIQU5HRV9SRVEJMHgxOAo+ ICAjZGVmaW5lICAgR0VOOV9QQ09ERV9SRUFEX01FTV9MQVRFTkNZCQkweDYKPiAgI2RlZmluZSAg ICAgR0VOOV9NRU1fTEFURU5DWV9MRVZFTF9NQVNLCQkweEZGCj4gICNkZWZpbmUgICAgIEdFTjlf TUVNX0xBVEVOQ1lfTEVWRUxfMV81X1NISUZUCTgKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jCj4gaW5kZXggNTU2ZDBlYzcuLjcxZWZkMmYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGlzcGxheS5jCj4gQEAgLTU1NDUsNyArNTU0NSwyMiBAQCBzdGF0aWMgdm9pZCBpbnRl bF91cGRhdGVfbWF4X2NkY2xrKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIHsKPiAgCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gIAo+IC0J aWYgKElTX0hBU1dFTEwoZGV2KSkgewo+ICsJaWYgKElTX0JST0FEV0VMTChkZXYpKSAgewo+ICsJ CS8qCj4gKwkJICogRklYTUUgd2l0aCBleHRyYSBjb29saW5nIHdlIGNhbiBhbGxvdwo+ICsJCSAq IDU0MCBNSHogZm9yIFVMWCBhbmQgNjc1IE1oeiBmb3IgVUxULgo+ICsJCSAqIEhvdyBjYW4gd2Ug a25vdyBpZiBleHRyYSBjb29saW5nIGlzCj4gKwkJICogYXZhaWxhYmxlPyBQQ0kgSUQsIFZUQiwg c29tZXRoaW5nIGVsc2U/Cj4gKwkJICovCj4gKwkJaWYgKEk5MTVfUkVBRChGVVNFX1NUUkFQKSAm IEhTV19DRENMS19MSU1JVCkKPiArCQkJZGV2X3ByaXYtPm1heF9jZGNsa19mcmVxID0gNDUwMDAw Owo+ICsJCWVsc2UgaWYgKElTX0JEV19VTFgoZGV2KSkKPiArCQkJZGV2X3ByaXYtPm1heF9jZGNs a19mcmVxID0gNDUwMDAwOwo+ICsJCWVsc2UgaWYgKElTX0JEV19VTFQoZGV2KSkKPiArCQkJZGV2 X3ByaXYtPm1heF9jZGNsa19mcmVxID0gNTQwMDAwOwo+ICsJCWVsc2UKPiArCQkJZGV2X3ByaXYt Pm1heF9jZGNsa19mcmVxID0gNjc1MDAwOwo+ICsJfSBlbHNlIGlmIChJU19IQVNXRUxMKGRldikp IHsKPiAgCQlpZiAoSTkxNV9SRUFEKEZVU0VfU1RSQVApICYgSFNXX0NEQ0xLX0xJTUlUKQo+ICAJ CQlkZXZfcHJpdi0+bWF4X2NkY2xrX2ZyZXEgPSA0NTAwMDA7Cj4gIAkJZWxzZSBpZiAoSVNfSFNX X1VMWChkZXYpKQo+IEBAIC02NDI2LDEzICs2NDQxLDExIEBAIHN0YXRpYyBib29sIHBpcGVfY29u ZmlnX3N1cHBvcnRzX2lwcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAkJ cmV0dXJuIHRydWU7Cj4gIAo+ICAJLyoKPiAtCSAqIEZJWE1FIGlmIHdlIGNvbXBhcmUgYWdhaW5z dCBtYXggd2Ugc2hvdWxkIHRoZW4KPiAtCSAqIGluY3JlYXNlIHRoZSBjZGNsayBmcmVxdWVuY3kg d2hlbiB0aGUgY3VycmVudAo+IC0JICogdmFsdWUgaXMgdG9vIGxvdy4gVGhlIG90aGVyIG9wdGlv biBpcyB0byBjb21wYXJlCj4gLQkgKiBhZ2FpbnN0IHRoZSBjZGNsayBmcmVxdWVuY3kgd2UncmUg Z29pbmcgaGF2ZSBwb3N0Cj4gLQkgKiBtb2Rlc2V0IChpZS4gb25lIHdlIGNvbXB1dGVkIHVzaW5n IG90aGVyIGNvbnN0cmFpbnRzKS4KPiAtCSAqIE5lZWQgdG8gbWVhc3VyZSB3aGV0aGVyIHVzaW5n IGEgbG93ZXIgY2RjbGsgdy9vIElQUwo+IC0JICogaXMgYmV0dGVyIG9yIHdvcnNlIHRoYW4gYSBo aWdoZXIgY2RjbGsgdy8gSVBTLgo+ICsJICogV2UgY29tcGFyZSBhZ2FpbnN0IG1heCB3aGljaCBt ZWFucyB3ZSBtdXN0IHRha2UKPiArCSAqIHRoZSBpbmNyZWFzZWQgY2RjbGsgcmVxdWlyZW1lbnQg aW50byBhY2NvdW50IHdoZW4KPiArCSAqIGNhbGN1bGF0aW5nIHRoZSBuZXcgY2RjbGsuCj4gKwkg Kgo+ICsJICogU2hvdWxkIG1lYXN1cmUgd2hldGhlciB1c2luZyBhIGxvd2VyIGNkY2xrIHcvbyBJ UFMKPiAgCSAqLwo+ICAJcmV0dXJuIGlsa19waXBlX3BpeGVsX3JhdGUocGlwZV9jb25maWcpIDw9 Cj4gIAkJZGV2X3ByaXYtPm1heF9jZGNsa19mcmVxICogOTUgLyAxMDA7Cj4gQEAgLTk0MjEsOSAr OTQzNCwxOCBAQCBzdGF0aWMgaW50IGlsa19tYXhfcGl4ZWxfcmF0ZShzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCj4gIAlpbnQgbWF4X3BpeGVsX3JhdGUgPSAwOwo+ICAKPiAgCWZv cl9lYWNoX2ludGVsX2NydGMoZGV2LCBjcnRjKSB7Cj4gLQkJaWYgKGNydGMtPm5ld19lbmFibGVk KQo+IC0JCQltYXhfcGl4ZWxfcmF0ZSA9IG1heCgoaW50KW1heF9waXhlbF9yYXRlLAo+IC0JCQkJ CSAgICAgKGludClpbGtfcGlwZV9waXhlbF9yYXRlKGNydGMtPmNvbmZpZykpOwo+ICsJCWludCBw aXhlbF9yYXRlOwo+ICsKPiArCQlpZiAoIWNydGMtPm5ld19lbmFibGVkKQo+ICsJCQljb250aW51 ZTsKPiArCj4gKwkJcGl4ZWxfcmF0ZSA9IGlsa19waXBlX3BpeGVsX3JhdGUoY3J0Yy0+Y29uZmln KTsKPiArCj4gKwkJLyogcGl4ZWwgcmF0ZSBtdXN0bid0IGV4Y2VlZCA5NSUgb2YgY2RjbGsgd2l0 aCBJUFMgb24gQkRXICovCj4gKwkJaWYgKElTX0JST0FEV0VMTChkZXYpICYmIGNydGMtPmNvbmZp Zy0+aXBzX2VuYWJsZWQpCj4gKwkJCXBpeGVsX3JhdGUgPSBESVZfUk9VTkRfVVAocGl4ZWxfcmF0 ZSAqIDEwMCwgOTUpOwo+ICsKPiArCQltYXhfcGl4ZWxfcmF0ZSA9IG1heChtYXhfcGl4ZWxfcmF0 ZSwgcGl4ZWxfcmF0ZSk7Cj4gIAl9Cj4gIAo+ICAJcmV0dXJuIG1heF9waXhlbF9yYXRlOwo+IEBA IC05NDM4LDcgKzk0NjAsOSBAQCBzdGF0aWMgaW50IGhhc3dlbGxfY2FsY19jZGNsayhzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAkgKiBGSVhNRSBzaG91bGQgYWxzbyBhY2Nv dW50IGZvciBwbGFuZSByYXRpbwo+ICAJICogb25jZSA2NGJwcCBwaXhlbCBmb3JtYXRzIGFyZSBz dXBwb3J0ZWQuCj4gIAkgKi8KPiAtCWlmIChtYXhfcGl4ZWxfcmF0ZSA+IDQ1MDAwMCkKPiArCWlm IChtYXhfcGl4ZWxfcmF0ZSA+IDU0MDAwMCkKPiArCQljZGNsayA9IDY3NTAwMDsKPiArCWVsc2Ug aWYgKG1heF9waXhlbF9yYXRlID4gNDUwMDAwKQo+ICAJCWNkY2xrID0gNTQwMDAwOwo+ICAJZWxz ZSBpZiAobWF4X3BpeGVsX3JhdGUgPiAzMzc1MDAgfHwgIUlTX0hTV19VTFgoZGV2X3ByaXYpKQo+ ICAJCWNkY2xrID0gNDUwMDAwOwo+IEBAIC05NTAzLDYgKzk1MjcsODMgQEAgc3RhdGljIHZvaWQg aGFzd2VsbF9zZXRfY2RjbGsoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IGNkY2xrKQo+ICAJ ICAgICBjZGNsaywgZGV2X3ByaXYtPmNkY2xrX2ZyZXEpOwo+ICB9CgpRdWl0ZSBmcmFua2x5LCBJ J2Qgc3BsaXQgb3V0IGEgYnJvYWR3ZWxsIGNhY2xfY2RjbGsgb3V0LgoKPiAgCj4gK3N0YXRpYyB2 b2lkIGJyb2Fkd2VsbF9zZXRfY2RjbGsoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IGNkY2xr KQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9w cml2YXRlOwo+ICsJdWludDMyX3QgdmFsLCBkYXRhOwo+ICsJaW50IHJldDsKPiArCj4gKwlpZiAo V0FSTigoSTkxNV9SRUFEKExDUExMX0NUTCkgJgo+ICsJCSAgKExDUExMX1BMTF9ESVNBQkxFIHwg TENQTExfUExMX0xPQ0sgfAo+ICsJCSAgIExDUExMX0NEX0NMT0NLX0RJU0FCTEUgfCBMQ1BMTF9S T09UX0NEX0NMT0NLX0RJU0FCTEUgfAo+ICsJCSAgIExDUExMX0NEMlhfQ0xPQ0tfRElTQUJMRSB8 IExDUExMX1BPV0VSX0RPV05fQUxMT1cgfAo+ICsJCSAgIExDUExMX0NEX1NPVVJDRV9GQ0xLKSkg IT0gTENQTExfUExMX0xPQ0ssCj4gKwkJICJ0cnlpbmcgdG8gY2hhbmdlIGNkY2xrIGZyZXF1ZW5j eSB3aXRoIGNkY2xrIG5vdCBlbmFibGVkXG4iKSkKPiArCQlyZXR1cm47Cj4gKwo+ICsJbXV0ZXhf bG9jaygmZGV2X3ByaXYtPnJwcy5od19sb2NrKTsKPiArCXJldCA9IHNhbmR5YnJpZGdlX3Bjb2Rl X3dyaXRlKGRldl9wcml2LAo+ICsJCQkJICAgICAgQkRXX1BDT0RFX0RJU1BMQVlfRlJFUV9DSEFO R0VfUkVRLCAweDApOwo+ICsJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+cnBzLmh3X2xvY2spOwo+ ICsJaWYgKHJldCkgewo+ICsJCURSTV9FUlJPUigiZmFpbGVkIHRvIGluZm9ybSBwY29kZSBhYm91 dCBjZGNsayBjaGFuZ2VcbiIpOwo+ICsJCXJldHVybjsKPiArCX0KPiArCj4gKwl2YWwgPSBJOTE1 X1JFQUQoTENQTExfQ1RMKTsKPiArCXZhbCB8PSBMQ1BMTF9DRF9TT1VSQ0VfRkNMSzsKPiArCUk5 MTVfV1JJVEUoTENQTExfQ1RMLCB2YWwpOwo+ICsKPiArCWlmICh3YWl0X2Zvcl9hdG9taWNfdXMo STkxNV9SRUFEKExDUExMX0NUTCkgJgo+ICsJCQkgICAgICAgTENQTExfQ0RfU09VUkNFX0ZDTEtf RE9ORSwgMSkpCj4gKwkJRFJNX0VSUk9SKCJTd2l0Y2hpbmcgdG8gRkNMSyBmYWlsZWRcbiIpOwo+ ICsKPiArCXZhbCA9IEk5MTVfUkVBRChMQ1BMTF9DVEwpOwo+ICsJdmFsICY9IH5MQ1BMTF9DTEtf RlJFUV9NQVNLOwo+ICsKPiArCXN3aXRjaCAoY2RjbGspIHsKPiArCWNhc2UgNDUwMDAwOgo+ICsJ CXZhbCB8PSBMQ1BMTF9DTEtfRlJFUV80NTA7Cj4gKwkJZGF0YSA9IDA7Cj4gKwkJYnJlYWs7Cj4g KwljYXNlIDU0MDAwMDoKPiArCQl2YWwgfD0gTENQTExfQ0xLX0ZSRVFfNTRPX0JEVzsKPiArCQlk YXRhID0gMTsKPiArCQlicmVhazsKPiArCWNhc2UgMzM3NTAwOgo+ICsJCXZhbCB8PSBMQ1BMTF9D TEtfRlJFUV8zMzdfNV9CRFc7Cj4gKwkJZGF0YSA9IDI7Cj4gKwkJYnJlYWs7Cj4gKwljYXNlIDY3 NTAwMDoKPiArCQl2YWwgfD0gTENQTExfQ0xLX0ZSRVFfNjc1X0JEVzsKPiArCQlkYXRhID0gMzsK PiArCQlicmVhazsKPiArCWRlZmF1bHQ6Cj4gKwkJV0FSTigxLCAiaW52YWxpZCBjZGNsayBmcmVx dWVuY3lcbiIpOwo+ICsJCXJldHVybjsKPiArCX0KPiArCj4gKwlJOTE1X1dSSVRFKExDUExMX0NU TCwgdmFsKTsKPiArCj4gKwl2YWwgPSBJOTE1X1JFQUQoTENQTExfQ1RMKTsKPiArCXZhbCAmPSB+ TENQTExfQ0RfU09VUkNFX0ZDTEs7Cj4gKwlJOTE1X1dSSVRFKExDUExMX0NUTCwgdmFsKTsKPiAr Cj4gKwlpZiAod2FpdF9mb3JfYXRvbWljX3VzKChJOTE1X1JFQUQoTENQTExfQ1RMKSAmCj4gKwkJ CQlMQ1BMTF9DRF9TT1VSQ0VfRkNMS19ET05FKSA9PSAwLCAxKSkKPiArCQlEUk1fRVJST1IoIlN3 aXRjaGluZyBiYWNrIHRvIExDUExMIGZhaWxlZFxuIik7Cj4gKwo+ICsJbXV0ZXhfbG9jaygmZGV2 X3ByaXYtPnJwcy5od19sb2NrKTsKPiArCXNhbmR5YnJpZGdlX3Bjb2RlX3dyaXRlKGRldl9wcml2 LCBIU1dfUENPREVfREVfV1JJVEVfRlJFUV9SRVEsIGRhdGEpOwo+ICsJbXV0ZXhfdW5sb2NrKCZk ZXZfcHJpdi0+cnBzLmh3X2xvY2spOwo+ICsKPiArCWludGVsX3VwZGF0ZV9jZGNsayhkZXYpOwo+ ICsKPiArCVdBUk4oY2RjbGsgIT0gZGV2X3ByaXYtPmNkY2xrX2ZyZXEsCj4gKwkgICAgICJjZGNs ayByZXF1ZXN0ZWQgJWQga0h6IGJ1dCBnb3QgJWQga0h6XG4iLAo+ICsJICAgICBjZGNsaywgZGV2 X3ByaXYtPmNkY2xrX2ZyZXEpOwo+ICt9Cj4gKwo+ICBzdGF0aWMgaW50IGhhc3dlbGxfbW9kZXNl dF9nbG9iYWxfcGlwZXMoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ICB7Cj4gIAlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHN0YXRlLT5kZXYpOwo+ IEBAIC05NTQyLDcgKzk2NDMsMTAgQEAgc3RhdGljIHZvaWQgaGFzd2VsbF9tb2Rlc2V0X2dsb2Jh bF9yZXNvdXJjZXMoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ICAJaW50IHJlcV9j ZGNsayA9IGhhc3dlbGxfY2FsY19jZGNsayhkZXZfcHJpdiwgbWF4X3BpeGVsX3JhdGUpOwo+ICAK PiAgCWlmIChyZXFfY2RjbGsgIT0gZGV2X3ByaXYtPmNkY2xrX2ZyZXEpIHsKPiAtCQloYXN3ZWxs X3NldF9jZGNsayhkZXYsIHJlcV9jZGNsayk7Cj4gKwkJaWYgKElTX0JST0FEV0VMTChkZXYpKQo+ ICsJCQlicm9hZHdlbGxfc2V0X2NkY2xrKGRldiwgcmVxX2NkY2xrKTsKPiArCQllbHNlCj4gKwkJ CWhhc3dlbGxfc2V0X2NkY2xrKGRldiwgcmVxX2NkY2xrKTsKPiAgCX0KPiAgfQo+ICAKPiBAQCAt MTI3MjQsOCArMTI4MjgsOCBAQCBzdGF0aWMgaW50IF9faW50ZWxfc2V0X21vZGVfY2hlY2tzKHN0 cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiAgCSAqIG1vZGUgc2V0IG9uIHRoaXMgY3J0 Yy4gIEZvciBvdGhlciBjcnRjcyB3ZSBuZWVkIHRvIHVzZSB0aGUKPiAgCSAqIGFkanVzdGVkX21v ZGUgYml0cyBpbiB0aGUgY3J0YyBkaXJlY3RseS4KPiAgCSAqLwo+IC0JaWYgKElTX1ZBTExFWVZJ RVcoZGV2KSB8fCBJU19CUk9YVE9OKGRldikgfHwgSVNfSEFTV0VMTChkZXYpKSB7Cj4gLQkJaWYg KElTX1ZBTExFWVZJRVcoZGV2KSB8fCBJU19CUk9YVE9OKGRldikpIHsKPiArCWlmIChJU19WQUxM RVlWSUVXKGRldikgfHwgSVNfQlJPWFRPTihkZXYpIHx8IElTX0hBU1dFTEwoZGV2KSB8fCBJU19C Uk9BRFdFTEwoZGV2KSkgewo+ICsJCWlmIChJU19WQUxMRVlWSUVXKGRldikgfHwgSVNfQlJPWFRP TihkZXYpIHx8IElTX0JST0FEV0VMTChkZXYpKSB7Cj4gIAkJCXJldCA9IHZhbGxleXZpZXdfbW9k ZXNldF9nbG9iYWxfcGlwZXMoc3RhdGUpOwo+ICAJCQlpZiAocmV0KQo+ICAJCQkJcmV0dXJuIHJl dDsKPiBAQCAtMTQ2MTYsOSArMTQ3MjAsOCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9pbml0X2Rpc3Bs YXkoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCQlkZXZfcHJpdi0+ZGlzcGxheS5mZGlfbGlu a190cmFpbiA9IGl2Yl9tYW51YWxfZmRpX2xpbmtfdHJhaW47Cj4gIAl9IGVsc2UgaWYgKElTX0hB U1dFTEwoZGV2KSB8fCBJU19CUk9BRFdFTEwoZGV2KSkgewo+ICAJCWRldl9wcml2LT5kaXNwbGF5 LmZkaV9saW5rX3RyYWluID0gaHN3X2ZkaV9saW5rX3RyYWluOwo+IC0JCWlmIChJU19IQVNXRUxM KGRldikpCj4gLQkJCWRldl9wcml2LT5kaXNwbGF5Lm1vZGVzZXRfZ2xvYmFsX3Jlc291cmNlcyA9 Cj4gLQkJCQloYXN3ZWxsX21vZGVzZXRfZ2xvYmFsX3Jlc291cmNlczsKPiArCQlkZXZfcHJpdi0+ ZGlzcGxheS5tb2Rlc2V0X2dsb2JhbF9yZXNvdXJjZXMgPQo+ICsJCQloYXN3ZWxsX21vZGVzZXRf Z2xvYmFsX3Jlc291cmNlczsKPiAgCX0gZWxzZSBpZiAoSVNfVkFMTEVZVklFVyhkZXYpKSB7Cj4g IAkJZGV2X3ByaXYtPmRpc3BsYXkubW9kZXNldF9nbG9iYWxfcmVzb3VyY2VzID0KPiAgCQkJdmFs bGV5dmlld19tb2Rlc2V0X2dsb2JhbF9yZXNvdXJjZXM7Cj4gLS0gCj4gMS45LjEKPiAKPiBfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IEludGVsLWdmeCBt YWlsaW5nIGxpc3QKPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cDovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeApfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBs aXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=