From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 02/21] drm/i915/skl: SKL CDCLK change on modeset tracking VCO Date: Thu, 19 May 2016 12:18:07 +0300 Message-ID: <20160519091807.GF4329@intel.com> References: <1463172100-24715-1-git-send-email-ville.syrjala@linux.intel.com> <1463172100-24715-3-git-send-email-ville.syrjala@linux.intel.com> <1463648922.12342.10.camel@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id 858716E94E for ; Thu, 19 May 2016 09:18:10 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1463648922.12342.10.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 T24gVGh1LCBNYXkgMTksIDIwMTYgYXQgMTI6MDg6NDJQTSArMDMwMCwgSW1yZSBEZWFrIHdyb3Rl Ogo+IE9uIHBlLCAyMDE2LTA1LTEzIGF0IDIzOjQxICswMzAwLCB2aWxsZS5zeXJqYWxhQGxpbnV4 LmludGVsLmNvbSB3cm90ZToKPiA+IEZyb206IENsaW50IFRheWxvciA8Y2xpbnRvbi5hLnRheWxv ckBpbnRlbC5jb20+Cj4gPiAKPiA+IFdBUk5JTkc6IFVzaW5nIENocm9tZU9TIHdpdGggYW4gZURQ IHBhbmVsIGFuZCBhIDRLQDYwIERQIG1vbml0b3IgY29ubmVjdGVkCj4gPiB0byBEREkxIHRoZSBz eXN0ZW0gd2lsbCBoYXJkIGhhbmcgZHVyaW5nIGEgY29sZCBib290LiBPY2N1cnMgd2hlbiBEREkx Cj4gPiBpcyBlbmFibGVkIHdoZW4gdGhlIGNkY2xrIGlzIGxlc3MgdGhlbiByZXF1aXJlZC4gRFAg Y29ubmVjdGVkIHRvIERESTIKPiA+IGFuZCBIUEQgb24gZWl0aGVyIHBvcnQgd29ya3MgY29ycmVj dGx5Lgo+ID4gCj4gPiBTZXQgY2RjbGsgYmFzZWQgb24gdGhlIG1heCByZXF1aXJlZCBwaXhlbCBj bG9jayBiYXNlZCBvbiBWQ08KPiA+IHNlbGVjdGVkLiBUcmFjayBib290IHZjbyBpbnN0ZWFkIG9m IGJvb3QgY2RjbGsuCj4gPiAKPiA+IFRoZSB2Y28gaXMgbm93IHRyYWNrZWQgYXQgdGhlIGF0b21p YyBsZXZlbCBhbmQgYWxsIENSVENzIHVwZGF0ZWQgaWYKPiA+IHRoZSByZXF1aXJlZCB2Y28gaXMg Y2hhbmdlZC4gTm90IHRlc3RlZCB3aXRoIGVEUCB2MS40IHBhbmVscyB0aGF0Cj4gPiByZXF1aXJl IDg2NDAgdmNvIGR1ZSB0byBhdmFpbGFiaWxpdHkuCj4gPiAKPiA+IFYxOiBpbml0aWFsIHZlcnNp b24KPiA+IFYyOiBhZGQgdmNvIHRyYWNraW5nIGluIGludGVsX2RwX2NvbXB1dGVfY29uZmlnKCks IHJlbmFtZQo+ID4gc2tsX2Jvb3RfY2RjbGsuCj4gPiBWMzogcmViYXNlLCBWMiBmZWVkYmFjayBu b3QgcG9zc2libGUgYXMgZW5jb2RlcnMgYXJlIG5vdCBhd2FyZSBvZgo+ID4gYXRvbWljLgo+ID4g VjQ6IHRyYWNrIHRhcmdldCB2Y28gaXMgYXRvbWljIHN0YXRlLiBtb2Rlc2V0IGFsbCBDUlRDcyBp ZiB2Y28gY2hhbmdlcwo+ID4gVjU6IHJlbmFtZSBhdG9taWMgdmFyaWFibGUsIGNsZWFuZXIgaWYv ZWxzZSBsb2dpYywgdXNlIGV4aXN0aW5nIHZjbyBpZgo+ID4gwqDCoMKgwqDCoMKgZW5jb2RlciBk b2VzIG5vdCByZXR1cm4gYSBuZXcgdmNvIHZhbHVlLiBjaGVja19wYXRjaC5wbCBjbGVhbnVwCj4g PiBWNjogc2ltcGxpZnkgbG9naWMgaW4gaW50ZWxfbW9kZXNldF9jaGVja3MuCj4gPiBWNzogcmVv cmRlciBhbiBJRiBmb3IgcmVhZGFiaWxpdHkgYW5kIHdoaXRlc3BhY2UgZml4Lgo+ID4gVjg6IHVz ZSBkZXZfY2RjbGsgZm9yIHRyYWNraW5nIG5ldyBjZGNsayBkdXJpbmcgYXRvbWljCj4gPiBWOTog Y29ycmVjdGx5IGhhbmRsZSB2Y28gODY0MCB3aGVuIGNydGNzPT0wCj4gPiBWMTA6IENsZWFuIHVw IGlmIGVsc2UgaW4gY3J0Y3M9PTAKPiA+IFYxMTogUmViYXNlIGZvciBuZXcgaW50ZWxfZHBsbF9t Z3IuYwo+ID4gCj4gPiBSZXZpZXdlZC1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxh QGxpbnV4LmludGVsLmNvbT4KPiA+IFNpZ25lZC1vZmYtYnk6IENsaW50IFRheWxvciA8Y2xpbnRv bi5hLnRheWxvckBpbnRlbC5jb20+Cj4gPiBbdnN5cmphbGE6IHJlYmFzZWQgZHVlIHRvIGNodXJu XQo+ID4gU2lnbmVkLW9mZi1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4 LmludGVsLmNvbT4KPiAKPiBJdCBoYXMgUi1iIGFscmVhZHksIGJ1dCBzaW5jZSBJIHdlbnQgdGhy b3VnaCBpdCBpbiBhbnkgY2FzZToKPiBSZXZpZXdlZC1ieTogSW1yZSBEZWFrIDxpbXJlLmRlYWtA aW50ZWwuY29tPgo+IAo+IEEgZmV3IG5vdGVzIGJlbG93LCBub25lIG9mIHRoZW0gYXJlIGFib3V0 IGFjdHVhbCBwcm9ibGVtcy4KPiAKPiA+IC0tLQo+ID4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5owqDCoMKgwqDCoMKgwqB8wqDCoMKgMiArLQo+ID4gwqBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kaXNwbGF5LmPCoMKgfCAxMDkgKysrKysrKysrKysrKysrKysrKysrKysrKysr KystLS0tLQo+ID4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxsX21nci5jIHzCoMKg wqA5ICstLQo+ID4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaMKgwqDCoMKgwqDC oHzCoMKgwqA0ICsrCj4gPiDCoDQgZmlsZXMgY2hhbmdlZCwgMTA0IGluc2VydGlvbnMoKyksIDIw IGRlbGV0aW9ucygtKQo+ID4gCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiA+IGluZGV4IDFi YTYxNDE5M2NjOS4uYjMxOWRhOTcwYzhhIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuaAo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aAo+ID4gQEAgLTE4MjAsNyArMTgyMCw3IEBAIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlIHsKPiA+ IMKgCWludCBudW1fZmVuY2VfcmVnczsgLyogOCBvbiBwcmUtOTY1LCAxNiBvdGhlcndpc2UgKi8K PiA+IMKgCj4gPiDCoAl1bnNpZ25lZCBpbnQgZnNiX2ZyZXEsIG1lbV9mcmVxLCBpc19kZHIzOwo+ ID4gLQl1bnNpZ25lZCBpbnQgc2tsX2Jvb3RfY2RjbGs7Cj4gPiArCXVuc2lnbmVkIGludCBza2xf dmNvX2ZyZXE7Cj4gPiDCoAl1bnNpZ25lZCBpbnQgY2RjbGtfZnJlcSwgbWF4X2NkY2xrX2ZyZXEs IGF0b21pY19jZGNsa19mcmVxOwo+ID4gwqAJdW5zaWduZWQgaW50IG1heF9kb3RjbGtfZnJlcTsK PiA+IMKgCXVuc2lnbmVkIGludCByYXdjbGtfZnJlcTsKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kaXNwbGF5LmMKPiA+IGluZGV4IGNjOWE4YjQyZmJjNi4uNDFmZTE4YzRiNzYxIDEwMDY0NAo+ ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+IEBAIC01NTQwLDcgKzU1NDAs NyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHNrbF9jZGNsa19lbnRyeSB7Cj4gPiDCoAl7IC5mcmVx ID0gNjc1MDAwLCAudmNvID0gODEwMCB9LAo+ID4gwqB9Owo+ID4gwqAKPiA+IC1zdGF0aWMgdW5z aWduZWQgaW50IHNrbF9jZGNsa19nZXRfdmNvKHVuc2lnbmVkIGludCBmcmVxKQo+ID4gK3Vuc2ln bmVkIGludCBza2xfY2RjbGtfZ2V0X3Zjbyh1bnNpZ25lZCBpbnQgZnJlcSkKPiA+IMKgewo+ID4g wqAJdW5zaWduZWQgaW50IGk7Cj4gPiDCoAo+ID4gQEAgLTU2OTgsMTcgKzU2OTgsMjEgQEAgdm9p ZCBza2xfdW5pbml0X2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiA+ IMKgCj4gPiDCoHZvaWQgc2tsX2luaXRfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KQo+ID4gwqB7Cj4gPiAtCXVuc2lnbmVkIGludCB2Y287Cj4gPiArCXVuc2lnbmVkIGlu dCBjZGNsazsKPiA+IMKgCj4gPiDCoAkvKiBEUExMMCBub3QgZW5hYmxlZCAoaGFwcGVucyBvbiBl YXJseSBCSU9TIHZlcnNpb25zKSAqLwo+ID4gwqAJaWYgKCEoSTkxNV9SRUFEKExDUExMMV9DVEwp ICYgTENQTExfUExMX0VOQUJMRSkpIHsKPiA+IMKgCQkvKiBlbmFibGUgRFBMTDAgKi8KPiA+IC0J CXZjbyA9IHNrbF9jZGNsa19nZXRfdmNvKGRldl9wcml2LT5za2xfYm9vdF9jZGNsayk7Cj4gPiAt CQlza2xfZHBsbDBfZW5hYmxlKGRldl9wcml2LCB2Y28pOwo+ID4gKwkJaWYgKGRldl9wcml2LT5z a2xfdmNvX2ZyZXEgIT0gODY0MCkKPiA+ICsJCQlkZXZfcHJpdi0+c2tsX3Zjb19mcmVxID0gODEw MDsKPiAKPiBUaGlzIHNlZW1zIHJlZHVuZGFudCwgVkNPIGNhbiBvbmx5IGJlIGVpdGhlciBvZiB0 aGUgYWJvdmUgdHdvLCBidXQgeW91Cj4gY2hhbmdlL2ZpeCB0aGlzIGxhdGVyIGluIHRoZSBzZXJp ZXMsIHNvIGl0J3Mgb2suCgpJdCBjYW4gYWxzbyBiZSAwIGluaXRpYWxseS4gQW5kIHNvIHdlIGp1 c3QgZmxpcCBhIGNvaW4gYW5kIHBpY2sgb25lLgoKPiAKPiA+ICsJCXNrbF9kcGxsMF9lbmFibGUo ZGV2X3ByaXYsIGRldl9wcml2LT5za2xfdmNvX2ZyZXEpOwo+ID4gKwkJY2RjbGsgPSAoKGRldl9w cml2LT5za2xfdmNvX2ZyZXEgPT0gODEwMCkgPyAzMzc1MDAgOiAzMDg1NzApOwo+ID4gKwl9IGVs c2Ugewo+ID4gKwkJY2RjbGsgPSBkZXZfcHJpdi0+Y2RjbGtfZnJlcTsKPiA+IMKgCX0KPiA+IMKg Cj4gPiAtCS8qIHNldCBDRENMSyB0byB0aGUgZnJlcXVlbmN5IHRoZSBCSU9TIGNob3NlICovCj4g PiAtCXNrbF9zZXRfY2RjbGsoZGV2X3ByaXYsIGRldl9wcml2LT5za2xfYm9vdF9jZGNsayk7Cj4g PiArCS8qIHNldCBDRENMSyB0byB0aGUgbG93ZXN0IGZyZXF1ZW5jeSwgTW9kZXNldCBmb2xsb3dz ICovCj4gPiArCXNrbF9zZXRfY2RjbGsoZGV2X3ByaXYsIGNkY2xrKTsKPiA+IMKgCj4gPiDCoAkv KiBlbmFibGUgREJVRiBwb3dlciAqLwo+ID4gwqAJSTkxNV9XUklURShEQlVGX0NUTCwgSTkxNV9S RUFEKERCVUZfQ1RMKSB8IERCVUZfUE9XRVJfUkVRVUVTVCk7Cj4gPiBAQCAtNTcyNCw3ICs1NzI4 LDcgQEAgaW50IHNrbF9zYW5pdGl6ZV9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpCj4gPiDCoHsKPiA+IMKgCXVpbnQzMl90IGxjcGxsMSA9IEk5MTVfUkVBRChMQ1BMTDFf Q1RMKTsKPiA+IMKgCXVpbnQzMl90IGNkY3RsID0gSTkxNV9SRUFEKENEQ0xLX0NUTCk7Cj4gPiAt CWludCBmcmVxID0gZGV2X3ByaXYtPnNrbF9ib290X2NkY2xrOwo+ID4gKwlpbnQgZnJlcSA9IGRl dl9wcml2LT5jZGNsa19mcmVxOwo+ID4gwqAKPiA+IMKgCS8qCj4gPiDCoAnCoCogY2hlY2sgaWYg dGhlIHByZS1vcyBpbnRpYWxpemVkIHRoZSBkaXNwbGF5Cj4gPiBAQCAtNTc0OCwxMSArNTc1Miw3 IEBAIGludCBza2xfc2FuaXRpemVfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KQo+ID4gwqAJCS8qIEFsbCB3ZWxsOyBub3RoaW5nIHRvIHNhbml0aXplICovCj4gPiDCoAkJ cmV0dXJuIGZhbHNlOwo+ID4gwqBzYW5pdGl6ZToKPiA+IC0JLyoKPiA+IC0JwqAqIEFzIG9mIG5v dyBpbml0aWFsaXplIHdpdGggbWF4IGNkY2xrIHRpbGwKPiA+IC0JwqAqIHdlIGdldCBkeW5hbWlj IGNkY2xrIHN1cHBvcnQKPiA+IC0JwqAqICovCj4gPiAtCWRldl9wcml2LT5za2xfYm9vdF9jZGNs ayA9IGRldl9wcml2LT5tYXhfY2RjbGtfZnJlcTsKPiA+ICsKPiA+IMKgCXNrbF9pbml0X2NkY2xr KGRldl9wcml2KTsKPiA+IMKgCj4gPiDCoAkvKiB3ZSBkaWQgaGF2ZSB0byBzYW5pdGl6ZSAqLwo+ ID4gQEAgLTk3MTksNiArOTcxOSw3MyBAQCBzdGF0aWMgdm9pZCBicm9hZHdlbGxfbW9kZXNldF9j b21taXRfY2RjbGsoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKm9sZF9zdGF0ZSkKPiA+IMKgCWJy b2Fkd2VsbF9zZXRfY2RjbGsoZGV2LCByZXFfY2RjbGspOwo+ID4gwqB9Cj4gPiDCoAo+ID4gK3N0 YXRpYyBpbnQgc2tsX21vZGVzZXRfY2FsY19jZGNsayhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAq c3RhdGUpCj4gPiArewo+ID4gKwlzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICppbnRlbF9zdGF0 ZSA9IHRvX2ludGVsX2F0b21pY19zdGF0ZShzdGF0ZSk7Cj4gPiArCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoc3RhdGUtPmRldik7Cj4gPiArCWNvbnN0IGludCBt YXhfcGl4Y2xrID0gaWxrX21heF9waXhlbF9yYXRlKHN0YXRlKTsKPiA+ICsJaW50IGNkY2xrOwo+ ID4gKwo+ID4gKwkvKgo+ID4gKwnCoCogRklYTUUgc2hvdWxkIGFsc28gYWNjb3VudCBmb3IgcGxh bmUgcmF0aW8KPiA+ICsJwqAqIG9uY2UgNjRicHAgcGl4ZWwgZm9ybWF0cyBhcmUgc3VwcG9ydGVk Lgo+ID4gKwnCoCovCj4gPiArCj4gPiArCWlmIChpbnRlbF9zdGF0ZS0+Y2RjbGtfcGxsX3ZjbyA9 PSA4NjQwKSB7Cj4gPiArCQkvKiB2Y28gODY0MCAqLwo+ID4gKwkJaWYgKG1heF9waXhjbGsgPiA1 NDAwMDApCj4gPiArCQkJY2RjbGsgPSA2MTcxNDA7Cj4gPiArCQllbHNlIGlmIChtYXhfcGl4Y2xr ID4gNDMyMDAwKQo+ID4gKwkJCWNkY2xrID0gNTQwMDAwOwo+ID4gKwkJZWxzZSBpZiAobWF4X3Bp eGNsayA+IDMwODU3MCkKPiA+ICsJCQljZGNsayA9IDQzMjAwMDsKPiA+ICsJCWVsc2UKPiA+ICsJ CQljZGNsayA9IDMwODU3MDsKPiA+ICsJfSBlbHNlIHsKPiA+ICsJCS8qIFZDTyA4MTAwICovCj4g PiArCQlpZiAobWF4X3BpeGNsayA+IDU0MDAwMCkKPiA+ICsJCQljZGNsayA9IDY3NTAwMDsKPiA+ ICsJCWVsc2UgaWYgKG1heF9waXhjbGsgPiA0NTAwMDApCj4gPiArCQkJY2RjbGsgPSA1NDAwMDA7 Cj4gPiArCQllbHNlIGlmIChtYXhfcGl4Y2xrID4gMzM3NTAwKQo+ID4gKwkJCWNkY2xrID0gNDUw MDAwOwo+ID4gKwkJZWxzZQo+ID4gKwkJCWNkY2xrID0gMzM3NTAwOwo+ID4gKwl9Cj4gPiArCj4g PiArCS8qCj4gPiArCcKgKiBGSVhNRSBtb3ZlIHRoZSBjZGNsayBjYWNsdWxhdGlvbiB0bwo+ID4g KwnCoCogY29tcHV0ZV9jb25maWcoKSBzbyB3ZSBjYW4gZmFpbCBncmFjZWd1bGx5Lgo+ID4gKwnC oCovCj4gPiArCWlmIChjZGNsayA+IGRldl9wcml2LT5tYXhfY2RjbGtfZnJlcSkgewo+ID4gKwkJ RFJNX0VSUk9SKCJyZXF1ZXN0ZWQgY2RjbGsgKCVkIGtIeikgZXhjZWVkcyBtYXggKCVkIGtIeilc biIsCj4gPiArCQkJwqDCoGNkY2xrLCBkZXZfcHJpdi0+bWF4X2NkY2xrX2ZyZXEpOwo+ID4gKwkJ Y2RjbGsgPSBkZXZfcHJpdi0+bWF4X2NkY2xrX2ZyZXE7Cj4gPiArCX0KPiA+ICsKPiA+ICsJaW50 ZWxfc3RhdGUtPmNkY2xrID0gaW50ZWxfc3RhdGUtPmRldl9jZGNsayA9IGNkY2xrOwo+ID4gKwlp ZiAoIWludGVsX3N0YXRlLT5hY3RpdmVfY3J0Y3MpCj4gPiArCQlpbnRlbF9zdGF0ZS0+ZGV2X2Nk Y2xrID0gKChpbnRlbF9zdGF0ZS0+Y2RjbGtfcGxsX3ZjbyA9PSA4NjQwKSA/Cj4gPiArCQkJCQnC oMKgwqAzMDg1NzAgOiAzMzc1MDApOwo+ID4gKwo+ID4gKwo+ID4gKwlyZXR1cm4gMDsKPiA+ICt9 Cj4gPiArCj4gPiArc3RhdGljIHZvaWQgc2tsX21vZGVzZXRfY29tbWl0X2NkY2xrKHN0cnVjdCBk cm1fYXRvbWljX3N0YXRlICpvbGRfc3RhdGUpCj4gPiArewo+ID4gKwlzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2ID0gb2xkX3N0YXRlLT5kZXY7Cj4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gPiArCXVuc2lnbmVkIGludCByZXFfY2RjbGsg PSB0b19pbnRlbF9hdG9taWNfc3RhdGUob2xkX3N0YXRlKS0+ZGV2X2NkY2xrOwo+ID4gKwo+ID4g KwkvKgo+ID4gKwnCoCogRklYTUUgZGlzYWJsZS9lbmFibGUgUExMIHNob3VsZCB3cmFwIHNldF9j ZGNsaygpCj4gPiArCcKgKi8KPiA+ICsJc2tsX3NldF9jZGNsayhkZXZfcHJpdiwgcmVxX2NkY2xr KTsKPiA+ICsKPiA+ICsJZGV2X3ByaXYtPnNrbF92Y29fZnJlcSA9IHRvX2ludGVsX2F0b21pY19z dGF0ZShvbGRfc3RhdGUpLT5jZGNsa19wbGxfdmNvOwo+ID4gK30KPiA+ICsKPiA+IMKgc3RhdGlj IGludCBoYXN3ZWxsX2NydGNfY29tcHV0ZV9jbG9jayhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywK PiA+IMKgCQkJCcKgwqDCoMKgwqDCoHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRl KQo+ID4gwqB7Cj4gPiBAQCAtMTMyODMsOSArMTMzNTAsMTUgQEAgc3RhdGljIGludCBpbnRlbF9t b2Rlc2V0X2NoZWNrcyhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gPiDCoAnCoCog YWRqdXN0ZWRfbW9kZSBiaXRzIGluIHRoZSBjcnRjIGRpcmVjdGx5Lgo+ID4gwqAJwqAqLwo+ID4g wqAJaWYgKGRldl9wcml2LT5kaXNwbGF5Lm1vZGVzZXRfY2FsY19jZGNsaykgewo+ID4gKwkJaWYg KCFpbnRlbF9zdGF0ZS0+Y2RjbGtfcGxsX3ZjbykKPiA+ICsJCQlpbnRlbF9zdGF0ZS0+Y2RjbGtf cGxsX3ZjbyA9IGRldl9wcml2LT5za2xfdmNvX2ZyZXE7Cj4gPiArCj4gPiDCoAkJcmV0ID0gZGV2 X3ByaXYtPmRpc3BsYXkubW9kZXNldF9jYWxjX2NkY2xrKHN0YXRlKTsKPiA+ICsJCWlmIChyZXQg PCAwKQo+ID4gKwkJCXJldHVybiByZXQ7Cj4gPiDCoAo+ID4gLQkJaWYgKCFyZXQgJiYgaW50ZWxf c3RhdGUtPmRldl9jZGNsayAhPSBkZXZfcHJpdi0+Y2RjbGtfZnJlcSkKPiA+ICsJCWlmIChpbnRl bF9zdGF0ZS0+ZGV2X2NkY2xrICE9IGRldl9wcml2LT5jZGNsa19mcmVxIHx8Cj4gPiArCQnCoMKg wqDCoGludGVsX3N0YXRlLT5jZGNsa19wbGxfdmNvICE9IGRldl9wcml2LT5za2xfdmNvX2ZyZXEp Cj4gPiDCoAkJCXJldCA9IGludGVsX21vZGVzZXRfYWxsX3BpcGVzKHN0YXRlKTsKPiA+IMKgCj4g PiDCoAkJaWYgKHJldCA8IDApCj4gPiBAQCAtMTM2MjYsNyArMTM2OTksOCBAQCBzdGF0aWMgaW50 IGludGVsX2F0b21pY19jb21taXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiA+IMKgCQlkcm1f YXRvbWljX2hlbHBlcl91cGRhdGVfbGVnYWN5X21vZGVzZXRfc3RhdGUoc3RhdGUtPmRldiwgc3Rh dGUpOwo+ID4gwqAKPiA+IMKgCQlpZiAoZGV2X3ByaXYtPmRpc3BsYXkubW9kZXNldF9jb21taXRf Y2RjbGsgJiYKPiA+IC0JCcKgwqDCoMKgaW50ZWxfc3RhdGUtPmRldl9jZGNsayAhPSBkZXZfcHJp di0+Y2RjbGtfZnJlcSkKPiA+ICsJCcKgwqDCoMKgKGludGVsX3N0YXRlLT5kZXZfY2RjbGsgIT0g ZGV2X3ByaXYtPmNkY2xrX2ZyZXEgfHwKPiA+ICsJCcKgwqDCoMKgwqBpbnRlbF9zdGF0ZS0+Y2Rj bGtfcGxsX3ZjbyAhPSBkZXZfcHJpdi0+c2tsX3Zjb19mcmVxKSkKPiA+IMKgCQkJZGV2X3ByaXYt PmRpc3BsYXkubW9kZXNldF9jb21taXRfY2RjbGsoc3RhdGUpOwo+ID4gwqAKPiA+IMKgCQlpbnRl bF9tb2Rlc2V0X3ZlcmlmeV9kaXNhYmxlZChkZXYpOwo+ID4gQEAgLTE1MDQxLDYgKzE1MTE1LDEx IEBAIHZvaWQgaW50ZWxfaW5pdF9kaXNwbGF5X2hvb2tzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdikKPiA+IMKgCQkJYnJveHRvbl9tb2Rlc2V0X2NvbW1pdF9jZGNsazsKPiA+IMKg CQlkZXZfcHJpdi0+ZGlzcGxheS5tb2Rlc2V0X2NhbGNfY2RjbGsgPQo+ID4gwqAJCQlicm94dG9u X21vZGVzZXRfY2FsY19jZGNsazsKPiA+ICsJfSBlbHNlIGlmIChJU19TS1lMQUtFKGRldl9wcml2 KSB8fCBJU19LQUJZTEFLRShkZXZfcHJpdikpIHsKPiA+ICsJCWRldl9wcml2LT5kaXNwbGF5Lm1v ZGVzZXRfY29tbWl0X2NkY2xrID0KPiA+ICsJCQlza2xfbW9kZXNldF9jb21taXRfY2RjbGs7Cj4g PiArCQlkZXZfcHJpdi0+ZGlzcGxheS5tb2Rlc2V0X2NhbGNfY2RjbGsgPQo+ID4gKwkJCXNrbF9t b2Rlc2V0X2NhbGNfY2RjbGs7Cj4gPiDCoAl9Cj4gPiDCoAo+ID4gwqAJc3dpdGNoIChJTlRFTF9J TkZPKGRldl9wcml2KS0+Z2VuKSB7Cj4gPiBAQCAtMTU3NDgsNyArMTU4MjcsNyBAQCBzdGF0aWMg dm9pZCBpbnRlbF9tb2Rlc2V0X3JlYWRvdXRfaHdfc3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRl dikKPiA+IMKgCQlpZiAoY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUpIHsKPiA+IMKgCQkJZGV2X3By aXYtPmFjdGl2ZV9jcnRjcyB8PSAxIDw8IGNydGMtPnBpcGU7Cj4gPiDCoAo+ID4gLQkJCWlmIChJ U19CUk9YVE9OKGRldl9wcml2KSB8fCBJU19CUk9BRFdFTEwoZGV2X3ByaXYpKQo+ID4gKwkJCWlm IChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDkgfHwgSVNfQlJPQURXRUxMKGRldl9wcml2KSkKPiA+ IMKgCQkJCXBpeGNsayA9IGlsa19waXBlX3BpeGVsX3JhdGUoY3J0Y19zdGF0ZSk7Cj4gPiDCoAkJ CWVsc2UgaWYgKElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2X3By aXYpKQo+ID4gwqAJCQkJcGl4Y2xrID0gY3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlLmNy dGNfY2xvY2s7Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBs bF9tZ3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwbGxfbWdyLmMKPiA+IGluZGV4 IGMyODNiYTRiYWJlOC4uZTk5ZTMwNmU4NzQzIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHBsbF9tZ3IuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHBsbF9tZ3IuYwo+ID4gQEAgLTExOTQsNiArMTE5NCw3IEBAIHNrbF9nZXRfZHBsbChz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0Yywgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3Rh dGUsCj4gPiDCoAlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKnBsbDsKPiA+IMKgCXVpbnQzMl90 IGN0cmwxLCBjZmdjcjEsIGNmZ2NyMjsKPiA+IMKgCWludCBjbG9jayA9IGNydGNfc3RhdGUtPnBv cnRfY2xvY2s7Cj4gPiArCXVpbnQzMl90IHZjbyA9IDgxMDA7Cj4gPiDCoAo+ID4gwqAJLyoKPiA+ IMKgCcKgKiBTZWUgY29tbWVudCBpbiBpbnRlbF9kcGxsX2h3X3N0YXRlIHRvIHVuZGVyc3RhbmQg d2h5IHdlIGFsd2F5cyB1c2UgMAo+ID4gQEAgLTEyMzYsMTcgKzEyMzcsMTcgQEAgc2tsX2dldF9k cGxsKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSwKPiA+IMKgCQljYXNlIDE2MjAwMDoKPiA+IMKgCQkJY3RybDEgfD0gRFBMTF9DVFJM MV9MSU5LX1JBVEUoRFBMTF9DVFJMMV9MSU5LX1JBVEVfMTYyMCwgMCk7Cj4gPiDCoAkJCWJyZWFr Owo+ID4gLQkJLyogVEJEOiBGb3IgRFAgbGluayByYXRlcyAyLjE2IEdIeiBhbmQgNC4zMiBHSHos IFZDTyBpcyA4NjQwIHdoaWNoCj4gPiAtCQlyZXN1bHRzIGluIENEQ0xLIGNoYW5nZS4gTmVlZCB0 byBoYW5kbGUgdGhlIGNoYW5nZSBvZiBDRENMSyBieQo+ID4gLQkJZGlzYWJsaW5nIHBpcGVzIGFu ZCByZS1lbmFibGluZyB0aGVtICovCj4gPiDCoAkJY2FzZSAxMDgwMDA6Cj4gPiDCoAkJCWN0cmwx IHw9IERQTExfQ1RSTDFfTElOS19SQVRFKERQTExfQ1RSTDFfTElOS19SQVRFXzEwODAsIDApOwo+ ID4gKwkJCXZjbyA9IDg2NDA7Cj4gPiDCoAkJCWJyZWFrOwo+ID4gwqAJCWNhc2UgMjE2MDAwOgo+ ID4gwqAJCQljdHJsMSB8PSBEUExMX0NUUkwxX0xJTktfUkFURShEUExMX0NUUkwxX0xJTktfUkFU RV8yMTYwLCAwKTsKPiA+ICsJCQl2Y28gPSA4NjQwOwo+ID4gwqAJCQlicmVhazsKPiA+IMKgCQl9 Cj4gPiDCoAo+ID4gKwkJdG9faW50ZWxfYXRvbWljX3N0YXRlKGNydGNfc3RhdGUtPmJhc2Uuc3Rh dGUpLT5jZGNsa19wbGxfdmNvID0gdmNvOwo+IAo+IElmIFZDTyB3YXMgcHJldmlvdXNseSBzZXQg dG8gODY0MCAoZm9yIERQTEwwKSBhbmQgbGF0ZXIgd2UnZCBzZXQgaGVyZQo+IHRoZSByYXRlIGZv ciBhbm90aGVyIERQTEwgd2l0aCBWQ08gODEwMCB0aGlzIHdvdWxkIGluY29ycmVjdGx5IGNoYW5n ZQo+IHRoZSBDRENMSyBWQ08gdG8gODEwMC4gVkNPIGlzbid0IGFjdHVhbGx5IGNoYW5nZWQgYXQg dGhpcyBwb2ludCBpbiB0aGUKPiBjb2RlIHRob3VnaCBhbmQgeW91IGxhdGVyIGZpeCB0aGlzLCBz byBpdCdzIG9rLgo+IAo+ID4gwqAJCWNmZ2NyMSA9IGNmZ2NyMiA9IDA7Cj4gPiDCoAl9IGVsc2Ug ewo+ID4gwqAJCXJldHVybiBOVUxMOwo+ID4gQEAgLTE2MzksNyArMTY0MCw3IEBAIHN0YXRpYyB2 b2lkIGludGVsX2RkaV9wbGxfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ID4gwqAJCWlu dCBjZGNsa19mcmVxOwo+ID4gwqAKPiA+IMKgCQljZGNsa19mcmVxID0gZGV2X3ByaXYtPmRpc3Bs YXkuZ2V0X2Rpc3BsYXlfY2xvY2tfc3BlZWQoZGV2KTsKPiA+IC0JCWRldl9wcml2LT5za2xfYm9v dF9jZGNsayA9IGNkY2xrX2ZyZXE7Cj4gPiArCQlkZXZfcHJpdi0+c2tsX3Zjb19mcmVxID0gc2ts X2NkY2xrX2dldF92Y28oY2RjbGtfZnJlcSk7Cj4gPiDCoAkJaWYgKHNrbF9zYW5pdGl6ZV9jZGNs ayhkZXZfcHJpdikpCj4gPiDCoAkJCURSTV9ERUJVR19LTVMoIlNhbml0aXplZCBjZGNsayBwcm9n cmFtbWVkIGJ5IHByZS1vc1xuIik7Cj4gPiDCoAkJaWYgKCEoSTkxNV9SRUFEKExDUExMMV9DVEwp ICYgTENQTExfUExMX0VOQUJMRSkpCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gaW5k ZXggMGRjMmJjOWM2NWNmLi5jN2NiOTgyOTU0N2UgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHJ2LmgKPiA+IEBAIC0zMDQsNiArMzA0LDkgQEAgc3RydWN0IGludGVsX2F0b21pY19zdGF0 ZSB7Cj4gPiDCoAl1bnNpZ25lZCBpbnQgYWN0aXZlX2NydGNzOwo+ID4gwqAJdW5zaWduZWQgaW50 IG1pbl9waXhjbGtbSTkxNV9NQVhfUElQRVNdOwo+ID4gwqAKPiA+ICsJLyogU0tML0tCTCBPbmx5 ICovCj4gPiArCXVuc2lnbmVkIGludCBjZGNsa19wbGxfdmNvOwo+ID4gKwo+ID4gwqAJc3RydWN0 IGludGVsX3NoYXJlZF9kcGxsX2NvbmZpZyBzaGFyZWRfZHBsbFtJOTE1X05VTV9QTExTXTsKPiA+ IMKgCj4gPiDCoAkvKgo+ID4gQEAgLTEyNzcsNiArMTI4MCw3IEBAIHZvaWQgZ2VuOV9lbmFibGVf ZGM1KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gPiDCoHZvaWQgc2tsX2lu aXRfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiA+IMKgaW50IHNr bF9zYW5pdGl6ZV9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ID4g wqB2b2lkIHNrbF91bmluaXRfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KTsKPiA+ICt1bnNpZ25lZCBpbnQgc2tsX2NkY2xrX2dldF92Y28odW5zaWduZWQgaW50IGZyZXEp Owo+ID4gwqB2b2lkIHNrbF9lbmFibGVfZGM2KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdik7Cj4gPiDCoHZvaWQgc2tsX2Rpc2FibGVfZGM2KHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdik7Cj4gPiDCoHZvaWQgaW50ZWxfZHBfZ2V0X21fbihzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YywKCi0tIApWaWxsZSBTeXJqw6Rsw6QKSW50ZWwgT1RDCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50 ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=