From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 2/4] drm/i915: Read czclk from CCK on vlv/chv Date: Mon, 28 Sep 2015 23:29:59 +0300 Message-ID: <20150928202959.GT26517@intel.com> References: <1443126560-26006-1-git-send-email-ville.syrjala@linux.intel.com> <1443126560-26006-3-git-send-email-ville.syrjala@linux.intel.com> <1443468709.3990.17.camel@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 4F4446E315 for ; Mon, 28 Sep 2015 13:30:27 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1443468709.3990.17.camel@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Imre Deak Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBTZXAgMjgsIDIwMTUgYXQgMTA6MzE6NDlQTSArMDMwMCwgSW1yZSBEZWFrIHdyb3Rl Ogo+IE9uIFRodSwgMjAxNS0wOS0yNCBhdCAyMzoyOSArMDMwMCwgdmlsbGUuc3lyamFsYUBsaW51 eC5pbnRlbC5jb20gd3JvdGU6Cj4gPiBGcm9tOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmph bGFAbGludXguaW50ZWwuY29tPgo+ID4gCj4gPiBBcyB3aXRoIHRoZSBjZGNsaywgcmVhZCBvdXQg Y3pjbGsgZnJvbSBDQ0sgYXMgd2VsbC4gVGhpcyBnaXZlcyB1cyB0aGUKPiA+IHJlYWwgY3VycmVu dCB2YWx1ZSBhbmQgYXZvaWRzIGhhdmluZyB0byBkZWNvZGUgZnVzZXMgYW5kIHdoYXRub3QuCj4g PiAKPiA+IEFsc28gc3RvcmUgaXQgaW4ga0h6IHVuZGVyIGRldl9wcml2IGxpa2Ugd2UgZG8gZm9y IGNkbGNrIHNpbmNlIGl0J3Mgbm90Cj4gPiBqdXN0IGFuIHJwcyByZWxhdGVkIGNsb2NrLCBhbmQg aGF2aW5nIGl0IGluIGtIeiBpcyBtb3JlCj4gPiBzdGFuZGFyZC9jb252ZW5pZW50IGZvciBzb21l IHRoaW5ncy4KPiA+IAo+ID4gSW1yZSBhbHNvIHBvaW50ZWQgb3V0IHRoYXQgd2UgY3VycmVudGx5 IGZhaWwgdG8gcmVhZCBjemNsayBvbiBWTFYsIHdoaWNoCj4gPiBtZWFucyB0aGUgUEZJIGNyZWRp dCBwcm9ncmFtbWluZyBpc24ndCB3b3JraW5nIGFzIGV4cGVjdGVkLgo+ID4gCj4gPiBTaWduZWQt b2ZmLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+ IAo+IFllcCwgbXVjaCBiZXR0ZXIgdG8gaGF2ZSBhIGdlbmVyaWMgd2F5IHRvIHJlYWQgb3V0IGFs bCB0aGUgQ0NLIGNsb2NrcywKPiByZW1vdmVzIGEgbG90IG9mIHNwZWNpYWwgY2FzaW5nLiBJdCdz IGFsc28gdHJ1ZSB0aGF0IHRoZXNlIGNsb2NrcyBjYW4KPiBjaGFuZ2UsIHRob3VnaCBsZXQncyBu b3RlIHRoYXQgY3pjbGsgaXMgZml4ZWQuIExvb2tzIG9rIHRvIG1lOgo+IFJldmlld2VkLWJ5OiBJ bXJlIERlYWsgPGltcmUuZGVha0BpbnRlbC5jb20+Cj4gCj4gQmVsb3cgc29tZSBuaXRwaWNrcyBh Ym91dCBuYW1pbmcuCj4gCj4gPiAtLS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oICAgICAgfCAgMiArLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggICAg ICB8ICAxICsKPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCA4OCAr KysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9wbS5jICAgICAgfCAyNSArKy0tLS0tLS0tCj4gPiAgNCBmaWxlcyBjaGFuZ2Vk LCA2MCBpbnNlcnRpb25zKCspLCA1NiBkZWxldGlvbnMoLSkKPiA+IAo+ID4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oCj4gPiBpbmRleCAyYjVkNTg3Li43N2M5MzEyIDEwMDY0NAo+ID4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuaAo+ID4gQEAgLTExNDYsNyArMTE0Niw2IEBAIHN0cnVjdCBpbnRlbF9nZW42 X3Bvd2VyX21nbXQgewo+ID4gIAl1OCBlZmZpY2llbnRfZnJlcTsJLyogQUtBIFJQZS4gUHJlLWRl dGVybWluZWQgYmFsYW5jZWQgZnJlcXVlbmN5ICovCj4gPiAgCXU4IHJwMV9mcmVxOwkJLyogImxl c3MgdGhhbiIgUlAwIHBvd2VyL2ZyZXFlbmN5ICovCj4gPiAgCXU4IHJwMF9mcmVxOwkJLyogTm9u LW92ZXJjbG9ja2VkIG1heCBmcmVxdWVuY3kuICovCj4gPiAtCXUzMiBjel9mcmVxOwo+ID4gIAo+ ID4gIAl1OCB1cF90aHJlc2hvbGQ7IC8qIEN1cnJlbnQgJWJ1c3kgcmVxdWlyZWQgdG8gdXBsb2Nr ICovCj4gPiAgCXU4IGRvd25fdGhyZXNob2xkOyAvKiBDdXJyZW50ICVidXN5IHJlcXVpcmVkIHRv IGRvd25jbG9jayAqLwo+ID4gQEAgLTE4MTAsNiArMTgwOSw3IEBAIHN0cnVjdCBkcm1faTkxNV9w cml2YXRlIHsKPiA+ICAJdW5zaWduZWQgaW50IGNkY2xrX2ZyZXEsIG1heF9jZGNsa19mcmVxOwo+ ID4gIAl1bnNpZ25lZCBpbnQgbWF4X2RvdGNsa19mcmVxOwo+ID4gIAl1bnNpZ25lZCBpbnQgaHBs bF9mcmVxOwo+ID4gKwl1bnNpZ25lZCBpbnQgY3pjbGtfZnJlcTsKPiA+ICAKPiA+ICAJLyoqCj4g PiAgCSAqIHdxIC0gRHJpdmVyIHdvcmtxdWV1ZSBmb3IgR0VNLgo+ID4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3JlZy5oCj4gPiBpbmRleCBmMjJmYjgwLi44MzIxODAzMiAxMDA2NDQKPiA+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfcmVnLmgKPiA+IEBAIC03MjgsNiArNzI4LDcgQEAgZW51bSBza2xfZGlzcF9wb3dlcl93 ZWxscyB7Cj4gPiAgI2RlZmluZSAgRFNJX1BMTF9OMV9ESVZfTUFTSwkJCSgzIDw8IDE2KQo+ID4g ICNkZWZpbmUgIERTSV9QTExfTTFfRElWX1NISUZUCQkJMAo+ID4gICNkZWZpbmUgIERTSV9QTExf TTFfRElWX01BU0sJCQkoMHgxZmYgPDwgMCkKPiA+ICsjZGVmaW5lIENDS19DWl9DTE9DS19DT05U Uk9MCQkJMHg2Mgo+ID4gICNkZWZpbmUgQ0NLX0RJU1BMQVlfQ0xPQ0tfQ09OVFJPTAkJMHg2Ygo+ ID4gICNkZWZpbmUgIENDS19UUlVOS19GT1JDRV9PTgkJCSgxIDw8IDE3KQo+ID4gICNkZWZpbmUg IENDS19UUlVOS19GT1JDRV9PRkYJCQkoMSA8PCAxNikKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kaXNwbGF5LmMKPiA+IGluZGV4IDg1NjdiNDYuLmQ2Njg4OTcgMTAwNjQ0Cj4gPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4gQEAgLTEzMiw2ICsxMzIsNDIgQEAgc3RydWN0 IGludGVsX2xpbWl0IHsKPiA+ICAJaW50ZWxfcDJfdAkgICAgcDI7Cj4gPiAgfTsKPiA+ICAKPiA+ ICsvKiByZXR1cm5zIEhQTEwgZnJlcXVlbmN5IGluIGtIeiAqLwo+ID4gK3N0YXRpYyBpbnQgdmFs bGV5dmlld19nZXRfdmNvKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAKPiBU aGlzIHdhc24ndCBhZGRlZCBpbiB0aGlzIHBhdGNoLCBidXQgSSB3b3VsZCBjYWxsIGl0IGdldF9j Y2tfcmVmIG9yCj4gc2ltaWxhci4gVkNPIGlzIHRvbyBnZW5lcmljIGFuZCBIUExMIGlzbid0IGFj Y3VyYXRlLCBzaW5jZSB0aGUgODAwTUh6Cj4gY2xvY2sgaXMgYSBieXBhc3MgY2xvY2sgZGlyZWN0 bHkgZnJvbSBpQ0xLLgoKODAwTWh6IG9uIFZMViBhbmQgMTYwME1IeiBvbiBDSFYgSSBiZWxpZXZl LiBJJ20gbm90IHN1cmUgdGhlIGJ5cGFzcyBpcwpldmVyIHVzZWQgdGhvdWdoLiBDSFYgY2xvY2sg SEFTIGhhcyBhIG5vdGUgdGhhdCB0aGUgYnlwYXNzIG9wdGlvbiBoYWQKYSBsb3Qgb2Ygaml0dGVy LCBzbyB0aGF0IHRoYXQgbWF5IGJlIHRoZSByZWFzb24gZm9yIG5vdCB1c2luZyBpdC4gVkxWCm5v cnRoIGNsb2NrIEhBUyBkb2Vzbid0IGhhdmUgc3VjaCBhIG5vdGUsIGJ1dCBpdCBkb2VzIGdvIG9u IHRvIHNheSB0aGF0CnRoZSBwbGFuIHdhcyB0byB1c2UgSFBMTCAoZXhjZXB0IG1heWJlIHdpdGgg U0tVMjAwKS4gQWxzbyB0aGVyZSdzCmFub3RoZXIgbm90ZSBpbiB0aGUgVkxWIGRvY3Mgc2F5aW5n IEhQTEwgYnlwYXNzK0dQTEwgaXMgYSBkZWJ1ZyBvbmx5CmNvbmZpZ3VyYXRpb24sIGFuZCB3ZSBh bHdheXMgdXNlIEdQTEwgc28gdGhhdCB3b3VsZCBpbXBseSB3ZSBhbHdheXMgdXNlCkhQTEwgdG9v LgoKTG9va2luZyBhdCB0aGUgZnVzZXMgb24gYSBmZXcgQllUIGFuZCBCU1cgbWFjaGluZXMsIHRo ZXkgYm90aCB1c2UgdGhlCkhQTEwgQCAxNjAwTUh6LiBUaGUgQllUIGlzIFNLVTI2NiBhbmQgQlNX IGlzIFNLVTMyMCwgc28gaW4gdGhlb3J5IEkKdGhpbmsgYm90aCBjb3VsZCB1c2UgdGhlIGJ5cGFz cyBjbG9jayBidXQgbmVpdGhlciBkb2VzLgoKQnV0IHllYWgsIHRoZSBjdXJyZW50IGZ1bmN0aW9u IG5hbWUgaXNuJ3QgYWxsIHRoYXQgZ29vZC4gSSB0aGluawp2bHZfZ2V0X2hwbGxfZnJlcSgpIG9y IHNvbWV0aGluZyB3b3VsZCBiZSBPSywgc2luY2UgZXZlbiB0aGUgYnlwYXNzCmNsb2NrIGlzIHN0 aWxsIGNhbGxlZCAiSFBMTCBieXBhc3MgY2xvY2siLiBBbmQgdGhlIHdheSBpdCdzIGRyYXduIGlu CnRoZSBkb2NzIGlzIG9mdGVuIGFzIGEgYmlnZ2VyIEhQTEwgYmxvY2sgd2hpY2ggY29udGFpbnMg Ym90aCB0aGUgSFBMTApwcm9wZXIsIHRoZSBieXBhc3MgcGF0aCwgYW5kIHRoZSBtdXggdG8gc2Vs ZWN0IGJldHdlZW4gdGhlIHR3by4KCj4gCj4gPiArewo+ID4gKwlpbnQgaHBsbF9mcmVxLCB2Y29f ZnJlcVtdID0geyA4MDAsIDE2MDAsIDIwMDAsIDI0MDAgfTsKPiA+ICsKPiA+ICsJLyogT2J0YWlu IFNLVSBpbmZvcm1hdGlvbiAqLwo+ID4gKwltdXRleF9sb2NrKCZkZXZfcHJpdi0+c2JfbG9jayk7 Cj4gPiArCWhwbGxfZnJlcSA9IHZsdl9jY2tfcmVhZChkZXZfcHJpdiwgQ0NLX0ZVU0VfUkVHKSAm Cj4gPiArCQlDQ0tfRlVTRV9IUExMX0ZSRVFfTUFTSzsKPiA+ICsJbXV0ZXhfdW5sb2NrKCZkZXZf cHJpdi0+c2JfbG9jayk7Cj4gPiArCj4gPiArCXJldHVybiB2Y29fZnJlcVtocGxsX2ZyZXFdICog MTAwMDsKPiA+ICt9Cj4gPiArCj4gPiArc3RhdGljIGludCB2bHZfZ2V0X2Nja19jbG9ja19ocGxs KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ICsJCQkJICBjb25zdCBjaGFy ICpuYW1lLCB1MzIgcmVnKQo+IAo+IEkgd291bGQgaGF2ZSBjYWxsZWQgaXQgc2ltcGx5IGdldF9j Y2tfY2xvY2sgZm9yIHRoZSBhYm92ZSByZWFzb24uCgpJIGhhdmUgc29tZSBtb3JlIHBhdGNoZXMg c2l0dGluZyBpbiBicmFuY2ggdGhhdCBzcGxpdCB0aGlzCmludG8gdmx2X2dldF9jY2tfY2xvY2so KSBhbmQgdmx2X2dldF9jY2tfY2xvY2tfaHBsbCgpLCBsaWtlIHNvOgoKdmx2X2dldF9jY2tfY2xv Y2socmVnLCByZWYpCnsKCS8vIGRvIHRoZSBtYXRoCn0KCnZsdl9nZXRfY2NrX2Nsb2NrX2hwbGwo cmVnKQp7CglpZiAoIWhwbGxfZnJlcSkKCQlocGxsX2ZyZXEgPSB2YWxsZXl2aWV3X2dldF92Y28o KQoJcmV0dXJuIHZsdl9nZXRfY2NrX2Nsb2NrKHJlZywgaHBsbF9mcmVxKTsKfQoKU2ltcGx5IGJl Y2F1c2UgaW4gdGhlIG5vcm1hbCBjYXNlIHRoZSBIUExMIG91dHB1dCBpcyB0aGUgY2xvY2sKdGhh dCBnZXRzIGRpdmlkZXIgZG93bi4gQnV0IHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBzcGVjaWFsIGNh c2UKKEdQTEwgcmVmIGNsb2NrKSB3aGVyZSB0aGF0IGlzbid0IHRoZSBjYXNlLgoKPiAKPiA+ICt7 Cj4gPiArCXUzMiB2YWw7Cj4gPiArCWludCBkaXZpZGVyOwo+ID4gKwo+ID4gKwlpZiAoZGV2X3By aXYtPmhwbGxfZnJlcSA9PSAwKQo+ID4gKwkJZGV2X3ByaXYtPmhwbGxfZnJlcSA9IHZhbGxleXZp ZXdfZ2V0X3ZjbyhkZXZfcHJpdik7Cj4gPiArCj4gPiArCW11dGV4X2xvY2soJmRldl9wcml2LT5z Yl9sb2NrKTsKPiA+ICsJdmFsID0gdmx2X2Nja19yZWFkKGRldl9wcml2LCByZWcpOwo+ICsJbXV0 ZXhfdW5sb2NrKCZkZXZfcHJpdi0+c2JfbG9jayk7Cj4gPiArCj4gPiArCWRpdmlkZXIgPSB2YWwg JiBDQ0tfRlJFUVVFTkNZX1ZBTFVFUzsKPiA+ICsKPiA+ICsJV0FSTigodmFsICYgQ0NLX0ZSRVFV RU5DWV9TVEFUVVMpICE9Cj4gPiArCSAgICAgKGRpdmlkZXIgPDwgQ0NLX0ZSRVFVRU5DWV9TVEFU VVNfU0hJRlQpLAo+ID4gKwkgICAgICIlcyBjaGFuZ2UgaW4gcHJvZ3Jlc3NcbiIsIG5hbWUpOwo+ ID4gKwo+ID4gKwlyZXR1cm4gRElWX1JPVU5EX0NMT1NFU1QoZGV2X3ByaXYtPmhwbGxfZnJlcSA8 PCAxLCBkaXZpZGVyICsgMSk7Cj4gPiArfQo+ID4gKwo+ID4gIGludAo+ID4gIGludGVsX3BjaF9y YXdjbGsoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiA+ICB7Cj4gPiBAQCAtMTc1LDYgKzIxMSwx NyBAQCBpbnQgaW50ZWxfaHJhd2NsayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ID4gIAl9Cj4g PiAgfQo+ID4gIAo+ID4gK3N0YXRpYyB2b2lkIGludGVsX3VwZGF0ZV9jemNsayhzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gPiArewo+ID4gKwlpZiAoIUlTX1ZBTExFWVZJRVco ZGV2X3ByaXYpKQo+ID4gKwkJcmV0dXJuOwo+ID4gKwo+ID4gKwlkZXZfcHJpdi0+Y3pjbGtfZnJl cSA9IHZsdl9nZXRfY2NrX2Nsb2NrX2hwbGwoZGV2X3ByaXYsICJjemNsayIsCj4gPiArCQkJCQkJ ICAgICAgQ0NLX0NaX0NMT0NLX0NPTlRST0wpOwo+ID4gKwo+ID4gKwlEUk1fREVCVUdfRFJJVkVS KCJDWiBjbG9jayByYXRlOiAlZCBrSHpcbiIsIGRldl9wcml2LT5jemNsa19mcmVxKTsKPiA+ICt9 Cj4gPiArCj4gPiAgc3RhdGljIGlubGluZSB1MzIgLyogdW5pdHMgb2YgMTAwTUh6ICovCj4gPiAg aW50ZWxfZmRpX2xpbmtfZnJlcShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ID4gIHsKPiA+IEBA IC01NzQ5LDIwICs1Nzk2LDYgQEAgdm9pZCBza2xfaW5pdF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCj4gPiAgCQlEUk1fRVJST1IoIkRCdWYgcG93ZXIgZW5hYmxlIHRp bWVvdXRcbiIpOwo+ID4gIH0KPiA+ICAKPiA+IC0vKiByZXR1cm5zIEhQTEwgZnJlcXVlbmN5IGlu IGtIeiAqLwo+ID4gLXN0YXRpYyBpbnQgdmFsbGV5dmlld19nZXRfdmNvKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdikKPiA+IC17Cj4gPiAtCWludCBocGxsX2ZyZXEsIHZjb19mcmVx W10gPSB7IDgwMCwgMTYwMCwgMjAwMCwgMjQwMCB9Owo+ID4gLQo+ID4gLQkvKiBPYnRhaW4gU0tV IGluZm9ybWF0aW9uICovCj4gPiAtCW11dGV4X2xvY2soJmRldl9wcml2LT5zYl9sb2NrKTsKPiA+ IC0JaHBsbF9mcmVxID0gdmx2X2Nja19yZWFkKGRldl9wcml2LCBDQ0tfRlVTRV9SRUcpICYKPiA+ IC0JCUNDS19GVVNFX0hQTExfRlJFUV9NQVNLOwo+ID4gLQltdXRleF91bmxvY2soJmRldl9wcml2 LT5zYl9sb2NrKTsKPiA+IC0KPiA+IC0JcmV0dXJuIHZjb19mcmVxW2hwbGxfZnJlcV0gKiAxMDAw Owo+ID4gLX0KPiA+IC0KPiA+ICAvKiBBZGp1c3QgQ0RjbGsgZGl2aWRlcnMgdG8gYWxsb3cgaGln aCByZXMgb3Igc2F2ZSBwb3dlciBpZiBwb3NzaWJsZSAqLwo+ID4gIHN0YXRpYyB2b2lkIHZhbGxl eXZpZXdfc2V0X2NkY2xrKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBjZGNsaykKPiA+ICB7 Cj4gPiBAQCAtNTk4Myw3ICs2MDE2LDcgQEAgc3RhdGljIHZvaWQgdmx2X3Byb2dyYW1fcGZpX2Ny ZWRpdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ID4gIAllbHNlCj4gPiAg CQlkZWZhdWx0X2NyZWRpdHMgPSBQRklfQ1JFRElUKDgpOwo+ID4gIAo+ID4gLQlpZiAoRElWX1JP VU5EX0NMT1NFU1QoZGV2X3ByaXYtPmNkY2xrX2ZyZXEsIDEwMDApID49IGRldl9wcml2LT5ycHMu Y3pfZnJlcSkgewo+ID4gKwlpZiAoZGV2X3ByaXYtPmNkY2xrX2ZyZXEgPj0gZGV2X3ByaXYtPmN6 Y2xrX2ZyZXEpIHsKPiA+ICAJCS8qIENIViBzdWdnZXN0ZWQgdmFsdWUgaXMgMzEgb3IgNjMgKi8K PiA+ICAJCWlmIChJU19DSEVSUllWSUVXKGRldl9wcml2KSkKPiA+ICAJCQljcmVkaXRzID0gUEZJ X0NSRURJVF82MzsKPiA+IEBAIC02NzE1LDI0ICs2NzQ4LDggQEAgc3RhdGljIGludCBoYXN3ZWxs X2dldF9kaXNwbGF5X2Nsb2NrX3NwZWVkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gPiAgCj4g PiAgc3RhdGljIGludCB2YWxsZXl2aWV3X2dldF9kaXNwbGF5X2Nsb2NrX3NwZWVkKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYpCj4gPiAgewo+ID4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ID4gLQl1MzIgdmFsOwo+ID4gLQlpbnQgZGl2aWRl cjsKPiA+IC0KPiA+IC0JaWYgKGRldl9wcml2LT5ocGxsX2ZyZXEgPT0gMCkKPiA+IC0JCWRldl9w cml2LT5ocGxsX2ZyZXEgPSB2YWxsZXl2aWV3X2dldF92Y28oZGV2X3ByaXYpOwo+ID4gLQo+ID4g LQltdXRleF9sb2NrKCZkZXZfcHJpdi0+c2JfbG9jayk7Cj4gPiAtCXZhbCA9IHZsdl9jY2tfcmVh ZChkZXZfcHJpdiwgQ0NLX0RJU1BMQVlfQ0xPQ0tfQ09OVFJPTCk7Cj4gPiAtCW11dGV4X3VubG9j aygmZGV2X3ByaXYtPnNiX2xvY2spOwo+ID4gLQo+ID4gLQlkaXZpZGVyID0gdmFsICYgQ0NLX0ZS RVFVRU5DWV9WQUxVRVM7Cj4gPiAtCj4gPiAtCVdBUk4oKHZhbCAmIENDS19GUkVRVUVOQ1lfU1RB VFVTKSAhPQo+ID4gLQkgICAgIChkaXZpZGVyIDw8IENDS19GUkVRVUVOQ1lfU1RBVFVTX1NISUZU KSwKPiA+IC0JICAgICAiY2RjbGsgY2hhbmdlIGluIHByb2dyZXNzXG4iKTsKPiA+IC0KPiA+IC0J cmV0dXJuIERJVl9ST1VORF9DTE9TRVNUKGRldl9wcml2LT5ocGxsX2ZyZXEgPDwgMSwgZGl2aWRl ciArIDEpOwo+ID4gKwlyZXR1cm4gdmx2X2dldF9jY2tfY2xvY2tfaHBsbCh0b19pOTE1KGRldiks ICJjZGNsayIsCj4gPiArCQkJCSAgICAgIENDS19ESVNQTEFZX0NMT0NLX0NPTlRST0wpOwo+ID4g IH0KPiA+ICAKPiA+ICBzdGF0aWMgaW50IGlsa19nZXRfZGlzcGxheV9jbG9ja19zcGVlZChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2KQo+ID4gQEAgLTEzMzIzLDggKzEzMzQwLDYgQEAgc3RhdGljIHZv aWQgaW50ZWxfc2hhcmVkX2RwbGxfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ID4gIHsK PiA+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0 ZTsKPiA+ICAKPiA+IC0JaW50ZWxfdXBkYXRlX2NkY2xrKGRldik7Cj4gPiAtCj4gPiAgCWlmIChI QVNfRERJKGRldikpCj4gPiAgCQlpbnRlbF9kZGlfcGxsX2luaXQoZGV2KTsKPiA+ICAJZWxzZSBp ZiAoSEFTX1BDSF9JQlgoZGV2KSB8fCBIQVNfUENIX0NQVChkZXYpKQo+ID4gQEAgLTE0ODM2LDYg KzE0ODUxLDkgQEAgdm9pZCBpbnRlbF9tb2Rlc2V0X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRl dikKPiA+ICAJCX0KPiA+ICAJfQo+ID4gIAo+ID4gKwlpbnRlbF91cGRhdGVfY3pjbGsoZGV2X3By aXYpOwo+ID4gKwlpbnRlbF91cGRhdGVfY2RjbGsoZGV2KTsKPiA+ICsKPiA+ICAJaW50ZWxfc2hh cmVkX2RwbGxfaW5pdChkZXYpOwo+ID4gIAo+ID4gIAkvKiBKdXN0IGRpc2FibGUgaXQgb25jZSBh dCBzdGFydHVwICovCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPiA+IGluZGV4IGFiNWFjNWUu Ljg5NmE5NWMgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5j Cj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCj4gPiBAQCAtNTQ4Miwy NSArNTQ4MiwxMCBAQCBzdGF0aWMgdm9pZCBjaGVycnl2aWV3X2luaXRfZ3RfcG93ZXJzYXZlKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gPiAgCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPnNiX2xv Y2spOwo+ID4gIAo+ID4gIAlzd2l0Y2ggKCh2YWwgPj4gMikgJiAweDcpIHsKPiA+IC0JY2FzZSAw Ogo+ID4gLQljYXNlIDE6Cj4gPiAtCQlkZXZfcHJpdi0+cnBzLmN6X2ZyZXEgPSAyMDA7Cj4gPiAt CQlkZXZfcHJpdi0+bWVtX2ZyZXEgPSAxNjAwOwo+ID4gLQkJYnJlYWs7Cj4gPiAtCWNhc2UgMjoK PiA+IC0JCWRldl9wcml2LT5ycHMuY3pfZnJlcSA9IDI2NzsKPiA+IC0JCWRldl9wcml2LT5tZW1f ZnJlcSA9IDE2MDA7Cj4gPiAtCQlicmVhazsKPiA+ICAJY2FzZSAzOgo+ID4gLQkJZGV2X3ByaXYt PnJwcy5jel9mcmVxID0gMzMzOwo+ID4gIAkJZGV2X3ByaXYtPm1lbV9mcmVxID0gMjAwMDsKPiA+ ICAJCWJyZWFrOwo+ID4gLQljYXNlIDQ6Cj4gPiAtCQlkZXZfcHJpdi0+cnBzLmN6X2ZyZXEgPSAz MjA7Cj4gPiAtCQlkZXZfcHJpdi0+bWVtX2ZyZXEgPSAxNjAwOwo+ID4gLQkJYnJlYWs7Cj4gPiAt CWNhc2UgNToKPiA+IC0JCWRldl9wcml2LT5ycHMuY3pfZnJlcSA9IDQwMDsKPiA+ICsJZGVmYXVs dDoKPiA+ICAJCWRldl9wcml2LT5tZW1fZnJlcSA9IDE2MDA7Cj4gPiAgCQlicmVhazsKPiA+ICAJ fQo+ID4gQEAgLTczMjcsNyArNzMxMiw3IEBAIHN0YXRpYyBpbnQgdmx2X2dwdV9mcmVxX2Rpdih1 bnNpZ25lZCBpbnQgY3pjbGtfZnJlcSkKPiA+ICAKPiA+ICBzdGF0aWMgaW50IGJ5dF9ncHVfZnJl cShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGludCB2YWwpCj4gPiAgewo+ID4g LQlpbnQgZGl2LCBjemNsa19mcmVxID0gRElWX1JPVU5EX0NMT1NFU1QoZGV2X3ByaXYtPm1lbV9m cmVxLCA0KTsKPiA+ICsJaW50IGRpdiwgY3pjbGtfZnJlcSA9IERJVl9ST1VORF9DTE9TRVNUKGRl dl9wcml2LT5jemNsa19mcmVxLCAxMDAwKTsKPiA+ICAKPiA+ICAJZGl2ID0gdmx2X2dwdV9mcmVx X2RpdihjemNsa19mcmVxKTsKPiA+ICAJaWYgKGRpdiA8IDApCj4gPiBAQCAtNzMzOCw3ICs3MzIz LDcgQEAgc3RhdGljIGludCBieXRfZ3B1X2ZyZXEoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LCBpbnQgdmFsKQo+ID4gIAo+ID4gIHN0YXRpYyBpbnQgYnl0X2ZyZXFfb3Bjb2RlKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgaW50IHZhbCkKPiA+ICB7Cj4gPiAtCWlu dCBtdWwsIGN6Y2xrX2ZyZXEgPSBESVZfUk9VTkRfQ0xPU0VTVChkZXZfcHJpdi0+bWVtX2ZyZXEs IDQpOwo+ID4gKwlpbnQgbXVsLCBjemNsa19mcmVxID0gRElWX1JPVU5EX0NMT1NFU1QoZGV2X3By aXYtPmN6Y2xrX2ZyZXEsIDEwMDApOwo+ID4gIAo+ID4gIAltdWwgPSB2bHZfZ3B1X2ZyZXFfZGl2 KGN6Y2xrX2ZyZXEpOwo+ID4gIAlpZiAobXVsIDwgMCkKPiA+IEBAIC03MzQ5LDcgKzczMzQsNyBA QCBzdGF0aWMgaW50IGJ5dF9mcmVxX29wY29kZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsIGludCB2YWwpCj4gPiAgCj4gPiAgc3RhdGljIGludCBjaHZfZ3B1X2ZyZXEoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBpbnQgdmFsKQo+ID4gIHsKPiA+IC0JaW50IGRp diwgY3pjbGtfZnJlcSA9IGRldl9wcml2LT5ycHMuY3pfZnJlcTsKPiA+ICsJaW50IGRpdiwgY3pj bGtfZnJlcSA9IERJVl9ST1VORF9DTE9TRVNUKGRldl9wcml2LT5jemNsa19mcmVxLCAxMDAwKTsK PiA+ICAKPiA+ICAJZGl2ID0gdmx2X2dwdV9mcmVxX2RpdihjemNsa19mcmVxKSAvIDI7Cj4gPiAg CWlmIChkaXYgPCAwKQo+ID4gQEAgLTczNjAsNyArNzM0NSw3IEBAIHN0YXRpYyBpbnQgY2h2X2dw dV9mcmVxKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgaW50IHZhbCkKPiA+ICAK PiA+ICBzdGF0aWMgaW50IGNodl9mcmVxX29wY29kZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsIGludCB2YWwpCj4gPiAgewo+ID4gLQlpbnQgbXVsLCBjemNsa19mcmVxID0gZGV2 X3ByaXYtPnJwcy5jel9mcmVxOwo+ID4gKwlpbnQgbXVsLCBjemNsa19mcmVxID0gRElWX1JPVU5E X0NMT1NFU1QoZGV2X3ByaXYtPmN6Y2xrX2ZyZXEsIDEwMDApOwo+ID4gIAo+ID4gIAltdWwgPSB2 bHZfZ3B1X2ZyZXFfZGl2KGN6Y2xrX2ZyZXEpIC8gMjsKPiA+ICAJaWYgKG11bCA8IDApCj4gCgot LSAKVmlsbGUgU3lyasOkbMOkCkludGVsIE9UQwpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2ludGVsLWdmeAo=