From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH V7] drm/i915/skl: SKL CDCLK change on modeset tracking VCO Date: Thu, 25 Feb 2016 15:49:16 +0200 Message-ID: <20160225134916.GI15993@intel.com> References: <1449620105-32754-1-git-send-email-clinton.a.taylor@intel.com> <1455644695-25174-1-git-send-email-clinton.a.taylor@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 1C1086E132 for ; Thu, 25 Feb 2016 13:49:33 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1455644695-25174-1-git-send-email-clinton.a.taylor@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: clinton.a.taylor@intel.com Cc: Intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBGZWIgMTYsIDIwMTYgYXQgMDk6NDQ6NTVBTSAtMDgwMCwgY2xpbnRvbi5hLnRheWxv ckBpbnRlbC5jb20gd3JvdGU6Cj4gRnJvbTogQ2xpbnQgVGF5bG9yIDxjbGludG9uLmEudGF5bG9y QGludGVsLmNvbT4KPiAKPiBTZXQgY2RjbGsgYmFzZWQgb24gdGhlIG1heCByZXF1aXJlZCBwaXhl bCBjbG9jayBiYXNlZCBvbiBWQ08KPiBzZWxlY3RlZC4gVHJhY2sgYm9vdCB2Y28gaW5zdGVhZCBv ZiBib290IGNkY2xrLgo+IAo+IFRoZSB2Y28gaXMgbm93IHRyYWNrZWQgYXQgdGhlIGF0b21pYyBs ZXZlbCBhbmQgYWxsIENSVENzIHVwZGF0ZWQgaWYKPiB0aGUgcmVxdWlyZWQgdmNvIGlzIGNoYW5n ZWQuIE5vdCB0ZXN0ZWQgd2l0aCBlRFAgdjEuNCBwYW5lbHMgdGhhdAo+IHJlcXVpcmUgODY0MCB2 Y28gZHVlIHRvIGF2YWlsYWJpbGl0eS4KPiAKPiBWMTogaW5pdGlhbCB2ZXJzaW9uCj4gVjI6IGFk ZCB2Y28gdHJhY2tpbmcgaW4gaW50ZWxfZHBfY29tcHV0ZV9jb25maWcoKSwgcmVuYW1lCj4gc2ts X2Jvb3RfY2RjbGsuCj4gVjM6IHJlYmFzZSwgVjIgZmVlZGJhY2sgbm90IHBvc3NpYmxlIGFzIGVu Y29kZXJzIGFyZSBub3QgYXdhcmUgb2YKPiBhdG9taWMuCj4gVjQ6IHRyYWNrIHRhcmdldCB2Y28g aXMgYXRvbWljIHN0YXRlLiBtb2Rlc2V0IGFsbCBDUlRDcyBpZiB2Y28gY2hhbmdlcwo+IFY1OiBy ZW5hbWUgYXRvbWljIHZhcmlhYmxlLCBjbGVhbmVyIGlmL2Vsc2UgbG9naWMsIHVzZSBleGlzdGlu ZyB2Y28gaWYKPiAgICAgZW5jb2RlciBkb2VzIG5vdCByZXR1cm4gYSBuZXcgdmNvIHZhbHVlLiBj aGVja19wYXRjaC5wbCBjbGVhbnVwCj4gVjY6IHNpbXBsaWZ5IGxvZ2ljIGluIGludGVsX21vZGVz ZXRfY2hlY2tzLgo+IFY3OiByZW9yZGVyIGFuIElGIGZvciByZWFkYWJpbGl0eSBhbmQgd2hpdGVz cGFjZSBmaXguCj4gCj4gU2lnbmVkLW9mZi1ieTogQ2xpbnQgVGF5bG9yIDxjbGludG9uLmEudGF5 bG9yQGludGVsLmNvbT4KPiBDYzogVmlsbGUgPT9pc28tODg1OS0xP1E/U3lyaj1FNGw9RTQ/PSA8 dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+CgpJIGZpbmFsbHkgZ290IGFyb3VuZCB0byBh Y3R1YWxseSB0cnlpbmcgdGhpcyBvdXQgbXlzZWxmLCBhbmQgSQpub3RpY2VkIGEgZmV3IHJlbWFp bmluZyBwcm9ibGVtczoKCi0gc2tsX21vZGVzZXRfY2FsY19jZGNsaygpIHNob3VsZCBjYWxjdWxh dGUgZGV2X2NkY2xrIGFzIHdlbGwKICBkZXZfY2RjbGsgd2lsbCBiZSB0aGUgc2FtZSBhcyBjZGNs aywgZXhjZXB0IHdoZW4gYWxsIHBpcGVzIGFyZQogIGluYWN0aXZlLCBhdCB3aGljaCBwb2ludCBk ZXZfY2RjbGsgc2hvdWxkIGJlIHRoZSBtaW5pbXVtIGNkY2xrCi0gc2tsX21vZGVzZXRfY29tbWl0 X2NkY2xrKCkgc2hvdWxkIGNvbW1pdCBkZXZfY2RjbGssIG5vdCBjZGNsawotIG1vZGVzZXRfdXBk YXRlX2NydGNfcG93ZXJfZG9tYWlucygpIHNob3VsZCBjaGVjayBvZiB0aGUgY3VycmVudAogIHZj byBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgcmVxdWVzdGVkIHZjbyBpbiBhZGRpdGlvbiB0byBjaGVj a2luZwogIHRoZSBkZXZfY2RjbGsgdnMuIGN1cnJlbnQgY2RjbGssIGp1c3QgbGlrZSBpbnRlbF9t b2Rlc2V0X2NoZWNrcygpCiAgZG9lcwoKU28gdGhlIGN1cnJlbnQgdGhpbmcgd29ya3MsIGJ1dCBp dCBmYWlscyB0byBkcm9wIHRoZSBjZGNsayB0byBtaW5pbXVtCndoZW4gYWxsIHBpcGVzIGFyZSBp bmFjdGl2ZSwgYW5kIGl0IGFsc28gcmVwcm9ncmFtcyB0aGUgY2RjbGsgZXZlcnkKdGltZSwgSSBh c3N1bWUgc2luY2UgaXQgZm9yZ290IHRvIGNvbXB1dGUgZGV2X2NkY2xrIGFuZCBzbyB0aGF0IG9u ZQppcyBwcm9iYWJseSBsZWZ0IGF0IDAgYW5kIHNvIGl0IG5ldmVyIG1hdGNoZXMgdGhlIGN1cnJl bnQgY2RjbGsuCgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAg fCAgICAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jICAgICB8ICAgIDIg Ky0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgIDEwMiArKysrKysr KysrKysrKysrKysrKysrKysrKysrKy0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2RwLmMgICAgICB8ICAgIDYgKy0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2Lmgg ICAgIHwgICAgNCArKwo+ICA1IGZpbGVzIGNoYW5nZWQsIDk5IGluc2VydGlvbnMoKyksIDE3IGRl bGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IGluZGV4IDgyMTY2NjUuLmY2 NWRkMWEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBAQCAtMTgyMiw3ICsxODIyLDcg QEAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgewo+ICAJaW50IG51bV9mZW5jZV9yZWdzOyAvKiA4 IG9uIHByZS05NjUsIDE2IG90aGVyd2lzZSAqLwo+ICAKPiAgCXVuc2lnbmVkIGludCBmc2JfZnJl cSwgbWVtX2ZyZXEsIGlzX2RkcjM7Cj4gLQl1bnNpZ25lZCBpbnQgc2tsX2Jvb3RfY2RjbGs7Cj4g Kwl1bnNpZ25lZCBpbnQgc2tsX3Zjb19mcmVxOwo+ICAJdW5zaWduZWQgaW50IGNkY2xrX2ZyZXEs IG1heF9jZGNsa19mcmVxLCBhdG9taWNfY2RjbGtfZnJlcTsKPiAgCXVuc2lnbmVkIGludCBtYXhf ZG90Y2xrX2ZyZXE7Cj4gIAl1bnNpZ25lZCBpbnQgaHBsbF9mcmVxOwo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RkaS5jCj4gaW5kZXggNmQ1YjA5Zi4uMjg1YWRhYiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RkaS5jCj4gQEAgLTI5NTgsNyArMjk1OCw3IEBAIHZvaWQgaW50ZWxfZGRpX3BsbF9pbml0 KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIAkJaW50IGNkY2xrX2ZyZXE7Cj4gIAo+ICAJCWNk Y2xrX2ZyZXEgPSBkZXZfcHJpdi0+ZGlzcGxheS5nZXRfZGlzcGxheV9jbG9ja19zcGVlZChkZXYp Owo+IC0JCWRldl9wcml2LT5za2xfYm9vdF9jZGNsayA9IGNkY2xrX2ZyZXE7Cj4gKwkJZGV2X3By aXYtPnNrbF92Y29fZnJlcSA9IHNrbF9jZGNsa19nZXRfdmNvKGNkY2xrX2ZyZXEpOwo+ICAJCWlm IChza2xfc2FuaXRpemVfY2RjbGsoZGV2X3ByaXYpKQo+ICAJCQlEUk1fREVCVUdfS01TKCJTYW5p dGl6ZWQgY2RjbGsgcHJvZ3JhbW1lZCBieSBwcmUtb3NcbiIpOwo+ICAJCWlmICghKEk5MTVfUkVB RChMQ1BMTDFfQ1RMKSAmIExDUExMX1BMTF9FTkFCTEUpKQo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kaXNwbGF5LmMKPiBpbmRleCA5ZTIyNzNiLi5lMTE4Y2UwIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuYwo+IEBAIC01NjYzLDcgKzU2NjMsNyBAQCBzdGF0aWMgdW5zaWdu ZWQgaW50IHNrbF9jZGNsa19kZWNpbWFsKHVuc2lnbmVkIGludCBmcmVxKQo+ICAJcmV0dXJuIChm cmVxIC0gMTAwMCkgLyA1MDA7Cj4gIH0KPiAgCj4gLXN0YXRpYyB1bnNpZ25lZCBpbnQgc2tsX2Nk Y2xrX2dldF92Y28odW5zaWduZWQgaW50IGZyZXEpCj4gK3Vuc2lnbmVkIGludCBza2xfY2RjbGtf Z2V0X3Zjbyh1bnNpZ25lZCBpbnQgZnJlcSkKPiAgewo+ICAJdW5zaWduZWQgaW50IGk7Cj4gIAo+ IEBAIC01ODIxLDE3ICs1ODIxLDIxIEBAIHZvaWQgc2tsX3VuaW5pdF9jZGNsayhzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIAo+ICB2b2lkIHNrbF9pbml0X2NkY2xrKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgewo+IC0JdW5zaWduZWQgaW50IHJlcXVp cmVkX3ZjbzsKPiArCXVuc2lnbmVkIGludCBjZGNsazsKPiAgCj4gIAkvKiBEUExMMCBub3QgZW5h YmxlZCAoaGFwcGVucyBvbiBlYXJseSBCSU9TIHZlcnNpb25zKSAqLwo+ICAJaWYgKCEoSTkxNV9S RUFEKExDUExMMV9DVEwpICYgTENQTExfUExMX0VOQUJMRSkpIHsKPiAgCQkvKiBlbmFibGUgRFBM TDAgKi8KPiAtCQlyZXF1aXJlZF92Y28gPSBza2xfY2RjbGtfZ2V0X3ZjbyhkZXZfcHJpdi0+c2ts X2Jvb3RfY2RjbGspOwo+IC0JCXNrbF9kcGxsMF9lbmFibGUoZGV2X3ByaXYsIHJlcXVpcmVkX3Zj byk7Cj4gKwkJaWYgKGRldl9wcml2LT5za2xfdmNvX2ZyZXEgIT0gODY0MCkKPiArCQkJZGV2X3By aXYtPnNrbF92Y29fZnJlcSA9IDgxMDA7Cj4gKwkJc2tsX2RwbGwwX2VuYWJsZShkZXZfcHJpdiwg ZGV2X3ByaXYtPnNrbF92Y29fZnJlcSk7Cj4gKwkJY2RjbGsgPSAoKGRldl9wcml2LT5za2xfdmNv X2ZyZXEgPT0gODEwMCkgPyAzMzc1MDAgOiAzMDg1NzApOwo+ICsJfSBlbHNlIHsKPiArCQljZGNs ayA9IGRldl9wcml2LT5jZGNsa19mcmVxOwo+ICAJfQo+ICAKPiAtCS8qIHNldCBDRENMSyB0byB0 aGUgZnJlcXVlbmN5IHRoZSBCSU9TIGNob3NlICovCj4gLQlza2xfc2V0X2NkY2xrKGRldl9wcml2 LCBkZXZfcHJpdi0+c2tsX2Jvb3RfY2RjbGspOwo+ICsJLyogc2V0IENEQ0xLIHRvIHRoZSBsb3dl c3QgZnJlcXVlbmN5LCBNb2Rlc2V0IGZvbGxvd3MgKi8KPiArCXNrbF9zZXRfY2RjbGsoZGV2X3By aXYsIGNkY2xrKTsKPiAgCj4gIAkvKiBlbmFibGUgREJVRiBwb3dlciAqLwo+ICAJSTkxNV9XUklU RShEQlVGX0NUTCwgSTkxNV9SRUFEKERCVUZfQ1RMKSB8IERCVUZfUE9XRVJfUkVRVUVTVCk7Cj4g QEAgLTU4NDcsNyArNTg1MSw3IEBAIGludCBza2xfc2FuaXRpemVfY2RjbGsoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICB7Cj4gIAl1aW50MzJfdCBsY3BsbDEgPSBJOTE1X1JF QUQoTENQTEwxX0NUTCk7Cj4gIAl1aW50MzJfdCBjZGN0bCA9IEk5MTVfUkVBRChDRENMS19DVEwp Owo+IC0JaW50IGZyZXEgPSBkZXZfcHJpdi0+c2tsX2Jvb3RfY2RjbGs7Cj4gKwlpbnQgZnJlcSA9 IGRldl9wcml2LT5jZGNsa19mcmVxOwo+ICAKPiAgCS8qCj4gIAkgKiBjaGVjayBpZiB0aGUgcHJl LW9zIGludGlhbGl6ZWQgdGhlIGRpc3BsYXkKPiBAQCAtNTg3MSwxMSArNTg3NSw3IEBAIGludCBz a2xfc2FuaXRpemVfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAJ CS8qIEFsbCB3ZWxsOyBub3RoaW5nIHRvIHNhbml0aXplICovCj4gIAkJcmV0dXJuIGZhbHNlOwo+ ICBzYW5pdGl6ZToKPiAtCS8qCj4gLQkgKiBBcyBvZiBub3cgaW5pdGlhbGl6ZSB3aXRoIG1heCBj ZGNsayB0aWxsCj4gLQkgKiB3ZSBnZXQgZHluYW1pYyBjZGNsayBzdXBwb3J0Cj4gLQkgKiAqLwo+ IC0JZGV2X3ByaXYtPnNrbF9ib290X2NkY2xrID0gZGV2X3ByaXYtPm1heF9jZGNsa19mcmVxOwo+ ICsKPiAgCXNrbF9pbml0X2NkY2xrKGRldl9wcml2KTsKPiAgCj4gIAkvKiB3ZSBkaWQgaGF2ZSB0 byBzYW5pdGl6ZSAqLwo+IEBAIC05ODQ1LDYgKzk4NDUsNjggQEAgc3RhdGljIHZvaWQgYnJvYWR3 ZWxsX21vZGVzZXRfY29tbWl0X2NkY2xrKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpvbGRfc3Rh dGUpCj4gIAlicm9hZHdlbGxfc2V0X2NkY2xrKGRldiwgcmVxX2NkY2xrKTsKPiAgfQo+ICAKPiAr c3RhdGljIGludCBza2xfbW9kZXNldF9jYWxjX2NkY2xrKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRl ICpzdGF0ZSkKPiArewo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9f aTkxNShzdGF0ZS0+ZGV2KTsKPiArCWNvbnN0IGludCBtYXhfcGl4Y2xrID0gaWxrX21heF9waXhl bF9yYXRlKHN0YXRlKTsKPiArCWludCBjZGNsazsKPiArCj4gKwkvKgo+ICsJICogRklYTUUgc2hv dWxkIGFsc28gYWNjb3VudCBmb3IgcGxhbmUgcmF0aW8KPiArCSAqIG9uY2UgNjRicHAgcGl4ZWwg Zm9ybWF0cyBhcmUgc3VwcG9ydGVkLgo+ICsJICovCj4gKwo+ICsJaWYgKHRvX2ludGVsX2F0b21p Y19zdGF0ZShzdGF0ZSktPmNkY2xrX3BsbF92Y28gPT0gODY0MCkgewo+ICsJCS8qIHZjbyA4NjQw ICovCj4gKwkJaWYgKG1heF9waXhjbGsgPiA1NDAwMDApCj4gKwkJCWNkY2xrID0gNjE3MTQwOwo+ ICsJCWVsc2UgaWYgKG1heF9waXhjbGsgPiA0MzIwMDApCj4gKwkJCWNkY2xrID0gNTQwMDAwOwo+ ICsJCWVsc2UgaWYgKG1heF9waXhjbGsgPiAzMDg1NzApCj4gKwkJCWNkY2xrID0gNDMyMDAwOwo+ ICsJCWVsc2UKPiArCQkJY2RjbGsgPSAzMDg1NzA7Cj4gKwl9IGVsc2Ugewo+ICsJCS8qIFZDTyA4 MTAwICovCj4gKwkJaWYgKG1heF9waXhjbGsgPiA1NDAwMDApCj4gKwkJCWNkY2xrID0gNjc1MDAw Owo+ICsJCWVsc2UgaWYgKG1heF9waXhjbGsgPiA0NTAwMDApCj4gKwkJCWNkY2xrID0gNTQwMDAw Owo+ICsJCWVsc2UgaWYgKG1heF9waXhjbGsgPiAzMzc1MDApCj4gKwkJCWNkY2xrID0gNDUwMDAw Owo+ICsJCWVsc2UKPiArCQkJY2RjbGsgPSAzMzc1MDA7Cj4gKwl9Cj4gKwo+ICsJLyoKPiArCSAq IEZJWE1FIG1vdmUgdGhlIGNkY2xrIGNhY2x1bGF0aW9uIHRvCj4gKwkgKiBjb21wdXRlX2NvbmZp ZygpIHNvIHdlIGNhbiBmYWlsIGdyYWNlZ3VsbHkuCj4gKwkgKi8KPiArCWlmIChjZGNsayA+IGRl dl9wcml2LT5tYXhfY2RjbGtfZnJlcSkgewo+ICsJCURSTV9FUlJPUigicmVxdWVzdGVkIGNkY2xr ICglZCBrSHopIGV4Y2VlZHMgbWF4ICglZCBrSHopXG4iLAo+ICsJCQkgIGNkY2xrLCBkZXZfcHJp di0+bWF4X2NkY2xrX2ZyZXEpOwo+ICsJCWNkY2xrID0gZGV2X3ByaXYtPm1heF9jZGNsa19mcmVx Owo+ICsJfQo+ICsKPiArCXRvX2ludGVsX2F0b21pY19zdGF0ZShzdGF0ZSktPmNkY2xrID0gY2Rj bGs7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIHNrbF9tb2Rlc2V0 X2NvbW1pdF9jZGNsayhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqb2xkX3N0YXRlKQo+ICt7Cj4g KwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gb2xkX3N0YXRlLT5kZXY7Cj4gKwlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICsJdW5zaWduZWQg aW50IHJlcV9jZGNsayA9IHRvX2ludGVsX2F0b21pY19zdGF0ZShvbGRfc3RhdGUpLT5jZGNsazsK PiArCj4gKwkvKgo+ICsJICogRklYTUUgZGlzYWJsZS9lbmFibGUgUExMIHNob3VsZCB3cmFwIHNl dF9jZGNsaygpCj4gKwkgKi8KPiArCXNrbF9zZXRfY2RjbGsoZGV2X3ByaXYsIHJlcV9jZGNsayk7 Cj4gKwo+ICsJZGV2X3ByaXYtPnNrbF92Y29fZnJlcSA9IHRvX2ludGVsX2F0b21pY19zdGF0ZShv bGRfc3RhdGUpLT5jZGNsa19wbGxfdmNvOwo+ICt9Cj4gKwo+ICBzdGF0aWMgaW50IGhhc3dlbGxf Y3J0Y19jb21wdXRlX2Nsb2NrKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ICAJCQkJICAgICAg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gIHsKPiBAQCAtMTMyNDgsOSAr MTMzMTAsMTUgQEAgc3RhdGljIGludCBpbnRlbF9tb2Rlc2V0X2NoZWNrcyhzdHJ1Y3QgZHJtX2F0 b21pY19zdGF0ZSAqc3RhdGUpCj4gIAkgKiBhZGp1c3RlZF9tb2RlIGJpdHMgaW4gdGhlIGNydGMg ZGlyZWN0bHkuCj4gIAkgKi8KPiAgCWlmIChkZXZfcHJpdi0+ZGlzcGxheS5tb2Rlc2V0X2NhbGNf Y2RjbGspIHsKPiArCQlpZiAoIWludGVsX3N0YXRlLT5jZGNsa19wbGxfdmNvKQo+ICsJCQlpbnRl bF9zdGF0ZS0+Y2RjbGtfcGxsX3ZjbyA9IGRldl9wcml2LT5za2xfdmNvX2ZyZXE7Cj4gKwo+ICAJ CXJldCA9IGRldl9wcml2LT5kaXNwbGF5Lm1vZGVzZXRfY2FsY19jZGNsayhzdGF0ZSk7Cj4gKwkJ aWYgKHJldCA8IDApCj4gKwkJCXJldHVybiByZXQ7Cj4gIAo+IC0JCWlmICghcmV0ICYmIGludGVs X3N0YXRlLT5kZXZfY2RjbGsgIT0gZGV2X3ByaXYtPmNkY2xrX2ZyZXEpCj4gKwkJaWYgKGludGVs X3N0YXRlLT5kZXZfY2RjbGsgIT0gZGV2X3ByaXYtPmNkY2xrX2ZyZXEgfHwKPiArCQkgICAgaW50 ZWxfc3RhdGUtPmNkY2xrX3BsbF92Y28gIT0gZGV2X3ByaXYtPnNrbF92Y29fZnJlcSkKPiAgCQkJ cmV0ID0gaW50ZWxfbW9kZXNldF9hbGxfcGlwZXMoc3RhdGUpOwo+ICAKPiAgCQlpZiAocmV0IDwg MCkKPiBAQCAtMTUwMDIsNiArMTUwNzAsMTEgQEAgc3RhdGljIHZvaWQgaW50ZWxfaW5pdF9kaXNw bGF5KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIAkJCWJyb3h0b25fbW9kZXNldF9jb21taXRf Y2RjbGs7Cj4gIAkJZGV2X3ByaXYtPmRpc3BsYXkubW9kZXNldF9jYWxjX2NkY2xrID0KPiAgCQkJ YnJveHRvbl9tb2Rlc2V0X2NhbGNfY2RjbGs7Cj4gKwl9IGVsc2UgaWYgKElTX1NLWUxBS0UoZGV2 KSB8fCBJU19LQUJZTEFLRShkZXYpKSB7Cj4gKwkJZGV2X3ByaXYtPmRpc3BsYXkubW9kZXNldF9j b21taXRfY2RjbGsgPQo+ICsJCQlza2xfbW9kZXNldF9jb21taXRfY2RjbGs7Cj4gKwkJZGV2X3By aXYtPmRpc3BsYXkubW9kZXNldF9jYWxjX2NkY2xrID0KPiArCQkJc2tsX21vZGVzZXRfY2FsY19j ZGNsazsKPiAgCX0KPiAgCj4gIAlzd2l0Y2ggKElOVEVMX0lORk8oZGV2KS0+Z2VuKSB7Cj4gQEAg LTE1NzI1LDcgKzE1Nzk4LDggQEAgc3RhdGljIHZvaWQgaW50ZWxfbW9kZXNldF9yZWFkb3V0X2h3 X3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIAkJaWYgKGNydGNfc3RhdGUtPmJhc2Uu YWN0aXZlKSB7Cj4gIAkJCWRldl9wcml2LT5hY3RpdmVfY3J0Y3MgfD0gMSA8PCBjcnRjLT5waXBl Owo+ICAKPiAtCQkJaWYgKElTX0JST0FEV0VMTChkZXZfcHJpdikpIHsKPiArCQkJaWYgKElTX0JS T0FEV0VMTChkZXZfcHJpdikgfHwgSVNfU0tZTEFLRShkZXZfcHJpdikgfHwKPiArCQkJICAgIElT X0tBQllMQUtFKGRldl9wcml2KSkgewo+ICAJCQkJcGl4Y2xrID0gaWxrX3BpcGVfcGl4ZWxfcmF0 ZShjcnRjX3N0YXRlKTsKPiAgCj4gIAkJCQkvKiBwaXhlbCByYXRlIG11c3RuJ3QgZXhjZWVkIDk1 JSBvZiBjZGNsayB3aXRoIElQUyBvbiBCRFcgKi8KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiBp bmRleCBhMDczZjA0Li5hZmEyMWI2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2RwLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gQEAg LTEyNDUsNiArMTI0NSw3IEBAIHN0YXRpYyB2b2lkCj4gIHNrbF9lZHBfc2V0X3BsbF9jb25maWco c3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQo+ICB7Cj4gIAl1MzIgY3RybDE7 Cj4gKwl1MzIgdmNvID0gODEwMDsKPiAgCj4gIAltZW1zZXQoJnBpcGVfY29uZmlnLT5kcGxsX2h3 X3N0YXRlLCAwLAo+ICAJICAgICAgIHNpemVvZihwaXBlX2NvbmZpZy0+ZHBsbF9od19zdGF0ZSkp Owo+IEBAIC0xMjc3LDEzICsxMjc4LDE2IEBAIHNrbF9lZHBfc2V0X3BsbF9jb25maWcoc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQo+ICAJY2FzZSAxMDgwMDA6Cj4gIAkJY3Ry bDEgfD0gRFBMTF9DVFJMMV9MSU5LX1JBVEUoRFBMTF9DVFJMMV9MSU5LX1JBVEVfMTA4MCwKPiAg CQkJCQkgICAgICBTS0xfRFBMTDApOwo+ICsJCXZjbyA9IDg2NDA7Cj4gIAkJYnJlYWs7Cj4gIAlj YXNlIDIxNjAwMDoKPiAgCQljdHJsMSB8PSBEUExMX0NUUkwxX0xJTktfUkFURShEUExMX0NUUkwx X0xJTktfUkFURV8yMTYwLAo+ICAJCQkJCSAgICAgIFNLTF9EUExMMCk7Cj4gKwkJdmNvID0gODY0 MDsKPiAgCQlicmVhazsKPiAtCj4gIAl9Cj4gKwo+ICsJdG9faW50ZWxfYXRvbWljX3N0YXRlKHBp cGVfY29uZmlnLT5iYXNlLnN0YXRlKS0+Y2RjbGtfcGxsX3ZjbyA9IHZjbzsKPiAgCXBpcGVfY29u ZmlnLT5kcGxsX2h3X3N0YXRlLmN0cmwxID0gY3RybDE7Cj4gIH0KPiAgCj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHJ2LmgKPiBpbmRleCA4NzgxNzJhLi40NzkzNmQ0IDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHJ2LmgKPiBAQCAtMjYwLDYgKzI2MCw5IEBAIHN0cnVjdCBpbnRlbF9hdG9taWNfc3Rh dGUgewo+ICAKPiAgCXN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbF9jb25maWcgc2hhcmVkX2RwbGxb STkxNV9OVU1fUExMU107Cj4gIAlzdHJ1Y3QgaW50ZWxfd21fY29uZmlnIHdtX2NvbmZpZzsKPiAr Cj4gKwkvKiBTS0wvS0JMIE9ubHkgKi8KPiArCXVuc2lnbmVkIGludCBjZGNsa19wbGxfdmNvOwo+ ICB9Owo+ICAKPiAgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlIHsKPiBAQCAtMTE5MSw2ICsxMTk0 LDcgQEAgdm9pZCBieHRfZGlzYWJsZV9kYzkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KTsKPiAgdm9pZCBza2xfaW5pdF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpOwo+ICBpbnQgc2tsX3Nhbml0aXplX2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdik7Cj4gIHZvaWQgc2tsX3VuaW5pdF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYpOwo+ICt1bnNpZ25lZCBpbnQgc2tsX2NkY2xrX2dldF92Y28odW5zaWdu ZWQgaW50IGZyZXEpOwo+ICB2b2lkIHNrbF9lbmFibGVfZGM2KHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdik7Cj4gIHZvaWQgc2tsX2Rpc2FibGVfZGM2KHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdik7Cj4gIHZvaWQgaW50ZWxfZHBfZ2V0X21fbihzdHJ1Y3QgaW50ZWxf Y3J0YyAqY3J0YywKPiAtLSAKPiAxLjcuOS41CgotLSAKVmlsbGUgU3lyasOkbMOkCkludGVsIE9U QwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1n ZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK