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:01:16 +0300 Message-ID: <87bngf4xk3.fsf@intel.com> References: <1433335514-4156-1-git-send-email-mika.kahola@intel.com> <1433335514-4156-8-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 mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id CCCC66E144 for ; Tue, 16 Jun 2015 05:59:19 -0700 (PDT) In-Reply-To: <1433335514-4156-8-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 , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCAwMyBKdW4gMjAxNSwgTWlrYSBLYWhvbGEgPG1pa2Eua2Fob2xhQGludGVsLmNvbT4g d3JvdGU6Cj4gRnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVs LmNvbT4KPgo+IEFkZCBzdXBwb3J0IGZvciBjaGFuZ2luZyBjZGNsayBmcmVxdWVuY3kgZHVyaW5n IHJ1bnRpbWUgb24gQkRXLiBUaGUKPiBwcm9jZWR1cmUgaXMgcXVpdGUgYSBiaXQgZGlmZmVyZW50 IG9uIEJEVyBmcm9tIHRoZSBvbmUgb24gSFNXLCBzbwo+IGFkZCBhIHNlcGFyYXRlIGZ1bmN0aW9u IGZvciBpdC4KPgo+IEFsc28gd2l0aCBJUFMgZW5hYmxlZCB0aGUgYWN0dWFsIHBpeGVsIHJhdGUg bXVzdG4ndCBleGNlZWQgOTUlIG9mIGNkY2xrLAo+IHNvIHRha2UgdGhhdCBpbnRvIGFjY291bnQg d2hlbiBjb21wdXRpbmcgdGhlIG1heCBwaXhlbCByYXRlLgo+Cj4gdjI6IEdyYWIgcnBzLmh3X2xv Y2sgYXJvdW5kIHNhbmR5YnJpZGdlX3Bjb2RlX3dyaXRlKCkKPiB2MzogUmViYXNlIGR1ZSB0byBw b3dlciB3ZWxsIHZzLiAuZ2xvYmFsX3Jlc291cmNlcygpIHJlb3JkZXJpbmcKPiB2NDogUmViYXNl ZCB0byB0aGUgbGF0ZXN0Cj4gdjU6IFJlYmFzZWQgdG8gdGhlIGxhdGVzdAo+IHY2OiBQYXRjaCBv cmRlciBzaHVmZmxlIHNvIHRoYXQgQnJvYWR3ZWxsIENEIGNsb2NrIGNoYW5nZSBpcwo+ICAgICBh cHBsaWVkIGJlZm9yZSB0aGUgcGF0Y2ggZm9yIEhhc3dlbGwgQ0QgY2xvY2sgY2hhbmdlCj4gdjc6 IEZpeCBmb3IgcGF0Y2ggc3R5bGUgcHJvYmxlbXMKPgo+IFNpZ25lZC1vZmYtYnk6IFZpbGxlIFN5 cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gU2lnbmVkLW9mZi1ieTog TWlrYSBLYWhvbGEgPG1pa2Eua2Fob2xhQGludGVsLmNvbT4KClRoaXMgcGF0Y2ggaGFyZCBoYW5n cyBteSBCRFcgTlVDIGF0IGJvb3Qgd2hlbiBib3RoIERQIGFuZCBIRE1JIGFyZQpjb25uZWN0ZWQu IEVpdGhlciBEUCBvciBIRE1JIGFsb25lIGFyZSBnb29kLCBzYW1lIHdpdGggaG90cGx1Z2dpbmcg dGhlCm90aGVyIGFmdGVyd2FyZHMuIEJvb3RpbmcgdG8gZ3J1YiB3aXRoIGJvdGggY29ubmVjdGVk LCBhbmQgdW5wbHVnZ2luZwpIRE1JIGJlZm9yZSBsb2FkaW5nIHRoZSBrZXJuZWwgYWxzbyByZXBy b2R1Y2VzIHRoZSBpc3N1ZS4KCkl0IGxvb2tzIGxpa2UgdGhlIHByb2JsZW0gYm9pbHMgZG93biB0 byB0aGUgQklPUyBzZXR0aW5nIHVwIGEgc21hbGxlcgpyZXNvbHV0aW9uIG9uIHRoZSBEUCBkaXNw bGF5IHdoZW4gYm90aCBhcmUgY29ubmVjdGVkLCBhbmQgdGhpcyBwYXRjaApmYWlscyB0byBjb3Bl IHdpdGggdGhhdCBvbiBpOTE1IGxvYWQuCgpCUiwKSmFuaS4KCgoKPgo+IEF1dGhvcjogICAgVmls bGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiAtLS0KPiAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCAgICAgIHwgICAyICsKPiAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgMjE2ICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKy0tCj4gIDIgZmlsZXMgY2hhbmdlZCwgMjA4IGluc2VydGlvbnMoKyksIDEwIGRlbGV0 aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gaW5kZXggNzIxMzIyNC4uMGY3MmMw ZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+IEBAIC02NzA1LDYgKzY3MDUsNyBAQCBl bnVtIHNrbF9kaXNwX3Bvd2VyX3dlbGxzIHsKPiAgI2RlZmluZQkgIEdFTjZfUENPREVfUkVBRF9S QzZWSURTCQkweDUKPiAgI2RlZmluZSAgICAgR0VONl9FTkNPREVfUkM2X1ZJRChtdikJCSgoKG12 KSAtIDI0NSkgLyA1KQo+ICAjZGVmaW5lICAgICBHRU42X0RFQ09ERV9SQzZfVklEKHZpZHMpCQko KCh2aWRzKSAqIDUpICsgMjQ1KQo+ICsjZGVmaW5lICAgQkRXX1BDT0RFX0RJU1BMQVlfRlJFUV9D SEFOR0VfUkVRCTB4MTgKPiAgI2RlZmluZSAgIEdFTjlfUENPREVfUkVBRF9NRU1fTEFURU5DWQkJ MHg2Cj4gICNkZWZpbmUgICAgIEdFTjlfTUVNX0xBVEVOQ1lfTEVWRUxfTUFTSwkJMHhGRgo+ICAj ZGVmaW5lICAgICBHRU45X01FTV9MQVRFTkNZX0xFVkVMXzFfNV9TSElGVAk4Cj4gQEAgLTcxNzAs NiArNzE3MSw3IEBAIGVudW0gc2tsX2Rpc3BfcG93ZXJfd2VsbHMgewo+ICAjZGVmaW5lICBMQ1BM TF9DTEtfRlJFUV8zMzdfNV9CRFcJKDI8PDI2KQo+ICAjZGVmaW5lICBMQ1BMTF9DTEtfRlJFUV82 NzVfQkRXCQkoMzw8MjYpCj4gICNkZWZpbmUgIExDUExMX0NEX0NMT0NLX0RJU0FCTEUJCSgxPDwy NSkKPiArI2RlZmluZSAgTENQTExfUk9PVF9DRF9DTE9DS19ESVNBQkxFCSgxPDwyNCkKPiAgI2Rl ZmluZSAgTENQTExfQ0QyWF9DTE9DS19ESVNBQkxFCSgxPDwyMykKPiAgI2RlZmluZSAgTENQTExf UE9XRVJfRE9XTl9BTExPVwkJKDE8PDIyKQo+ICAjZGVmaW5lICBMQ1BMTF9DRF9TT1VSQ0VfRkNM SwkJKDE8PDIxKQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNw bGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBpbmRleCBjM2Yw MWFhLi5iMWUyMDY5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IEBA IC01NzUxLDcgKzU3NTEsMjIgQEAgc3RhdGljIHZvaWQgaW50ZWxfdXBkYXRlX21heF9jZGNsayhz dHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICAKPiAtCWlmIChJU19WQUxMRVlWSUVXKGRl dikpIHsKPiArCWlmIChJU19CUk9BRFdFTEwoZGV2KSkgIHsKPiArCQkvKgo+ICsJCSAqIEZJWE1F IHdpdGggZXh0cmEgY29vbGluZyB3ZSBjYW4gYWxsb3cKPiArCQkgKiA1NDAgTUh6IGZvciBVTFgg YW5kIDY3NSBNaHogZm9yIFVMVC4KPiArCQkgKiBIb3cgY2FuIHdlIGtub3cgaWYgZXh0cmEgY29v bGluZyBpcwo+ICsJCSAqIGF2YWlsYWJsZT8gUENJIElELCBWVEIsIHNvbWV0aGluZyBlbHNlPwo+ ICsJCSAqLwo+ICsJCWlmIChJOTE1X1JFQUQoRlVTRV9TVFJBUCkgJiBIU1dfQ0RDTEtfTElNSVQp Cj4gKwkJCWRldl9wcml2LT5tYXhfY2RjbGtfZnJlcSA9IDQ1MDAwMDsKPiArCQllbHNlIGlmIChJ U19CRFdfVUxYKGRldikpCj4gKwkJCWRldl9wcml2LT5tYXhfY2RjbGtfZnJlcSA9IDQ1MDAwMDsK PiArCQllbHNlIGlmIChJU19CRFdfVUxUKGRldikpCj4gKwkJCWRldl9wcml2LT5tYXhfY2RjbGtf ZnJlcSA9IDU0MDAwMDsKPiArCQllbHNlCj4gKwkJCWRldl9wcml2LT5tYXhfY2RjbGtfZnJlcSA9 IDY3NTAwMDsKPiArCX0gZWxzZSBpZiAoSVNfVkFMTEVZVklFVyhkZXYpKSB7Cj4gIAkJZGV2X3By aXYtPm1heF9jZGNsa19mcmVxID0gNDAwMDAwOwo+ICAJfSBlbHNlIHsKPiAgCQkvKiBvdGhlcndp c2UgYXNzdW1lIGNkY2xrIGlzIGZpeGVkICovCj4gQEAgLTY2MjEsMTMgKzY2MzYsMTEgQEAgc3Rh dGljIGJvb2wgcGlwZV9jb25maWdfc3VwcG9ydHNfaXBzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwKPiAgCQlyZXR1cm4gdHJ1ZTsKPiAgCj4gIAkvKgo+IC0JICogRklYTUUgaWYg d2UgY29tcGFyZSBhZ2FpbnN0IG1heCB3ZSBzaG91bGQgdGhlbgo+IC0JICogaW5jcmVhc2UgdGhl IGNkY2xrIGZyZXF1ZW5jeSB3aGVuIHRoZSBjdXJyZW50Cj4gLQkgKiB2YWx1ZSBpcyB0b28gbG93 LiBUaGUgb3RoZXIgb3B0aW9uIGlzIHRvIGNvbXBhcmUKPiAtCSAqIGFnYWluc3QgdGhlIGNkY2xr IGZyZXF1ZW5jeSB3ZSdyZSBnb2luZyBoYXZlIHBvc3QKPiAtCSAqIG1vZGVzZXQgKGllLiBvbmUg d2UgY29tcHV0ZWQgdXNpbmcgb3RoZXIgY29uc3RyYWludHMpLgo+IC0JICogTmVlZCB0byBtZWFz dXJlIHdoZXRoZXIgdXNpbmcgYSBsb3dlciBjZGNsayB3L28gSVBTCj4gLQkgKiBpcyBiZXR0ZXIg b3Igd29yc2UgdGhhbiBhIGhpZ2hlciBjZGNsayB3LyBJUFMuCj4gKwkgKiBXZSBjb21wYXJlIGFn YWluc3QgbWF4IHdoaWNoIG1lYW5zIHdlIG11c3QgdGFrZQo+ICsJICogdGhlIGluY3JlYXNlZCBj ZGNsayByZXF1aXJlbWVudCBpbnRvIGFjY291bnQgd2hlbgo+ICsJICogY2FsY3VsYXRpbmcgdGhl IG5ldyBjZGNsay4KPiArCSAqCj4gKwkgKiBTaG91bGQgbWVhc3VyZSB3aGV0aGVyIHVzaW5nIGEg bG93ZXIgY2RjbGsgdy9vIElQUwo+ICAJICovCj4gIAlyZXR1cm4gaWxrX3BpcGVfcGl4ZWxfcmF0 ZShwaXBlX2NvbmZpZykgPD0KPiAgCQlkZXZfcHJpdi0+bWF4X2NkY2xrX2ZyZXEgKiA5NSAvIDEw MDsKPiBAQCAtOTYwOCw2ICs5NjIxLDE4MiBAQCBzdGF0aWMgdm9pZCBicm94dG9uX21vZGVzZXRf Z2xvYmFsX3Jlc291cmNlcyhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqb2xkX3N0YXRlKQo+ICAJ CWJyb3h0b25fc2V0X2NkY2xrKGRldiwgcmVxX2NkY2xrKTsKPiAgfQo+ICAKPiArLyogY29tcHV0 ZSB0aGUgbWF4IHJhdGUgZm9yIG5ldyBjb25maWd1cmF0aW9uICovCj4gK3N0YXRpYyBpbnQgaWxr X21heF9waXhlbF9yYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiArewo+ ICsJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGRldl9wcml2LT5kZXY7Cj4gKwlzdHJ1Y3QgaW50 ZWxfY3J0YyAqaW50ZWxfY3J0YzsKPiArCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKPiArCWludCBt YXhfcGl4ZWxfcmF0ZSA9IDA7Cj4gKwlpbnQgcGl4ZWxfcmF0ZTsKPiArCj4gKwlmb3JfZWFjaF9j cnRjKGRldiwgY3J0Yykgewo+ICsJCWlmICghY3J0Yy0+c3RhdGUtPmVuYWJsZSkKPiArCQkJY29u dGludWU7Cj4gKwo+ICsJCWludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwo+ICsJCXBp eGVsX3JhdGUgPSBpbGtfcGlwZV9waXhlbF9yYXRlKGludGVsX2NydGMtPmNvbmZpZyk7Cj4gKwo+ ICsJCS8qIHBpeGVsIHJhdGUgbXVzdG4ndCBleGNlZWQgOTUlIG9mIGNkY2xrIHdpdGggSVBTIG9u IEJEVyAqLwo+ICsJCWlmIChJU19CUk9BRFdFTEwoZGV2KSAmJiBpbnRlbF9jcnRjLT5jb25maWct Pmlwc19lbmFibGVkKQo+ICsJCQlwaXhlbF9yYXRlID0gRElWX1JPVU5EX1VQKHBpeGVsX3JhdGUg KiAxMDAsIDk1KTsKPiArCj4gKwkJbWF4X3BpeGVsX3JhdGUgPSBtYXgobWF4X3BpeGVsX3JhdGUs IHBpeGVsX3JhdGUpOwo+ICsJfQo+ICsKPiArCXJldHVybiBtYXhfcGl4ZWxfcmF0ZTsKPiArfQo+ ICsKPiArc3RhdGljIHZvaWQgYnJvYWR3ZWxsX3NldF9jZGNsayhzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LCBpbnQgY2RjbGspCj4gK3sKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gKwl1aW50MzJfdCB2YWwsIGRhdGE7Cj4gKwlpbnQgcmV0 Owo+ICsKPiArCWlmIChXQVJOKChJOTE1X1JFQUQoTENQTExfQ1RMKSAmCj4gKwkJICAoTENQTExf UExMX0RJU0FCTEUgfCBMQ1BMTF9QTExfTE9DSyB8Cj4gKwkJICAgTENQTExfQ0RfQ0xPQ0tfRElT QUJMRSB8IExDUExMX1JPT1RfQ0RfQ0xPQ0tfRElTQUJMRSB8Cj4gKwkJICAgTENQTExfQ0QyWF9D TE9DS19ESVNBQkxFIHwgTENQTExfUE9XRVJfRE9XTl9BTExPVyB8Cj4gKwkJICAgTENQTExfQ0Rf U09VUkNFX0ZDTEspKSAhPSBMQ1BMTF9QTExfTE9DSywKPiArCQkgInRyeWluZyB0byBjaGFuZ2Ug Y2RjbGsgZnJlcXVlbmN5IHdpdGggY2RjbGsgbm90IGVuYWJsZWRcbiIpKQo+ICsJCXJldHVybjsK PiArCj4gKwltdXRleF9sb2NrKCZkZXZfcHJpdi0+cnBzLmh3X2xvY2spOwo+ICsJcmV0ID0gc2Fu ZHlicmlkZ2VfcGNvZGVfd3JpdGUoZGV2X3ByaXYsCj4gKwkJCQkgICAgICBCRFdfUENPREVfRElT UExBWV9GUkVRX0NIQU5HRV9SRVEsIDB4MCk7Cj4gKwltdXRleF91bmxvY2soJmRldl9wcml2LT5y cHMuaHdfbG9jayk7Cj4gKwlpZiAocmV0KSB7Cj4gKwkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gaW5m b3JtIHBjb2RlIGFib3V0IGNkY2xrIGNoYW5nZVxuIik7Cj4gKwkJcmV0dXJuOwo+ICsJfQo+ICsK PiArCXZhbCA9IEk5MTVfUkVBRChMQ1BMTF9DVEwpOwo+ICsJdmFsIHw9IExDUExMX0NEX1NPVVJD RV9GQ0xLOwo+ICsJSTkxNV9XUklURShMQ1BMTF9DVEwsIHZhbCk7Cj4gKwo+ICsJaWYgKHdhaXRf Zm9yX2F0b21pY191cyhJOTE1X1JFQUQoTENQTExfQ1RMKSAmCj4gKwkJCSAgICAgICBMQ1BMTF9D RF9TT1VSQ0VfRkNMS19ET05FLCAxKSkKPiArCQlEUk1fRVJST1IoIlN3aXRjaGluZyB0byBGQ0xL IGZhaWxlZFxuIik7Cj4gKwo+ICsJdmFsID0gSTkxNV9SRUFEKExDUExMX0NUTCk7Cj4gKwl2YWwg Jj0gfkxDUExMX0NMS19GUkVRX01BU0s7Cj4gKwo+ICsJc3dpdGNoIChjZGNsaykgewo+ICsJY2Fz ZSA0NTAwMDA6Cj4gKwkJdmFsIHw9IExDUExMX0NMS19GUkVRXzQ1MDsKPiArCQlkYXRhID0gMDsK PiArCQlicmVhazsKPiArCWNhc2UgNTQwMDAwOgo+ICsJCXZhbCB8PSBMQ1BMTF9DTEtfRlJFUV81 NE9fQkRXOwo+ICsJCWRhdGEgPSAxOwo+ICsJCWJyZWFrOwo+ICsJY2FzZSAzMzc1MDA6Cj4gKwkJ dmFsIHw9IExDUExMX0NMS19GUkVRXzMzN181X0JEVzsKPiArCQlkYXRhID0gMjsKPiArCQlicmVh azsKPiArCWNhc2UgNjc1MDAwOgo+ICsJCXZhbCB8PSBMQ1BMTF9DTEtfRlJFUV82NzVfQkRXOwo+ ICsJCWRhdGEgPSAzOwo+ICsJCWJyZWFrOwo+ICsJZGVmYXVsdDoKPiArCQlXQVJOKDEsICJpbnZh bGlkIGNkY2xrIGZyZXF1ZW5jeVxuIik7Cj4gKwkJcmV0dXJuOwo+ICsJfQo+ICsKPiArCUk5MTVf V1JJVEUoTENQTExfQ1RMLCB2YWwpOwo+ICsKPiArCXZhbCA9IEk5MTVfUkVBRChMQ1BMTF9DVEwp Owo+ICsJdmFsICY9IH5MQ1BMTF9DRF9TT1VSQ0VfRkNMSzsKPiArCUk5MTVfV1JJVEUoTENQTExf Q1RMLCB2YWwpOwo+ICsKPiArCWlmICh3YWl0X2Zvcl9hdG9taWNfdXMoKEk5MTVfUkVBRChMQ1BM TF9DVEwpICYKPiArCQkJCUxDUExMX0NEX1NPVVJDRV9GQ0xLX0RPTkUpID09IDAsIDEpKQo+ICsJ CURSTV9FUlJPUigiU3dpdGNoaW5nIGJhY2sgdG8gTENQTEwgZmFpbGVkXG4iKTsKPiArCj4gKwlt dXRleF9sb2NrKCZkZXZfcHJpdi0+cnBzLmh3X2xvY2spOwo+ICsJc2FuZHlicmlkZ2VfcGNvZGVf d3JpdGUoZGV2X3ByaXYsIEhTV19QQ09ERV9ERV9XUklURV9GUkVRX1JFUSwgZGF0YSk7Cj4gKwlt dXRleF91bmxvY2soJmRldl9wcml2LT5ycHMuaHdfbG9jayk7Cj4gKwo+ICsJaW50ZWxfdXBkYXRl X2NkY2xrKGRldik7Cj4gKwo+ICsJV0FSTihjZGNsayAhPSBkZXZfcHJpdi0+Y2RjbGtfZnJlcSwK PiArCSAgICAgImNkY2xrIHJlcXVlc3RlZCAlZCBrSHogYnV0IGdvdCAlZCBrSHpcbiIsCj4gKwkg ICAgIGNkY2xrLCBkZXZfcHJpdi0+Y2RjbGtfZnJlcSk7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQg YnJvYWR3ZWxsX2NhbGNfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ ICsJCQkgICAgICBpbnQgbWF4X3BpeGVsX3JhdGUpCj4gK3sKPiArCWludCBjZGNsazsKPiArCj4g KwkvKgo+ICsJICogRklYTUUgc2hvdWxkIGFsc28gYWNjb3VudCBmb3IgcGxhbmUgcmF0aW8KPiAr CSAqIG9uY2UgNjRicHAgcGl4ZWwgZm9ybWF0cyBhcmUgc3VwcG9ydGVkLgo+ICsJICovCj4gKwlp ZiAobWF4X3BpeGVsX3JhdGUgPiA1NDAwMDApCj4gKwkJY2RjbGsgPSA2NzUwMDA7Cj4gKwllbHNl IGlmIChtYXhfcGl4ZWxfcmF0ZSA+IDQ1MDAwMCkKPiArCQljZGNsayA9IDU0MDAwMDsKPiArCWVs c2UgaWYgKG1heF9waXhlbF9yYXRlID4gMzM3NTAwKQo+ICsJCWNkY2xrID0gNDUwMDAwOwo+ICsJ ZWxzZQo+ICsJCWNkY2xrID0gMzM3NTAwOwo+ICsKPiArCS8qCj4gKwkgKiBGSVhNRSBtb3ZlIHRo ZSBjZGNsayBjYWNsdWxhdGlvbiB0bwo+ICsJICogY29tcHV0ZV9jb25maWcoKSBzbyB3ZSBjYW4g ZmFpbCBncmFjZWd1bGx5Lgo+ICsJICovCj4gKwlpZiAoY2RjbGsgPiBkZXZfcHJpdi0+bWF4X2Nk Y2xrX2ZyZXEpIHsKPiArCQlEUk1fRVJST1IoInJlcXVlc3RlZCBjZGNsayAoJWQga0h6KSBleGNl ZWRzIG1heCAoJWQga0h6KVxuIiwKPiArCQkJICBjZGNsaywgZGV2X3ByaXYtPm1heF9jZGNsa19m cmVxKTsKPiArCQljZGNsayA9IGRldl9wcml2LT5tYXhfY2RjbGtfZnJlcTsKPiArCX0KPiArCj4g KwlyZXR1cm4gY2RjbGs7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgYnJvYWR3ZWxsX21vZGVzZXRf Z2xvYmFsX3BpcGVzKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiArewo+ICsJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShzdGF0ZS0+ZGV2KTsKPiAr CXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKPiArCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZTsKPiArCWludCBtYXhfcGl4Y2xrID0gaWxrX21heF9waXhlbF9yYXRlKGRldl9wcml2KTsK PiArCWludCBjZGNsaywgaTsKPiArCj4gKwljZGNsayA9IGJyb2Fkd2VsbF9jYWxjX2NkY2xrKGRl dl9wcml2LCBtYXhfcGl4Y2xrKTsKPiArCj4gKwlpZiAoY2RjbGsgPT0gZGV2X3ByaXYtPmNkY2xr X2ZyZXEpCj4gKwkJcmV0dXJuIDA7Cj4gKwo+ICsJLyogYWRkIGFsbCBhY3RpdmUgcGlwZXMgdG8g dGhlIHN0YXRlICovCj4gKwlmb3JfZWFjaF9jcnRjKHN0YXRlLT5kZXYsIGNydGMpIHsKPiArCQlp ZiAoIWNydGMtPnN0YXRlLT5lbmFibGUpCj4gKwkJCWNvbnRpbnVlOwo+ICsKPiArCQljcnRjX3N0 YXRlID0gZHJtX2F0b21pY19nZXRfY3J0Y19zdGF0ZShzdGF0ZSwgY3J0Yyk7Cj4gKwkJaWYgKElT X0VSUihjcnRjX3N0YXRlKSkKPiArCQkJcmV0dXJuIFBUUl9FUlIoY3J0Y19zdGF0ZSk7Cj4gKwl9 Cj4gKwo+ICsJLyogZGlzYWJsZS9lbmFibGUgYWxsIGN1cnJlbnRseSBhY3RpdmUgcGlwZXMgd2hp bGUgd2UgY2hhbmdlIGNkY2xrICovCj4gKwlmb3JfZWFjaF9jcnRjX2luX3N0YXRlKHN0YXRlLCBj cnRjLCBjcnRjX3N0YXRlLCBpKQo+ICsJCWlmIChjcnRjX3N0YXRlLT5lbmFibGUpCj4gKwkJCWNy dGNfc3RhdGUtPm1vZGVfY2hhbmdlZCA9IHRydWU7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30KPiAr Cj4gK3N0YXRpYyB2b2lkIGJyb2Fkd2VsbF9tb2Rlc2V0X2dsb2JhbF9yZXNvdXJjZXMoc3RydWN0 IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gc3RhdGUtPmRldjsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRl di0+ZGV2X3ByaXZhdGU7Cj4gKwlpbnQgbWF4X3BpeGVsX3JhdGUgPSBpbGtfbWF4X3BpeGVsX3Jh dGUoZGV2X3ByaXYpOwo+ICsJaW50IHJlcV9jZGNsayA9IGJyb2Fkd2VsbF9jYWxjX2NkY2xrKGRl dl9wcml2LCBtYXhfcGl4ZWxfcmF0ZSk7Cj4gKwo+ICsJaWYgKHJlcV9jZGNsayAhPSBkZXZfcHJp di0+Y2RjbGtfZnJlcSkKPiArCQlicm9hZHdlbGxfc2V0X2NkY2xrKGRldiwgcmVxX2NkY2xrKTsK PiArfQo+ICsKPiAgc3RhdGljIGludCBoYXN3ZWxsX2NydGNfY29tcHV0ZV9jbG9jayhzdHJ1Y3Qg aW50ZWxfY3J0YyAqY3J0YywKPiAgCQkJCSAgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlKQo+ICB7Cj4gQEAgLTEyNzg4LDggKzEyOTc3LDEyIEBAIHN0YXRpYyBpbnQgX19p bnRlbF9zZXRfbW9kZV9jaGVja3Moc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ICAJ ICogbW9kZSBzZXQgb24gdGhpcyBjcnRjLiAgRm9yIG90aGVyIGNydGNzIHdlIG5lZWQgdG8gdXNl IHRoZQo+ICAJICogYWRqdXN0ZWRfbW9kZSBiaXRzIGluIHRoZSBjcnRjIGRpcmVjdGx5Lgo+ICAJ ICovCj4gLQlpZiAoSVNfVkFMTEVZVklFVyhkZXYpIHx8IElTX0JST1hUT04oZGV2KSkgewo+IC0J CXJldCA9IHZhbGxleXZpZXdfbW9kZXNldF9nbG9iYWxfcGlwZXMoc3RhdGUpOwo+ICsJaWYgKElT X1ZBTExFWVZJRVcoZGV2KSB8fCBJU19CUk9YVE9OKGRldikgfHwgSVNfQlJPQURXRUxMKGRldikp IHsKPiArCQlpZiAoSVNfVkFMTEVZVklFVyhkZXYpIHx8IElTX0JST1hUT04oZGV2KSkKPiArCQkJ cmV0ID0gdmFsbGV5dmlld19tb2Rlc2V0X2dsb2JhbF9waXBlcyhzdGF0ZSk7Cj4gKwkJZWxzZQo+ ICsJCQlyZXQgPSBicm9hZHdlbGxfbW9kZXNldF9nbG9iYWxfcGlwZXMoc3RhdGUpOwo+ICsKPiAg CQlpZiAocmV0KQo+ICAJCQlyZXR1cm4gcmV0Owo+ICAJfQo+IEBAIC0xNDY3Nyw2ICsxNDg3MCw5 IEBAIHN0YXRpYyB2b2lkIGludGVsX2luaXRfZGlzcGxheShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 KQo+ICAJCWRldl9wcml2LT5kaXNwbGF5LmZkaV9saW5rX3RyYWluID0gaXZiX21hbnVhbF9mZGlf bGlua190cmFpbjsKPiAgCX0gZWxzZSBpZiAoSVNfSEFTV0VMTChkZXYpIHx8IElTX0JST0FEV0VM TChkZXYpKSB7Cj4gIAkJZGV2X3ByaXYtPmRpc3BsYXkuZmRpX2xpbmtfdHJhaW4gPSBoc3dfZmRp X2xpbmtfdHJhaW47Cj4gKwkJaWYgKElTX0JST0FEV0VMTChkZXYpKQo+ICsJCQlkZXZfcHJpdi0+ ZGlzcGxheS5tb2Rlc2V0X2dsb2JhbF9yZXNvdXJjZXMgPQo+ICsJCQkJYnJvYWR3ZWxsX21vZGVz ZXRfZ2xvYmFsX3Jlc291cmNlczsKPiAgCX0gZWxzZSBpZiAoSVNfVkFMTEVZVklFVyhkZXYpKSB7 Cj4gIAkJZGV2X3ByaXYtPmRpc3BsYXkubW9kZXNldF9nbG9iYWxfcmVzb3VyY2VzID0KPiAgCQkJ dmFsbGV5dmlld19tb2Rlc2V0X2dsb2JhbF9yZXNvdXJjZXM7Cj4gLS0gCj4gMS45LjEKPgo+IF9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gSW50ZWwtZ2Z4 IG1haWxpbmcgbGlzdAo+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4CgotLSAKSmFu aSBOaWt1bGEsIEludGVsIE9wZW4gU291cmNlIFRlY2hub2xvZ3kgQ2VudGVyCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxp c3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==