From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH v6 7/8] drm/i915: BDW clock change support Date: Tue, 16 Jun 2015 16:07:40 +0300 Message-ID: <878ubj4x9f.fsf@intel.com> References: <1433335514-4156-1-git-send-email-mika.kahola@intel.com> <1433335514-4156-8-git-send-email-mika.kahola@intel.com> <87bngf4xk3.fsf@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 2B14D6E34F for ; Tue, 16 Jun 2015 06:05:48 -0700 (PDT) In-Reply-To: <87bngf4xk3.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: Mika Kahola , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCAxNiBKdW4gMjAxNSwgSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGxpbnV4LmludGVs LmNvbT4gd3JvdGU6Cj4gT24gV2VkLCAwMyBKdW4gMjAxNSwgTWlrYSBLYWhvbGEgPG1pa2Eua2Fo b2xhQGludGVsLmNvbT4gd3JvdGU6Cj4+IEZyb206IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3ly amFsYUBsaW51eC5pbnRlbC5jb20+Cj4+Cj4+IEFkZCBzdXBwb3J0IGZvciBjaGFuZ2luZyBjZGNs ayBmcmVxdWVuY3kgZHVyaW5nIHJ1bnRpbWUgb24gQkRXLiBUaGUKPj4gcHJvY2VkdXJlIGlzIHF1 aXRlIGEgYml0IGRpZmZlcmVudCBvbiBCRFcgZnJvbSB0aGUgb25lIG9uIEhTVywgc28KPj4gYWRk IGEgc2VwYXJhdGUgZnVuY3Rpb24gZm9yIGl0Lgo+Pgo+PiBBbHNvIHdpdGggSVBTIGVuYWJsZWQg dGhlIGFjdHVhbCBwaXhlbCByYXRlIG11c3RuJ3QgZXhjZWVkIDk1JSBvZiBjZGNsaywKPj4gc28g dGFrZSB0aGF0IGludG8gYWNjb3VudCB3aGVuIGNvbXB1dGluZyB0aGUgbWF4IHBpeGVsIHJhdGUu Cj4+Cj4+IHYyOiBHcmFiIHJwcy5od19sb2NrIGFyb3VuZCBzYW5keWJyaWRnZV9wY29kZV93cml0 ZSgpCj4+IHYzOiBSZWJhc2UgZHVlIHRvIHBvd2VyIHdlbGwgdnMuIC5nbG9iYWxfcmVzb3VyY2Vz KCkgcmVvcmRlcmluZwo+PiB2NDogUmViYXNlZCB0byB0aGUgbGF0ZXN0Cj4+IHY1OiBSZWJhc2Vk IHRvIHRoZSBsYXRlc3QKPj4gdjY6IFBhdGNoIG9yZGVyIHNodWZmbGUgc28gdGhhdCBCcm9hZHdl bGwgQ0QgY2xvY2sgY2hhbmdlIGlzCj4+ICAgICBhcHBsaWVkIGJlZm9yZSB0aGUgcGF0Y2ggZm9y IEhhc3dlbGwgQ0QgY2xvY2sgY2hhbmdlCj4+IHY3OiBGaXggZm9yIHBhdGNoIHN0eWxlIHByb2Js ZW1zCj4+Cj4+IFNpZ25lZC1vZmYtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBs aW51eC5pbnRlbC5jb20+Cj4+IFNpZ25lZC1vZmYtYnk6IE1pa2EgS2Fob2xhIDxtaWthLmthaG9s YUBpbnRlbC5jb20+Cj4KPiBUaGlzIHBhdGNoIGhhcmQgaGFuZ3MgbXkgQkRXIE5VQyBhdCBib290 IHdoZW4gYm90aCBEUCBhbmQgSERNSSBhcmUKPiBjb25uZWN0ZWQuIEVpdGhlciBEUCBvciBIRE1J IGFsb25lIGFyZSBnb29kLCBzYW1lIHdpdGggaG90cGx1Z2dpbmcgdGhlCj4gb3RoZXIgYWZ0ZXJ3 YXJkcy4gQm9vdGluZyB0byBncnViIHdpdGggYm90aCBjb25uZWN0ZWQsIGFuZCB1bnBsdWdnaW5n Cj4gSERNSSBiZWZvcmUgbG9hZGluZyB0aGUga2VybmVsIGFsc28gcmVwcm9kdWNlcyB0aGUgaXNz dWUuCj4KPiBJdCBsb29rcyBsaWtlIHRoZSBwcm9ibGVtIGJvaWxzIGRvd24gdG8gdGhlIEJJT1Mg c2V0dGluZyB1cCBhIHNtYWxsZXIKPiByZXNvbHV0aW9uIG9uIHRoZSBEUCBkaXNwbGF5IHdoZW4g Ym90aCBhcmUgY29ubmVjdGVkLCBhbmQgdGhpcyBwYXRjaAo+IGZhaWxzIHRvIGNvcGUgd2l0aCB0 aGF0IG9uIGk5MTUgbG9hZC4KCkJ5ICJ0aGlzIHBhdGNoIiBJIG9idmlvdXNseSByZWZlciB0bwoK Y29tbWl0IGI0MzJlNWNmZDVlOTIxMjdhZDJkZDgzYmZjMzA4M2YxZGJjZTQzZmIKQXV0aG9yOiBW aWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgpEYXRlOiAgIFdl ZCBKdW4gMyAxNTo0NToxMyAyMDE1ICswMzAwCgogICAgZHJtL2k5MTU6IEJEVyBjbG9jayBjaGFu Z2Ugc3VwcG9ydAoKYW5kIGV2ZXJ5dGhpbmcgd29ya3MgZm9yIHRoZSBjb21taXQgYmVmb3JlIHRo YXQuCgpCUiwKSmFuaS4KCgoKCgo+Cj4gQlIsCj4gSmFuaS4KPgo+Cj4KPj4KPj4gQXV0aG9yOiAg ICBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+PiAtLS0K Pj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggICAgICB8ICAgMiArCj4+ICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCAyMTYgKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrLS0KPj4gIDIgZmlsZXMgY2hhbmdlZCwgMjA4IGluc2VydGlvbnMoKyks IDEwIGRlbGV0aW9ucygtKQo+Pgo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9yZWcuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPj4gaW5kZXggNzIx MzIyNC4uMGY3MmMwZSAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9y ZWcuaAo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4+IEBAIC02NzA1 LDYgKzY3MDUsNyBAQCBlbnVtIHNrbF9kaXNwX3Bvd2VyX3dlbGxzIHsKPj4gICNkZWZpbmUJICBH RU42X1BDT0RFX1JFQURfUkM2VklEUwkJMHg1Cj4+ICAjZGVmaW5lICAgICBHRU42X0VOQ09ERV9S QzZfVklEKG12KQkJKCgobXYpIC0gMjQ1KSAvIDUpCj4+ICAjZGVmaW5lICAgICBHRU42X0RFQ09E RV9SQzZfVklEKHZpZHMpCQkoKCh2aWRzKSAqIDUpICsgMjQ1KQo+PiArI2RlZmluZSAgIEJEV19Q Q09ERV9ESVNQTEFZX0ZSRVFfQ0hBTkdFX1JFUQkweDE4Cj4+ICAjZGVmaW5lICAgR0VOOV9QQ09E RV9SRUFEX01FTV9MQVRFTkNZCQkweDYKPj4gICNkZWZpbmUgICAgIEdFTjlfTUVNX0xBVEVOQ1lf TEVWRUxfTUFTSwkJMHhGRgo+PiAgI2RlZmluZSAgICAgR0VOOV9NRU1fTEFURU5DWV9MRVZFTF8x XzVfU0hJRlQJOAo+PiBAQCAtNzE3MCw2ICs3MTcxLDcgQEAgZW51bSBza2xfZGlzcF9wb3dlcl93 ZWxscyB7Cj4+ICAjZGVmaW5lICBMQ1BMTF9DTEtfRlJFUV8zMzdfNV9CRFcJKDI8PDI2KQo+PiAg I2RlZmluZSAgTENQTExfQ0xLX0ZSRVFfNjc1X0JEVwkJKDM8PDI2KQo+PiAgI2RlZmluZSAgTENQ TExfQ0RfQ0xPQ0tfRElTQUJMRQkJKDE8PDI1KQo+PiArI2RlZmluZSAgTENQTExfUk9PVF9DRF9D TE9DS19ESVNBQkxFCSgxPDwyNCkKPj4gICNkZWZpbmUgIExDUExMX0NEMlhfQ0xPQ0tfRElTQUJM RQkoMTw8MjMpCj4+ICAjZGVmaW5lICBMQ1BMTF9QT1dFUl9ET1dOX0FMTE9XCQkoMTw8MjIpCj4+ ICAjZGVmaW5lICBMQ1BMTF9DRF9TT1VSQ0VfRkNMSwkJKDE8PDIxKQo+PiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGlzcGxheS5jCj4+IGluZGV4IGMzZjAxYWEuLmIxZTIwNjkgMTAwNjQ0Cj4+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+PiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPj4gQEAgLTU3NTEsNyArNTc1MSwyMiBAQCBz dGF0aWMgdm9pZCBpbnRlbF91cGRhdGVfbWF4X2NkY2xrKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp Cj4+ICB7Cj4+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZf cHJpdmF0ZTsKPj4gIAo+PiAtCWlmIChJU19WQUxMRVlWSUVXKGRldikpIHsKPj4gKwlpZiAoSVNf QlJPQURXRUxMKGRldikpICB7Cj4+ICsJCS8qCj4+ICsJCSAqIEZJWE1FIHdpdGggZXh0cmEgY29v bGluZyB3ZSBjYW4gYWxsb3cKPj4gKwkJICogNTQwIE1IeiBmb3IgVUxYIGFuZCA2NzUgTWh6IGZv ciBVTFQuCj4+ICsJCSAqIEhvdyBjYW4gd2Uga25vdyBpZiBleHRyYSBjb29saW5nIGlzCj4+ICsJ CSAqIGF2YWlsYWJsZT8gUENJIElELCBWVEIsIHNvbWV0aGluZyBlbHNlPwo+PiArCQkgKi8KPj4g KwkJaWYgKEk5MTVfUkVBRChGVVNFX1NUUkFQKSAmIEhTV19DRENMS19MSU1JVCkKPj4gKwkJCWRl dl9wcml2LT5tYXhfY2RjbGtfZnJlcSA9IDQ1MDAwMDsKPj4gKwkJZWxzZSBpZiAoSVNfQkRXX1VM WChkZXYpKQo+PiArCQkJZGV2X3ByaXYtPm1heF9jZGNsa19mcmVxID0gNDUwMDAwOwo+PiArCQll bHNlIGlmIChJU19CRFdfVUxUKGRldikpCj4+ICsJCQlkZXZfcHJpdi0+bWF4X2NkY2xrX2ZyZXEg PSA1NDAwMDA7Cj4+ICsJCWVsc2UKPj4gKwkJCWRldl9wcml2LT5tYXhfY2RjbGtfZnJlcSA9IDY3 NTAwMDsKPj4gKwl9IGVsc2UgaWYgKElTX1ZBTExFWVZJRVcoZGV2KSkgewo+PiAgCQlkZXZfcHJp di0+bWF4X2NkY2xrX2ZyZXEgPSA0MDAwMDA7Cj4+ICAJfSBlbHNlIHsKPj4gIAkJLyogb3RoZXJ3 aXNlIGFzc3VtZSBjZGNsayBpcyBmaXhlZCAqLwo+PiBAQCAtNjYyMSwxMyArNjYzNiwxMSBAQCBz dGF0aWMgYm9vbCBwaXBlX2NvbmZpZ19zdXBwb3J0c19pcHMoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LAo+PiAgCQlyZXR1cm4gdHJ1ZTsKPj4gIAo+PiAgCS8qCj4+IC0JICogRklY TUUgaWYgd2UgY29tcGFyZSBhZ2FpbnN0IG1heCB3ZSBzaG91bGQgdGhlbgo+PiAtCSAqIGluY3Jl YXNlIHRoZSBjZGNsayBmcmVxdWVuY3kgd2hlbiB0aGUgY3VycmVudAo+PiAtCSAqIHZhbHVlIGlz IHRvbyBsb3cuIFRoZSBvdGhlciBvcHRpb24gaXMgdG8gY29tcGFyZQo+PiAtCSAqIGFnYWluc3Qg dGhlIGNkY2xrIGZyZXF1ZW5jeSB3ZSdyZSBnb2luZyBoYXZlIHBvc3QKPj4gLQkgKiBtb2Rlc2V0 IChpZS4gb25lIHdlIGNvbXB1dGVkIHVzaW5nIG90aGVyIGNvbnN0cmFpbnRzKS4KPj4gLQkgKiBO ZWVkIHRvIG1lYXN1cmUgd2hldGhlciB1c2luZyBhIGxvd2VyIGNkY2xrIHcvbyBJUFMKPj4gLQkg KiBpcyBiZXR0ZXIgb3Igd29yc2UgdGhhbiBhIGhpZ2hlciBjZGNsayB3LyBJUFMuCj4+ICsJICog V2UgY29tcGFyZSBhZ2FpbnN0IG1heCB3aGljaCBtZWFucyB3ZSBtdXN0IHRha2UKPj4gKwkgKiB0 aGUgaW5jcmVhc2VkIGNkY2xrIHJlcXVpcmVtZW50IGludG8gYWNjb3VudCB3aGVuCj4+ICsJICog Y2FsY3VsYXRpbmcgdGhlIG5ldyBjZGNsay4KPj4gKwkgKgo+PiArCSAqIFNob3VsZCBtZWFzdXJl IHdoZXRoZXIgdXNpbmcgYSBsb3dlciBjZGNsayB3L28gSVBTCj4+ICAJICovCj4+ICAJcmV0dXJu IGlsa19waXBlX3BpeGVsX3JhdGUocGlwZV9jb25maWcpIDw9Cj4+ICAJCWRldl9wcml2LT5tYXhf Y2RjbGtfZnJlcSAqIDk1IC8gMTAwOwo+PiBAQCAtOTYwOCw2ICs5NjIxLDE4MiBAQCBzdGF0aWMg dm9pZCBicm94dG9uX21vZGVzZXRfZ2xvYmFsX3Jlc291cmNlcyhzdHJ1Y3QgZHJtX2F0b21pY19z dGF0ZSAqb2xkX3N0YXRlKQo+PiAgCQlicm94dG9uX3NldF9jZGNsayhkZXYsIHJlcV9jZGNsayk7 Cj4+ICB9Cj4+ICAKPj4gKy8qIGNvbXB1dGUgdGhlIG1heCByYXRlIGZvciBuZXcgY29uZmlndXJh dGlvbiAqLwo+PiArc3RhdGljIGludCBpbGtfbWF4X3BpeGVsX3JhdGUoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KQo+PiArewo+PiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBk ZXZfcHJpdi0+ZGV2Owo+PiArCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjOwo+PiArCXN0 cnVjdCBkcm1fY3J0YyAqY3J0YzsKPj4gKwlpbnQgbWF4X3BpeGVsX3JhdGUgPSAwOwo+PiArCWlu dCBwaXhlbF9yYXRlOwo+PiArCj4+ICsJZm9yX2VhY2hfY3J0YyhkZXYsIGNydGMpIHsKPj4gKwkJ aWYgKCFjcnRjLT5zdGF0ZS0+ZW5hYmxlKQo+PiArCQkJY29udGludWU7Cj4+ICsKPj4gKwkJaW50 ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7Cj4+ICsJCXBpeGVsX3JhdGUgPSBpbGtfcGlw ZV9waXhlbF9yYXRlKGludGVsX2NydGMtPmNvbmZpZyk7Cj4+ICsKPj4gKwkJLyogcGl4ZWwgcmF0 ZSBtdXN0bid0IGV4Y2VlZCA5NSUgb2YgY2RjbGsgd2l0aCBJUFMgb24gQkRXICovCj4+ICsJCWlm IChJU19CUk9BRFdFTEwoZGV2KSAmJiBpbnRlbF9jcnRjLT5jb25maWctPmlwc19lbmFibGVkKQo+ PiArCQkJcGl4ZWxfcmF0ZSA9IERJVl9ST1VORF9VUChwaXhlbF9yYXRlICogMTAwLCA5NSk7Cj4+ ICsKPj4gKwkJbWF4X3BpeGVsX3JhdGUgPSBtYXgobWF4X3BpeGVsX3JhdGUsIHBpeGVsX3JhdGUp Owo+PiArCX0KPj4gKwo+PiArCXJldHVybiBtYXhfcGl4ZWxfcmF0ZTsKPj4gK30KPj4gKwo+PiAr c3RhdGljIHZvaWQgYnJvYWR3ZWxsX3NldF9jZGNsayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBp bnQgY2RjbGspCj4+ICt7Cj4+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g ZGV2LT5kZXZfcHJpdmF0ZTsKPj4gKwl1aW50MzJfdCB2YWwsIGRhdGE7Cj4+ICsJaW50IHJldDsK Pj4gKwo+PiArCWlmIChXQVJOKChJOTE1X1JFQUQoTENQTExfQ1RMKSAmCj4+ICsJCSAgKExDUExM X1BMTF9ESVNBQkxFIHwgTENQTExfUExMX0xPQ0sgfAo+PiArCQkgICBMQ1BMTF9DRF9DTE9DS19E SVNBQkxFIHwgTENQTExfUk9PVF9DRF9DTE9DS19ESVNBQkxFIHwKPj4gKwkJICAgTENQTExfQ0Qy WF9DTE9DS19ESVNBQkxFIHwgTENQTExfUE9XRVJfRE9XTl9BTExPVyB8Cj4+ICsJCSAgIExDUExM X0NEX1NPVVJDRV9GQ0xLKSkgIT0gTENQTExfUExMX0xPQ0ssCj4+ICsJCSAidHJ5aW5nIHRvIGNo YW5nZSBjZGNsayBmcmVxdWVuY3kgd2l0aCBjZGNsayBub3QgZW5hYmxlZFxuIikpCj4+ICsJCXJl dHVybjsKPj4gKwo+PiArCW11dGV4X2xvY2soJmRldl9wcml2LT5ycHMuaHdfbG9jayk7Cj4+ICsJ cmV0ID0gc2FuZHlicmlkZ2VfcGNvZGVfd3JpdGUoZGV2X3ByaXYsCj4+ICsJCQkJICAgICAgQkRX X1BDT0RFX0RJU1BMQVlfRlJFUV9DSEFOR0VfUkVRLCAweDApOwo+PiArCW11dGV4X3VubG9jaygm ZGV2X3ByaXYtPnJwcy5od19sb2NrKTsKPj4gKwlpZiAocmV0KSB7Cj4+ICsJCURSTV9FUlJPUigi ZmFpbGVkIHRvIGluZm9ybSBwY29kZSBhYm91dCBjZGNsayBjaGFuZ2VcbiIpOwo+PiArCQlyZXR1 cm47Cj4+ICsJfQo+PiArCj4+ICsJdmFsID0gSTkxNV9SRUFEKExDUExMX0NUTCk7Cj4+ICsJdmFs IHw9IExDUExMX0NEX1NPVVJDRV9GQ0xLOwo+PiArCUk5MTVfV1JJVEUoTENQTExfQ1RMLCB2YWwp Owo+PiArCj4+ICsJaWYgKHdhaXRfZm9yX2F0b21pY191cyhJOTE1X1JFQUQoTENQTExfQ1RMKSAm Cj4+ICsJCQkgICAgICAgTENQTExfQ0RfU09VUkNFX0ZDTEtfRE9ORSwgMSkpCj4+ICsJCURSTV9F UlJPUigiU3dpdGNoaW5nIHRvIEZDTEsgZmFpbGVkXG4iKTsKPj4gKwo+PiArCXZhbCA9IEk5MTVf UkVBRChMQ1BMTF9DVEwpOwo+PiArCXZhbCAmPSB+TENQTExfQ0xLX0ZSRVFfTUFTSzsKPj4gKwo+ PiArCXN3aXRjaCAoY2RjbGspIHsKPj4gKwljYXNlIDQ1MDAwMDoKPj4gKwkJdmFsIHw9IExDUExM X0NMS19GUkVRXzQ1MDsKPj4gKwkJZGF0YSA9IDA7Cj4+ICsJCWJyZWFrOwo+PiArCWNhc2UgNTQw MDAwOgo+PiArCQl2YWwgfD0gTENQTExfQ0xLX0ZSRVFfNTRPX0JEVzsKPj4gKwkJZGF0YSA9IDE7 Cj4+ICsJCWJyZWFrOwo+PiArCWNhc2UgMzM3NTAwOgo+PiArCQl2YWwgfD0gTENQTExfQ0xLX0ZS RVFfMzM3XzVfQkRXOwo+PiArCQlkYXRhID0gMjsKPj4gKwkJYnJlYWs7Cj4+ICsJY2FzZSA2NzUw MDA6Cj4+ICsJCXZhbCB8PSBMQ1BMTF9DTEtfRlJFUV82NzVfQkRXOwo+PiArCQlkYXRhID0gMzsK Pj4gKwkJYnJlYWs7Cj4+ICsJZGVmYXVsdDoKPj4gKwkJV0FSTigxLCAiaW52YWxpZCBjZGNsayBm cmVxdWVuY3lcbiIpOwo+PiArCQlyZXR1cm47Cj4+ICsJfQo+PiArCj4+ICsJSTkxNV9XUklURShM Q1BMTF9DVEwsIHZhbCk7Cj4+ICsKPj4gKwl2YWwgPSBJOTE1X1JFQUQoTENQTExfQ1RMKTsKPj4g Kwl2YWwgJj0gfkxDUExMX0NEX1NPVVJDRV9GQ0xLOwo+PiArCUk5MTVfV1JJVEUoTENQTExfQ1RM LCB2YWwpOwo+PiArCj4+ICsJaWYgKHdhaXRfZm9yX2F0b21pY191cygoSTkxNV9SRUFEKExDUExM X0NUTCkgJgo+PiArCQkJCUxDUExMX0NEX1NPVVJDRV9GQ0xLX0RPTkUpID09IDAsIDEpKQo+PiAr CQlEUk1fRVJST1IoIlN3aXRjaGluZyBiYWNrIHRvIExDUExMIGZhaWxlZFxuIik7Cj4+ICsKPj4g KwltdXRleF9sb2NrKCZkZXZfcHJpdi0+cnBzLmh3X2xvY2spOwo+PiArCXNhbmR5YnJpZGdlX3Bj b2RlX3dyaXRlKGRldl9wcml2LCBIU1dfUENPREVfREVfV1JJVEVfRlJFUV9SRVEsIGRhdGEpOwo+ PiArCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPnJwcy5od19sb2NrKTsKPj4gKwo+PiArCWludGVs X3VwZGF0ZV9jZGNsayhkZXYpOwo+PiArCj4+ICsJV0FSTihjZGNsayAhPSBkZXZfcHJpdi0+Y2Rj bGtfZnJlcSwKPj4gKwkgICAgICJjZGNsayByZXF1ZXN0ZWQgJWQga0h6IGJ1dCBnb3QgJWQga0h6 XG4iLAo+PiArCSAgICAgY2RjbGssIGRldl9wcml2LT5jZGNsa19mcmVxKTsKPj4gK30KPj4gKwo+ PiArc3RhdGljIGludCBicm9hZHdlbGxfY2FsY19jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsCj4+ICsJCQkgICAgICBpbnQgbWF4X3BpeGVsX3JhdGUpCj4+ICt7Cj4+ICsJ aW50IGNkY2xrOwo+PiArCj4+ICsJLyoKPj4gKwkgKiBGSVhNRSBzaG91bGQgYWxzbyBhY2NvdW50 IGZvciBwbGFuZSByYXRpbwo+PiArCSAqIG9uY2UgNjRicHAgcGl4ZWwgZm9ybWF0cyBhcmUgc3Vw cG9ydGVkLgo+PiArCSAqLwo+PiArCWlmIChtYXhfcGl4ZWxfcmF0ZSA+IDU0MDAwMCkKPj4gKwkJ Y2RjbGsgPSA2NzUwMDA7Cj4+ICsJZWxzZSBpZiAobWF4X3BpeGVsX3JhdGUgPiA0NTAwMDApCj4+ ICsJCWNkY2xrID0gNTQwMDAwOwo+PiArCWVsc2UgaWYgKG1heF9waXhlbF9yYXRlID4gMzM3NTAw KQo+PiArCQljZGNsayA9IDQ1MDAwMDsKPj4gKwllbHNlCj4+ICsJCWNkY2xrID0gMzM3NTAwOwo+ PiArCj4+ICsJLyoKPj4gKwkgKiBGSVhNRSBtb3ZlIHRoZSBjZGNsayBjYWNsdWxhdGlvbiB0bwo+ PiArCSAqIGNvbXB1dGVfY29uZmlnKCkgc28gd2UgY2FuIGZhaWwgZ3JhY2VndWxseS4KPj4gKwkg Ki8KPj4gKwlpZiAoY2RjbGsgPiBkZXZfcHJpdi0+bWF4X2NkY2xrX2ZyZXEpIHsKPj4gKwkJRFJN X0VSUk9SKCJyZXF1ZXN0ZWQgY2RjbGsgKCVkIGtIeikgZXhjZWVkcyBtYXggKCVkIGtIeilcbiIs Cj4+ICsJCQkgIGNkY2xrLCBkZXZfcHJpdi0+bWF4X2NkY2xrX2ZyZXEpOwo+PiArCQljZGNsayA9 IGRldl9wcml2LT5tYXhfY2RjbGtfZnJlcTsKPj4gKwl9Cj4+ICsKPj4gKwlyZXR1cm4gY2RjbGs7 Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyBpbnQgYnJvYWR3ZWxsX21vZGVzZXRfZ2xvYmFsX3BpcGVz KHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPj4gK3sKPj4gKwlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHN0YXRlLT5kZXYpOwo+PiArCXN0cnVjdCBk cm1fY3J0YyAqY3J0YzsKPj4gKwlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGU7Cj4+ ICsJaW50IG1heF9waXhjbGsgPSBpbGtfbWF4X3BpeGVsX3JhdGUoZGV2X3ByaXYpOwo+PiArCWlu dCBjZGNsaywgaTsKPj4gKwo+PiArCWNkY2xrID0gYnJvYWR3ZWxsX2NhbGNfY2RjbGsoZGV2X3By aXYsIG1heF9waXhjbGspOwo+PiArCj4+ICsJaWYgKGNkY2xrID09IGRldl9wcml2LT5jZGNsa19m cmVxKQo+PiArCQlyZXR1cm4gMDsKPj4gKwo+PiArCS8qIGFkZCBhbGwgYWN0aXZlIHBpcGVzIHRv IHRoZSBzdGF0ZSAqLwo+PiArCWZvcl9lYWNoX2NydGMoc3RhdGUtPmRldiwgY3J0Yykgewo+PiAr CQlpZiAoIWNydGMtPnN0YXRlLT5lbmFibGUpCj4+ICsJCQljb250aW51ZTsKPj4gKwo+PiArCQlj cnRjX3N0YXRlID0gZHJtX2F0b21pY19nZXRfY3J0Y19zdGF0ZShzdGF0ZSwgY3J0Yyk7Cj4+ICsJ CWlmIChJU19FUlIoY3J0Y19zdGF0ZSkpCj4+ICsJCQlyZXR1cm4gUFRSX0VSUihjcnRjX3N0YXRl KTsKPj4gKwl9Cj4+ICsKPj4gKwkvKiBkaXNhYmxlL2VuYWJsZSBhbGwgY3VycmVudGx5IGFjdGl2 ZSBwaXBlcyB3aGlsZSB3ZSBjaGFuZ2UgY2RjbGsgKi8KPj4gKwlmb3JfZWFjaF9jcnRjX2luX3N0 YXRlKHN0YXRlLCBjcnRjLCBjcnRjX3N0YXRlLCBpKQo+PiArCQlpZiAoY3J0Y19zdGF0ZS0+ZW5h YmxlKQo+PiArCQkJY3J0Y19zdGF0ZS0+bW9kZV9jaGFuZ2VkID0gdHJ1ZTsKPj4gKwo+PiArCXJl dHVybiAwOwo+PiArfQo+PiArCj4+ICtzdGF0aWMgdm9pZCBicm9hZHdlbGxfbW9kZXNldF9nbG9i YWxfcmVzb3VyY2VzKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPj4gK3sKPj4gKwlz dHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gc3RhdGUtPmRldjsKPj4gKwlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+PiArCWludCBtYXhfcGl4ZWxf cmF0ZSA9IGlsa19tYXhfcGl4ZWxfcmF0ZShkZXZfcHJpdik7Cj4+ICsJaW50IHJlcV9jZGNsayA9 IGJyb2Fkd2VsbF9jYWxjX2NkY2xrKGRldl9wcml2LCBtYXhfcGl4ZWxfcmF0ZSk7Cj4+ICsKPj4g KwlpZiAocmVxX2NkY2xrICE9IGRldl9wcml2LT5jZGNsa19mcmVxKQo+PiArCQlicm9hZHdlbGxf c2V0X2NkY2xrKGRldiwgcmVxX2NkY2xrKTsKPj4gK30KPj4gKwo+PiAgc3RhdGljIGludCBoYXN3 ZWxsX2NydGNfY29tcHV0ZV9jbG9jayhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPj4gIAkJCQkg ICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPj4gIHsKPj4gQEAgLTEy Nzg4LDggKzEyOTc3LDEyIEBAIHN0YXRpYyBpbnQgX19pbnRlbF9zZXRfbW9kZV9jaGVja3Moc3Ry dWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+PiAgCSAqIG1vZGUgc2V0IG9uIHRoaXMgY3J0 Yy4gIEZvciBvdGhlciBjcnRjcyB3ZSBuZWVkIHRvIHVzZSB0aGUKPj4gIAkgKiBhZGp1c3RlZF9t b2RlIGJpdHMgaW4gdGhlIGNydGMgZGlyZWN0bHkuCj4+ICAJICovCj4+IC0JaWYgKElTX1ZBTExF WVZJRVcoZGV2KSB8fCBJU19CUk9YVE9OKGRldikpIHsKPj4gLQkJcmV0ID0gdmFsbGV5dmlld19t b2Rlc2V0X2dsb2JhbF9waXBlcyhzdGF0ZSk7Cj4+ICsJaWYgKElTX1ZBTExFWVZJRVcoZGV2KSB8 fCBJU19CUk9YVE9OKGRldikgfHwgSVNfQlJPQURXRUxMKGRldikpIHsKPj4gKwkJaWYgKElTX1ZB TExFWVZJRVcoZGV2KSB8fCBJU19CUk9YVE9OKGRldikpCj4+ICsJCQlyZXQgPSB2YWxsZXl2aWV3 X21vZGVzZXRfZ2xvYmFsX3BpcGVzKHN0YXRlKTsKPj4gKwkJZWxzZQo+PiArCQkJcmV0ID0gYnJv YWR3ZWxsX21vZGVzZXRfZ2xvYmFsX3BpcGVzKHN0YXRlKTsKPj4gKwo+PiAgCQlpZiAocmV0KQo+ PiAgCQkJcmV0dXJuIHJldDsKPj4gIAl9Cj4+IEBAIC0xNDY3Nyw2ICsxNDg3MCw5IEBAIHN0YXRp YyB2b2lkIGludGVsX2luaXRfZGlzcGxheShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+PiAgCQlk ZXZfcHJpdi0+ZGlzcGxheS5mZGlfbGlua190cmFpbiA9IGl2Yl9tYW51YWxfZmRpX2xpbmtfdHJh aW47Cj4+ICAJfSBlbHNlIGlmIChJU19IQVNXRUxMKGRldikgfHwgSVNfQlJPQURXRUxMKGRldikp IHsKPj4gIAkJZGV2X3ByaXYtPmRpc3BsYXkuZmRpX2xpbmtfdHJhaW4gPSBoc3dfZmRpX2xpbmtf dHJhaW47Cj4+ICsJCWlmIChJU19CUk9BRFdFTEwoZGV2KSkKPj4gKwkJCWRldl9wcml2LT5kaXNw bGF5Lm1vZGVzZXRfZ2xvYmFsX3Jlc291cmNlcyA9Cj4+ICsJCQkJYnJvYWR3ZWxsX21vZGVzZXRf Z2xvYmFsX3Jlc291cmNlczsKPj4gIAl9IGVsc2UgaWYgKElTX1ZBTExFWVZJRVcoZGV2KSkgewo+ PiAgCQlkZXZfcHJpdi0+ZGlzcGxheS5tb2Rlc2V0X2dsb2JhbF9yZXNvdXJjZXMgPQo+PiAgCQkJ dmFsbGV5dmlld19tb2Rlc2V0X2dsb2JhbF9yZXNvdXJjZXM7Cj4+IC0tIAo+PiAxLjkuMQo+Pgo+ PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+PiBJbnRl bC1nZnggbWFpbGluZyBsaXN0Cj4+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4g aHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo+ Cj4gLS0gCj4gSmFuaSBOaWt1bGEsIEludGVsIE9wZW4gU291cmNlIFRlY2hub2xvZ3kgQ2VudGVy CgotLSAKSmFuaSBOaWt1bGEsIEludGVsIE9wZW4gU291cmNlIFRlY2hub2xvZ3kgQ2VudGVyCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBt YWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==