From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v5] drm/i915: Force 2*96 MHz cdclk on glk/cnl when audio power is enabled Date: Wed, 12 Sep 2018 16:49:43 +0300 Message-ID: <20180912134943.GS5565@intel.com> References: <1529445671-6159-1-git-send-email-abhay.kumar@intel.com> <20180912131812.GB5276@ideak-desk.fi.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id 848986E55B for ; Wed, 12 Sep 2018 13:49:47 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20180912131812.GB5276@ideak-desk.fi.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: jani.nikula@intel.com, intel-gfx@lists.freedesktop.org, ville.syrjala@intel.com List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBTZXAgMTIsIDIwMTggYXQgMDQ6MTg6MTJQTSArMDMwMCwgSW1yZSBEZWFrIHdyb3Rl Ogo+IEhpIEt1bWFyLCBUYWthc2hpLAo+IAo+IE9uIFR1ZSwgSnVuIDE5LCAyMDE4IGF0IDAzOjAx OjExUE0gLTA3MDAsIEFiaGF5IEt1bWFyIHdyb3RlOgo+ID4gRnJvbTogVmlsbGUgU3lyasOkbMOk IDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiA+IAo+ID4gQ0RDTEsgaGFzIHRvIGJl IGF0IGxlYXN0IHR3aWNlIHRoZSBCTENLIHJlZ2FyZGxlc3Mgb2YgYXVkaW8uIEF1ZGlvCj4gPiBk cml2ZXIgaGFzIHRvIHByb2JlIHVzaW5nIHRoaXMgaG9vayBhbmQgaW5jcmVhc2UgdGhlIGNsb2Nr IGV2ZW4gaW4KPiA+IGFic2VuY2Ugb2YgYW55IGRpc3BsYXkuCj4gPiAKPiA+IHYyOiBVc2UgYXRv bWljIHJlZmNvdW50IGZvciBnZXRfcG93ZXIsIHB1dF9wb3dlciBzbyB0aGF0IHdlIGNhbgo+ID4g ICAgIGNhbGwgZWFjaCBvbmNlKEFiaGF5KS4KPiA+IHYzOiBSZXNldCBwb3dlciB3ZWxsIDIgdG8g YXZvaWQgYW55IHRyYW5zYWN0aW9uIG9uIGlEaXNwIGxpbmsKPiA+ICAgICBkdXJpbmcgY2RjbGsg Y2hhbmdlKEFiaGF5KS4KPiA+IHY0OiBSZW1vdmUgUG93ZXIgd2VsbCAyIHJlc2V0IHdvcmthcm91 bmQoVmlsbGUpLgo+ID4gdjU6IFJlbW92ZSB1bndhbnRlZCBQb3dlciB3ZWxsIDIgcmVnaXN0ZXIg ZGVmaW5lZCBpbiB2NChBYmhheSkuCj4gPiAKPiA+IFNpZ25lZC1vZmYtYnk6IFZpbGxlIFN5cmrD pGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gPiBTaWduZWQtb2ZmLWJ5OiBB YmhheSBLdW1hciA8YWJoYXkua3VtYXJAaW50ZWwuY29tPgo+ID4gLS0tCj4gPiAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgIHwgIDMgKysKPiA+ICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9hdWRpby5jICAgfCA2NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KystLS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jZGNsay5jICAgfCAyOSArKysr Ky0tLS0tLS0tLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwg IDcgKysrLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICB8ICAyICsr Cj4gPiAgNSBmaWxlcyBjaGFuZ2VkLCA4MyBpbnNlcnRpb25zKCspLCAyNSBkZWxldGlvbnMoLSkK PiA+IAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gPiBpbmRleCA2MTA0ZDcxMTUwNTQuLmE0 YTM4NmE1ZGI2OSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmgKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiA+IEBAIC0xNzAy LDYgKzE3MDIsNyBAQCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7Cj4gPiAgCXVuc2lnbmVkIGlu dCBocGxsX2ZyZXE7Cj4gPiAgCXVuc2lnbmVkIGludCBmZGlfcGxsX2ZyZXE7Cj4gPiAgCXVuc2ln bmVkIGludCBjemNsa19mcmVxOwo+ID4gKwl1MzIgZ2V0X3B1dF9yZWZjb3VudDsKPiA+ICAKPiA+ ICAJc3RydWN0IHsKPiA+ICAJCS8qCj4gPiBAQCAtMTcxOSw2ICsxNzIwLDggQEAgc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgewo+ID4gIAkJc3RydWN0IGludGVsX2NkY2xrX3N0YXRlIGFjdHVhbDsK PiA+ICAJCS8qIFRoZSBjdXJyZW50IGhhcmR3YXJlIGNkY2xrIHN0YXRlICovCj4gPiAgCQlzdHJ1 Y3QgaW50ZWxfY2RjbGtfc3RhdGUgaHc7Cj4gPiArCj4gPiArCQlpbnQgZm9yY2VfbWluX2NkY2xr Owo+ID4gIAl9IGNkY2xrOwo+ID4gIAo+ID4gIAkvKioKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9hdWRpby5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf YXVkaW8uYwo+ID4gaW5kZXggM2VhNTY2Zjk5NDUwLi5jYThmMDRjN2NiYjMgMTAwNjQ0Cj4gPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdWRpby5jCj4gPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9hdWRpby5jCj4gPiBAQCAtNjE4LDcgKzYxOCw2IEBAIHZvaWQg aW50ZWxfYXVkaW9fY29kZWNfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ ID4gIAo+ID4gIAlpZiAoIWNvbm5lY3Rvci0+ZWxkWzBdKQo+ID4gIAkJcmV0dXJuOwo+ID4gLQo+ ID4gIAlEUk1fREVCVUdfRFJJVkVSKCJFTEQgb24gW0NPTk5FQ1RPUjolZDolc10sIFtFTkNPREVS OiVkOiVzXVxuIiwKPiA+ICAJCQkgY29ubmVjdG9yLT5iYXNlLmlkLAo+ID4gIAkJCSBjb25uZWN0 b3ItPm5hbWUsCj4gPiBAQCAtNzEzLDE0ICs3MTIsNzQgQEAgdm9pZCBpbnRlbF9pbml0X2F1ZGlv X2hvb2tzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiA+ICAJfQo+ID4gIH0K PiA+ICAKPiA+ICtzdGF0aWMgdm9pZCBnbGtfZm9yY2VfYXVkaW9fY2RjbGsoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gKwkJCQlib29sIGVuYWJsZSkKPiA+ICt7Cj4gPiAr CXN0cnVjdCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0eCBjdHg7Cj4gPiArCXN0cnVjdCBkcm1fYXRv bWljX3N0YXRlICpzdGF0ZTsKPiA+ICsJaW50IHJldDsKPiA+ICsKPiA+ICsJZHJtX21vZGVzZXRf YWNxdWlyZV9pbml0KCZjdHgsIDApOwo+ID4gKwlzdGF0ZSA9IGRybV9hdG9taWNfc3RhdGVfYWxs b2MoJmRldl9wcml2LT5kcm0pOwo+ID4gKwlpZiAoV0FSTl9PTighc3RhdGUpKQo+ID4gKwkJcmV0 dXJuOwo+ID4gKwo+ID4gKwlzdGF0ZS0+YWNxdWlyZV9jdHggPSAmY3R4Owo+ID4gKwo+ID4gK3Jl dHJ5Ogo+ID4gKwl0b19pbnRlbF9hdG9taWNfc3RhdGUoc3RhdGUpLT5tb2Rlc2V0ID0gdHJ1ZTsK PiA+ICsJdG9faW50ZWxfYXRvbWljX3N0YXRlKHN0YXRlKS0+Y2RjbGsuZm9yY2VfbWluX2NkY2xr ID0KPiA+ICsJCWVuYWJsZSA/IDIgKiA5NjAwMCA6IDA7Cj4gPiArCj4gPiArCS8qCj4gPiArCSAq IFByb3RlY3RzIGRldl9wcml2LT5jZGNsay5mb3JjZV9taW5fY2RjbGsKPiA+ICsJICogTmVlZCB0 byBsb2NrIHRoaXMgaGVyZSBpbiBjYXNlIHdlIGhhdmUgbm8gYWN0aXZlIHBpcGVzCj4gPiArCSAq IGFuZCB0aHVzIHdvdWxkbid0IGxvY2sgaXQgZHVyaW5nIHRoZSBjb21taXQgb3RoZXJ3aXNlLgo+ ID4gKwkgKi8KPiA+ICsJcmV0ID0gZHJtX21vZGVzZXRfbG9jaygmZGV2X3ByaXYtPmRybS5tb2Rl X2NvbmZpZy5jb25uZWN0aW9uX211dGV4LCAmY3R4KTsKPiA+ICsJaWYgKCFyZXQpCj4gPiArCQly ZXQgPSBkcm1fYXRvbWljX2NvbW1pdChzdGF0ZSk7Cj4gCj4gVmlsbGUgbWVudGlvbmVkIGEgcG90 ZW50aWFsIGRlYWQtbG9jayBwcm9ibGVtIGhlcmU6IGEgbm9ybWFsIG1vZGVzZXQKPiBlbmFibGlu ZyBhbiBIRE1JL0RQIG91dHB1dCB3aXRoIGFuIGF1ZGlvIHNpbmsgd2lsbCBjYWxsIHRoZQo+IGRy bV9hdWRpb19jb21wb25lbnRfYXVkaW9fb3BzOjpwaW5fZWxkX25vdGlmeSgpIGNhbGxiYWNrIHdp dGggdGhlCj4gY29ubmVjdGlvbl9tdXRleCBhbHJlYWR5IGhlbGQuIFRoaXMgY2FsbGJhY2sgaW4g dHVybiBjb3VsZCBjYWxsCj4gZHJtX2F1ZGlvX2NvbXBvbmVudF9vcHM6OmdldF9wb3dlcigpL3B1 dF9wb3dlcigpIGNhbGxiYWNrcyBhbmQKPiBkZWFkLWxvY2sgYXQgdGhlIGFib3ZlIGRybV9tb2Rl c2V0X2xvY2soKSBjYWxsLgo+IAo+IExvb2tzIGxpa2UgdGhhdAo+IAo+ICAgIHNvdW5kL3BjaS9o ZGEvcGF0Y2hfaGRtaS5jIC8gaW50ZWxfcGluX2VsZF9ub3RpZnkoKS0+Cj4gICAgY2hlY2tfcHJl c2VuY2VfYW5kX3JlcG9ydCgpLT4KPiAgICBoZG1pX3ByZXNlbnRfc2Vuc2UoKQo+IAo+IHdvdWxk IHByZXZlbnQgdGhpcywgYnV0IGZvciBpbnN0YW5jZQo+IAo+ICAgIHNvdW5kL3NvYy9jb2RlY3Mv aGRhY19oZG1pLmMgLyBoZGFjX2hkbWlfZWxkX25vdGlmeV9jYigpLT4KPiAgICBoZGFjX2hkbWlf cHJlc2VudF9zZW5zZSgpLT4KPiAgICBoZGFjX2hkbWlfamFja19yZXBvcnQoKS0+Cj4gICAgc25k X3NvY19qYWNrX3JlcG9ydCgpLT4KPiAgICBzbmRfc29jX2RhcG1fc3luYygpLT4KPiAgICBzbmRf c29jX2RhcG1fc3luY191bmxvY2tlZCgpLT4KPiAgICBkYXBtX3Bvd2VyX3dpZGdldHMoKS0+Cj4g ICAgZGFwbV9wcmVfc2VxdWVuY2VfYXN5bmMoKQo+IAo+IGNvdWxkIGNhbGwgcG1fcnVudGltZV9n ZXRfc3luYygpIGFuZCBzbyBJIGd1ZXNzIGFsc28gdGhlIGFvcHMKPiBnZXRfcG93ZXIoKSBob29r Lgo+IAo+IENvdWxkIHNvbWVvbmUgaW4geW91ciB0ZWFtIGNoZWNrIGlmIHRoZSBhYm92ZSBjYW4g aW5kZWVkIGhhcHBlbj8KPiAKPiA+ICsKPiA+ICsJaWYgKHJldCA9PSAtRURFQURMSykgewo+ID4g KwkJZHJtX2F0b21pY19zdGF0ZV9jbGVhcihzdGF0ZSk7Cj4gPiArCQlkcm1fbW9kZXNldF9iYWNr b2ZmKCZjdHgpOwo+ID4gKwkJZ290byByZXRyeTsKPiA+ICsJfQo+ID4gKwo+ID4gKwlXQVJOX09O KHJldCk7Cj4gPiArCj4gPiArCWRybV9hdG9taWNfc3RhdGVfcHV0KHN0YXRlKTsKPiA+ICsKPiA+ ICsJZHJtX21vZGVzZXRfZHJvcF9sb2NrcygmY3R4KTsKPiA+ICsJZHJtX21vZGVzZXRfYWNxdWly ZV9maW5pKCZjdHgpOwo+ID4gK30KPiA+ICsKPiA+ICBzdGF0aWMgdm9pZCBpOTE1X2F1ZGlvX2Nv bXBvbmVudF9nZXRfcG93ZXIoc3RydWN0IGRldmljZSAqa2RldikKPiA+ICB7Cj4gPiAtCWludGVs X2Rpc3BsYXlfcG93ZXJfZ2V0KGtkZXZfdG9faTkxNShrZGV2KSwgUE9XRVJfRE9NQUlOX0FVRElP KTsKPiA+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0ga2Rldl90b19pOTE1 KGtkZXYpOwo+ID4gKwo+ID4gKwlkZXZfcHJpdi0+Z2V0X3B1dF9yZWZjb3VudCsrOwo+ID4gKwo+ ID4gKwkvKiBGb3JjZSBjZGNsayB0byAyKkJDTEsgZHVyaW5nIGZpcnN0IHRpbWUgZ2V0IHBvd2Vy IGNhbGwgKi8KPiA+ICsJaWYgKGRldl9wcml2LT5nZXRfcHV0X3JlZmNvdW50ID09IDEpCj4gPiAr CQlpZiAoSVNfQ0FOTk9OTEFLRShkZXZfcHJpdikgfHwgSVNfR0VNSU5JTEFLRShkZXZfcHJpdikp Cj4gPiArCQkJZ2xrX2ZvcmNlX2F1ZGlvX2NkY2xrKGRldl9wcml2LCB0cnVlKTsKPiA+ICsKPiA+ ICsJaW50ZWxfZGlzcGxheV9wb3dlcl9nZXQoZGV2X3ByaXYsIFBPV0VSX0RPTUFJTl9BVURJTyk7 Cj4gCj4gV2UgY2FuJ3QgZ3VhcmFudGVlIHRoYXQgdGhlIHBvd2VyIHdlbGxzIGJlbG9uZ2luZyB0 byB0aGUgYXVkaW8gcG93ZXIKPiBkb21haW4gYXJlIG9mZiBhdCB0aGlzIHBvaW50IChzaW5jZSBh biBleHRlcm5hbCBvdXRwdXQgY2FuIGtlZXAgdGhlbSBvbikuCj4gQnV0IGFjY29yZGluZyB0byB0 aGUgdGVzdHMgeW91IGRpZCBLdW1hciwgdGhpcyBkb2Vzbid0IGV2ZW4gc2VlbSB0byBiZQo+IHJl cXVpcmVkLCB0aGUgb25seSByZXF1aXJlbWVudCBpcyB0aGF0IENEQ0xLIGlzIHJhaXNlZC4KPiAK PiBTbyB0byBtYWtlIHRoZSBzZXF1ZW5jZSBiZWhhdmUgdGhlIHNhbWUgYWxsIHRoZSB0aW1lIChh bmQgbm90IGhpZGUgc29tZQo+IHByb2JsZW0gaGFwcGVuaW5nIG9jY2FzaW9uYWxseSkgYW5kIHRv IGhhdmUgaXQgc3ltbWV0cmljIHdpdGggdGhlIG9uZQo+IGluIGk5MTVfYXVkaW9fY29tcG9uZW50 X3B1dF9wb3dlcigpIHdlIHNob3VsZCBnZXQgdGhlIGF1ZGlvIHBvd2VyIGRvbWFpbgo+IGJlZm9y ZSBidW1waW5nIENEQ0xLLgo+IAo+ID4gIH0KPiA+ICAKPiA+ICBzdGF0aWMgdm9pZCBpOTE1X2F1 ZGlvX2NvbXBvbmVudF9wdXRfcG93ZXIoc3RydWN0IGRldmljZSAqa2RldikKPiA+ICB7Cj4gPiAt CWludGVsX2Rpc3BsYXlfcG93ZXJfcHV0KGtkZXZfdG9faTkxNShrZGV2KSwgUE9XRVJfRE9NQUlO X0FVRElPKTsKPiA+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0ga2Rldl90 b19pOTE1KGtkZXYpOwo+ID4gKwo+ID4gKwlkZXZfcHJpdi0+Z2V0X3B1dF9yZWZjb3VudC0tOwo+ ID4gKwo+ID4gKwkvKiBGb3JjZSByZXF1aXJlZCBjZGNsayBkdXJpbmcgbGFzdCB0aW1lIHB1dCBw b3dlciBjYWxsICovCj4gPiArCWlmIChkZXZfcHJpdi0+Z2V0X3B1dF9yZWZjb3VudCA9PSAwKQo+ ID4gKwkJaWYgKElTX0NBTk5PTkxBS0UoZGV2X3ByaXYpIHx8IElTX0dFTUlOSUxBS0UoZGV2X3By aXYpKQo+ID4gKwkJCWdsa19mb3JjZV9hdWRpb19jZGNsayhkZXZfcHJpdiwgZmFsc2UpOwo+ID4g Kwo+ID4gKwlpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dChkZXZfcHJpdiwgUE9XRVJfRE9NQUlOX0FV RElPKTsKPiA+ICB9Cj4gPiAgCj4gPiAgc3RhdGljIHZvaWQgaTkxNV9hdWRpb19jb21wb25lbnRf Y29kZWNfd2FrZV9vdmVycmlkZShzdHJ1Y3QgZGV2aWNlICprZGV2LAo+ID4gQEAgLTk1OSw3ICsx MDE4LDcgQEAgdm9pZCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9pbml0KHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdikKPiA+ICAJCS8qIGNvbnRpbnVlIHdpdGggcmVkdWNlZCBmdW5jdGlv bmFsaXR5ICovCj4gPiAgCQlyZXR1cm47Cj4gPiAgCX0KPiA+IC0KPiA+ICsJZGV2X3ByaXYtPmdl dF9wdXRfcmVmY291bnQgPSAwOwo+ID4gIAlkZXZfcHJpdi0+YXVkaW9fY29tcG9uZW50X3JlZ2lz dGVyZWQgPSB0cnVlOwo+ID4gIH0KPiA+ICAKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9jZGNsay5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY2RjbGsu Ywo+ID4gaW5kZXggOGVkN2JkMDUyZTQ2Li4wZjBhZWE5MDBjZWIgMTAwNjQ0Cj4gPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jZGNsay5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9jZGNsay5jCj4gPiBAQCAtMjE1MywxOSArMjE1Myw4IEBAIGludCBpbnRl bF9jcnRjX2NvbXB1dGVfbWluX2NkY2xrKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlKQo+ID4gIAkvKgo+ID4gIAkgKiBBY2NvcmRpbmcgdG8gQlNwZWMsICJUaGUgQ0Qg Y2xvY2sgZnJlcXVlbmN5IG11c3QgYmUgYXQgbGVhc3QgdHdpY2UKPiA+ICAJICogdGhlIGZyZXF1 ZW5jeSBvZiB0aGUgQXphbGlhIEJDTEsuIiBhbmQgQkNMSyBpcyA5NiBNSHogYnkgZGVmYXVsdC4K PiA+IC0JICoKPiA+IC0JICogRklYTUU6IENoZWNrIHRoZSBhY3R1YWwsIG5vdCBkZWZhdWx0LCBC Q0xLIGJlaW5nIHVzZWQuCj4gPiAtCSAqCj4gPiAtCSAqIEZJWE1FOiBUaGlzIGRvZXMgbm90IGRl cGVuZCBvbiAtPmhhc19hdWRpbyBiZWNhdXNlIHRoZSBoaWdoZXIgQ0RDTEsKPiA+IC0JICogaXMg cmVxdWlyZWQgZm9yIGF1ZGlvIHByb2JlLCBhbHNvIHdoZW4gdGhlcmUgYXJlIG5vIGF1ZGlvIGNh cGFibGUKPiA+IC0JICogZGlzcGxheXMgY29ubmVjdGVkIGF0IHByb2JlIHRpbWUuIFRoaXMgbGVh ZHMgdG8gdW5uZWNlc3NhcmlseSBoaWdoCj4gPiAtCSAqIENEQ0xLIHdoZW4gYXVkaW8gaXMgbm90 IHJlcXVpcmVkLgo+ID4gLQkgKgo+ID4gLQkgKiBGSVhNRTogVGhpcyBsaW1pdCBpcyBvbmx5IGFw cGxpZWQgd2hlbiB0aGVyZSBhcmUgZGlzcGxheXMgY29ubmVjdGVkCj4gPiAtCSAqIGF0IHByb2Jl IHRpbWUuIElmIHdlIHByb2JlIHdpdGhvdXQgZGlzcGxheXMsIHdlJ2xsIHN0aWxsIGVuZCB1cCB1 c2luZwo+ID4gLQkgKiB0aGUgcGxhdGZvcm0gbWluaW11bSBDRENMSywgZmFpbGluZyBhdWRpbyBw cm9iZS4KPiA+ICAJICovCj4gPiAtCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDkpCj4gPiAr CWlmIChjcnRjX3N0YXRlLT5oYXNfYXVkaW8gJiYgSU5URUxfR0VOKGRldl9wcml2KSA+PSA5KQo+ ID4gIAkJbWluX2NkY2xrID0gbWF4KDIgKiA5NjAwMCwgbWluX2NkY2xrKTsKPiA+ICAKPiA+ICAJ LyoKPiA+IEBAIC0yMjA1LDcgKzIxOTQsNyBAQCBzdGF0aWMgaW50IGludGVsX2NvbXB1dGVfbWlu X2NkY2xrKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiA+ICAJCWludGVsX3N0YXRl LT5taW5fY2RjbGtbaV0gPSBtaW5fY2RjbGs7Cj4gPiAgCX0KPiA+ICAKPiA+IC0JbWluX2NkY2xr ID0gMDsKPiA+ICsJbWluX2NkY2xrID0gaW50ZWxfc3RhdGUtPmNkY2xrLmZvcmNlX21pbl9jZGNs azsKPiA+ICAJZm9yX2VhY2hfcGlwZShkZXZfcHJpdiwgcGlwZSkKPiA+ICAJCW1pbl9jZGNsayA9 IG1heChpbnRlbF9zdGF0ZS0+bWluX2NkY2xrW3BpcGVdLCBtaW5fY2RjbGspOwo+ID4gIAo+ID4g QEAgLTIyNjYsNyArMjI1NSw3IEBAIHN0YXRpYyBpbnQgdmx2X21vZGVzZXRfY2FsY19jZGNsayhz dHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gPiAgCQl2bHZfY2FsY192b2x0YWdlX2xl dmVsKGRldl9wcml2LCBjZGNsayk7Cj4gPiAgCj4gPiAgCWlmICghaW50ZWxfc3RhdGUtPmFjdGl2 ZV9jcnRjcykgewo+ID4gLQkJY2RjbGsgPSB2bHZfY2FsY19jZGNsayhkZXZfcHJpdiwgMCk7Cj4g PiArCQljZGNsayA9IHZsdl9jYWxjX2NkY2xrKGRldl9wcml2LCBpbnRlbF9zdGF0ZS0+Y2RjbGsu Zm9yY2VfbWluX2NkY2xrKTsKPiA+ICAKPiA+ICAJCWludGVsX3N0YXRlLT5jZGNsay5hY3R1YWwu Y2RjbGsgPSBjZGNsazsKPiA+ICAJCWludGVsX3N0YXRlLT5jZGNsay5hY3R1YWwudm9sdGFnZV9s ZXZlbCA9Cj4gPiBAQCAtMjI5OSw3ICsyMjg4LDcgQEAgc3RhdGljIGludCBiZHdfbW9kZXNldF9j YWxjX2NkY2xrKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiA+ICAJCWJkd19jYWxj X3ZvbHRhZ2VfbGV2ZWwoY2RjbGspOwo+ID4gIAo+ID4gIAlpZiAoIWludGVsX3N0YXRlLT5hY3Rp dmVfY3J0Y3MpIHsKPiA+IC0JCWNkY2xrID0gYmR3X2NhbGNfY2RjbGsoMCk7Cj4gPiArCQljZGNs ayA9IGJkd19jYWxjX2NkY2xrKGludGVsX3N0YXRlLT5jZGNsay5mb3JjZV9taW5fY2RjbGspOwo+ ID4gIAo+ID4gIAkJaW50ZWxfc3RhdGUtPmNkY2xrLmFjdHVhbC5jZGNsayA9IGNkY2xrOwo+ID4g IAkJaW50ZWxfc3RhdGUtPmNkY2xrLmFjdHVhbC52b2x0YWdlX2xldmVsID0KPiA+IEBAIC0yMzcx LDcgKzIzNjAsNyBAQCBzdGF0aWMgaW50IHNrbF9tb2Rlc2V0X2NhbGNfY2RjbGsoc3RydWN0IGRy bV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ID4gIAkJc2tsX2NhbGNfdm9sdGFnZV9sZXZlbChjZGNs ayk7Cj4gPiAgCj4gPiAgCWlmICghaW50ZWxfc3RhdGUtPmFjdGl2ZV9jcnRjcykgewo+ID4gLQkJ Y2RjbGsgPSBza2xfY2FsY19jZGNsaygwLCB2Y28pOwo+ID4gKwkJY2RjbGsgPSBza2xfY2FsY19j ZGNsayhpbnRlbF9zdGF0ZS0+Y2RjbGsuZm9yY2VfbWluX2NkY2xrLCB2Y28pOwo+ID4gIAo+ID4g IAkJaW50ZWxfc3RhdGUtPmNkY2xrLmFjdHVhbC52Y28gPSB2Y287Cj4gPiAgCQlpbnRlbF9zdGF0 ZS0+Y2RjbGsuYWN0dWFsLmNkY2xrID0gY2RjbGs7Cj4gPiBAQCAtMjQxMCwxMCArMjM5OSwxMCBA QCBzdGF0aWMgaW50IGJ4dF9tb2Rlc2V0X2NhbGNfY2RjbGsoc3RydWN0IGRybV9hdG9taWNfc3Rh dGUgKnN0YXRlKQo+ID4gIAo+ID4gIAlpZiAoIWludGVsX3N0YXRlLT5hY3RpdmVfY3J0Y3MpIHsK PiA+ICAJCWlmIChJU19HRU1JTklMQUtFKGRldl9wcml2KSkgewo+ID4gLQkJCWNkY2xrID0gZ2xr X2NhbGNfY2RjbGsoMCk7Cj4gPiArCQkJIGNkY2xrID0gZ2xrX2NhbGNfY2RjbGsoaW50ZWxfc3Rh dGUtPmNkY2xrLmZvcmNlX21pbl9jZGNsayk7Cj4gPiAgCQkJdmNvID0gZ2xrX2RlX3BsbF92Y28o ZGV2X3ByaXYsIGNkY2xrKTsKPiA+ICAJCX0gZWxzZSB7Cj4gPiAtCQkJY2RjbGsgPSBieHRfY2Fs Y19jZGNsaygwKTsKPiA+ICsJCQljZGNsayA9IGJ4dF9jYWxjX2NkY2xrKGludGVsX3N0YXRlLT5j ZGNsay5mb3JjZV9taW5fY2RjbGspOwo+ID4gIAkJCXZjbyA9IGJ4dF9kZV9wbGxfdmNvKGRldl9w cml2LCBjZGNsayk7Cj4gPiAgCQl9Cj4gPiAgCj4gPiBAQCAtMjQ0OSw3ICsyNDM4LDcgQEAgc3Rh dGljIGludCBjbmxfbW9kZXNldF9jYWxjX2NkY2xrKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpz dGF0ZSkKPiA+ICAJCSAgICBjbmxfY29tcHV0ZV9taW5fdm9sdGFnZV9sZXZlbChpbnRlbF9zdGF0 ZSkpOwo+ID4gIAo+ID4gIAlpZiAoIWludGVsX3N0YXRlLT5hY3RpdmVfY3J0Y3MpIHsKPiA+IC0J CWNkY2xrID0gY25sX2NhbGNfY2RjbGsoMCk7Cj4gPiArCQljZGNsayA9IGNubF9jYWxjX2NkY2xr KGludGVsX3N0YXRlLT5jZGNsay5mb3JjZV9taW5fY2RjbGspOwo+ID4gIAkJdmNvID0gY25sX2Nk Y2xrX3BsbF92Y28oZGV2X3ByaXYsIGNkY2xrKTsKPiA+ICAKPiA+ICAJCWludGVsX3N0YXRlLT5j ZGNsay5hY3R1YWwudmNvID0gdmNvOwo+ID4gQEAgLTI0ODIsNyArMjQ3MSw3IEBAIHN0YXRpYyBp bnQgaWNsX21vZGVzZXRfY2FsY19jZGNsayhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUp Cj4gPiAgCWludGVsX3N0YXRlLT5jZGNsay5sb2dpY2FsLmNkY2xrID0gY2RjbGs7Cj4gPiAgCj4g PiAgCWlmICghaW50ZWxfc3RhdGUtPmFjdGl2ZV9jcnRjcykgewo+ID4gLQkJY2RjbGsgPSBpY2xf Y2FsY19jZGNsaygwLCByZWYpOwo+ID4gKwkJY2RjbGsgPSBpY2xfY2FsY19jZGNsayhpbnRlbF9z dGF0ZS0+Y2RjbGsuZm9yY2VfbWluX2NkY2xrLCByZWYpOwo+ID4gIAkJdmNvID0gaWNsX2NhbGNf Y2RjbGtfcGxsX3ZjbyhkZXZfcHJpdiwgY2RjbGspOwo+ID4gIAo+ID4gIAkJaW50ZWxfc3RhdGUt PmNkY2xrLmFjdHVhbC52Y28gPSB2Y287Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxh eS5jCj4gPiBpbmRleCAxN2M1OTBiNDJmZDcuLjNlZTFjMWY1NDE5ZCAxMDA2NDQKPiA+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPiBAQCAtMTIxNjIsNiArMTIxNjIsMTAgQEAg c3RhdGljIGludCBpbnRlbF9tb2Rlc2V0X2NoZWNrcyhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAq c3RhdGUpCj4gPiAgCQlyZXR1cm4gLUVJTlZBTDsKPiA+ICAJfQo+ID4gIAo+ID4gKwkvKiBrZWVw IHRoZSBjdXJyZW50IHNldHRpbmcgKi8KPiA+ICsJaWYgKCFpbnRlbF9zdGF0ZS0+bW9kZXNldCkK PiAKPiBWaWxsZSwgSSdkIHVzZSBoZXJlIGEgZGVkaWNhdGVkIGZsYWcgaW5zdGVhZC4KClN1cmUu Cgo+IAo+ID4gKwkJaW50ZWxfc3RhdGUtPmNkY2xrLmZvcmNlX21pbl9jZGNsayA9IGRldl9wcml2 LT5jZGNsay5mb3JjZV9taW5fY2RjbGs7Cj4gPiArCj4gPiAgCWludGVsX3N0YXRlLT5tb2Rlc2V0 ID0gdHJ1ZTsKPiA+ICAJaW50ZWxfc3RhdGUtPmFjdGl2ZV9jcnRjcyA9IGRldl9wcml2LT5hY3Rp dmVfY3J0Y3M7Cj4gPiAgCWludGVsX3N0YXRlLT5jZGNsay5sb2dpY2FsID0gZGV2X3ByaXYtPmNk Y2xrLmxvZ2ljYWw7Cj4gPiBAQCAtMTIyNTcsNyArMTIyNjEsNyBAQCBzdGF0aWMgaW50IGludGVs X2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ID4gIAlzdHJ1Y3QgZHJtX2Ny dGMgKmNydGM7Cj4gPiAgCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUsICpj cnRjX3N0YXRlOwo+ID4gIAlpbnQgcmV0LCBpOwo+ID4gLQlib29sIGFueV9tcyA9IGZhbHNlOwo+ ID4gKwlib29sIGFueV9tcyA9IGludGVsX3N0YXRlLT5tb2Rlc2V0Owo+ID4gIAo+ID4gIAkvKiBD YXRjaCBJOTE1X01PREVfRkxBR19JTkhFUklURUQgKi8KPiA+ICAJZm9yX2VhY2hfb2xkbmV3X2Ny dGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsIG9sZF9jcnRjX3N0YXRlLAo+ID4gQEAgLTEyODA1LDYg KzEyODA5LDcgQEAgc3RhdGljIGludCBpbnRlbF9hdG9taWNfY29tbWl0KHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsCj4gPiAgCQlkZXZfcHJpdi0+YWN0aXZlX2NydGNzID0gaW50ZWxfc3RhdGUtPmFj dGl2ZV9jcnRjczsKPiA+ICAJCWRldl9wcml2LT5jZGNsay5sb2dpY2FsID0gaW50ZWxfc3RhdGUt PmNkY2xrLmxvZ2ljYWw7Cj4gPiAgCQlkZXZfcHJpdi0+Y2RjbGsuYWN0dWFsID0gaW50ZWxfc3Rh dGUtPmNkY2xrLmFjdHVhbDsKPiA+ICsJCWRldl9wcml2LT5jZGNsay5mb3JjZV9taW5fY2RjbGsg PSBpbnRlbF9zdGF0ZS0+Y2RjbGsuZm9yY2VfbWluX2NkY2xrOwo+ID4gIAl9Cj4gPiAgCj4gPiAg CWRybV9hdG9taWNfc3RhdGVfZ2V0KHN0YXRlKTsKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5o Cj4gPiBpbmRleCA4NjQxNTgzODQyYmUuLjBkYTE3YWQwNTZlYyAxMDA2NDQKPiA+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcnYuaAo+ID4gQEAgLTQ1OSw2ICs0NTksOCBAQCBzdHJ1Y3QgaW50ZWxfYXRv bWljX3N0YXRlIHsKPiA+ICAJCSAqIHN0YXRlIG9ubHkgd2hlbiBhbGwgY3J0YydzIGFyZSBEUE1T IG9mZi4KPiA+ICAJCSAqLwo+ID4gIAkJc3RydWN0IGludGVsX2NkY2xrX3N0YXRlIGFjdHVhbDsK PiA+ICsKPiA+ICsJCWludCBmb3JjZV9taW5fY2RjbGs7Cj4gPiAgCX0gY2RjbGs7Cj4gPiAgCj4g PiAgCWJvb2wgZHBsbF9zZXQsIG1vZGVzZXQ7Cj4gPiAtLSAKPiA+IDIuNy40Cj4gPiAKPiA+IF9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gPiBJbnRlbC1n ZnggbWFpbGluZyBsaXN0Cj4gPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gPiBo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo+ IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gSW50ZWwt Z2Z4IG1haWxpbmcgbGlzdAo+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAoKLS0g ClZpbGxlIFN5cmrDpGzDpApJbnRlbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9pbnRlbC1nZngK