From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sivakumar Thulasimani Subject: Re: [PATCH 15/19] drm/i915: HSW cdclk support Date: Tue, 07 Apr 2015 12:33:40 +0530 Message-ID: <5523814C.9070505@intel.com> References: <20150331110535.GB3154@sorvi> <1427800454-5236-1-git-send-email-mika.kahola@intel.com> <552378CB.7@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" 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 BEBA96E3EC for ; Tue, 7 Apr 2015 00:03:43 -0700 (PDT) In-Reply-To: <552378CB.7@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org c29ycnkgaWYgaSBhbSBtaXNzaW5nIHNvbWV0aGluZywgSFNXIGFuZCBCRFcgcmVxdWlyZXMgZGlz cGxheSBhdWRpbyAKY29udHJvbGxlciB0byBiZSB1cGRhdGVkIHdpdGggbmV3IHZhbHVlcyBvbmNl IENEIGNsb2NrIGlzIG1vZGlmaWVkLiBob3cgCmlzIHRoaXMgYWNjb21wbGlzaGVkIGhlcmUgPwoK cmVnYXJkcywKU2l2YWt1bWFyCk9uIDQvNy8yMDE1IDExOjU3IEFNLCBTaXZha3VtYXIgVGh1bGFz aW1hbmkgd3JvdGU6Cj4KPgo+IE9uIDMvMzEvMjAxNSA0OjQ0IFBNLCBNaWthIEthaG9sYSB3cm90 ZToKPj4gSW1wbGVtZW50IHN1cHBvcnQgZm9yIGNoYW5naW5nIHRoZSBjZGNsayBmcmVxdWVuY3kg ZHVyaW5nIHJ1bnRpbWUgb24KPj4gSFNXLiBWTFYvQ0hWIGFscmVhZHkgaGF2ZSBzdXBwb3J0IGZv ciB0aGlzLCBzbyB3ZSBjYW4gZm9sbG93IHRoZWlyCj4+IGV4YW1wbGUgZm9yIHRoZSBtb3N0IHBh cnQuIE9ubHkgdGhlIGFjdHVhbCBoYXJkd2FyZSBwcm9ncmFtbWluZyBkaWZmZXJzLAo+PiB0aGUg cmVzdCBpcyBwcmV0dHkgbXVjaCB0aGUgc2FtZS4KPj4KPj4gVGhlIHBpcGUgcGl4ZWwgcmF0ZSBz dHVmZiBpcyBoYW5kbGVkIGEgYml0IGRpZmZlcmVudGx5IGZvciBub3cgZHVlIHRvCj4+IHRoZSBk aWZmZXJlbmNlIGluIHBjaCB2cy4gZ21jaCBwZml0IGhhbmRsaW5nLiBFdmVudHVhbGx5IHdlIHNo b3VsZCB1bmlmeQo+PiB0aGF0IHBhcnQgdG8gZWxpbWluYXRlIHdoYXQgaXMgZXNzZW50aWFsbHkg ZHVwbGljYXRlZCBjb2RlLgo+Pgo+PiB2MjogR3JhYiBycHMuaHdfbG9jayBhcm91bmQgc2FuZHli cmlkZ2VfcGNvZGVfd3JpdGUoKQo+PiB2MzogUmViYXNlIGR1ZSB0byBwb3dlciB3ZWxsIHZzLiAu Z2xvYmFsX3Jlc291cmNlcygpIHJlb3JkZXJpbmcKPj4gdjQ6IFJlYmFzZSBkdWUgdG8gLmdsb2Jh bF9yZXNvdXJjZXMoKSByZW9yZGVyaW5nIGZvciBIYXN3ZWxsCj4+Cj4+IFNpZ25lZC1vZmYtYnk6 IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4+IFNpZ25l ZC1vZmYtYnk6IE1pa2EgS2Fob2xhIDxtaWthLmthaG9sYUBpbnRlbC5jb20+Cj4+IC0tLQo+PiAg IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggICAgICB8ICAgMyArCj4+ICAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgMTYxIAo+PiArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrLQo+PiAgIDIgZmlsZXMgY2hhbmdlZCwgMTYxIGluc2VydGlvbnMo KyksIDMgZGVsZXRpb25zKC0pCj4+Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3JlZy5oIAo+PiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPj4gaW5k ZXggZjI2ZWJkMi4uYjI1ZjcxMiAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9yZWcuaAo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4+IEBA IC02MjQ0LDYgKzYyNDQsNyBAQCBlbnVtIHNrbF9kaXNwX3Bvd2VyX3dlbGxzIHsKPj4gICAjZGVm aW5lICAgR0VONl9QQ09ERV9XUklURV9EX0NPTVAgICAgICAgIDB4MTEKPj4gICAjZGVmaW5lICAg R0VONl9FTkNPREVfUkM2X1ZJRChtdikgICAgICAgICgoKG12KSAtIDI0NSkgLyA1KQo+PiAgICNk ZWZpbmUgICBHRU42X0RFQ09ERV9SQzZfVklEKHZpZHMpICAgICAgICAoKCh2aWRzKSAqIDUpICsg MjQ1KQo+PiArI2RlZmluZSAgIEhTV19QQ09ERV9ERV9XUklURV9GUkVRX1JFUSAgICAgICAgMHgx Nwo+PiAgICNkZWZpbmUgICBESVNQTEFZX0lQU19DT05UUk9MICAgICAgICAgICAgMHgxOQo+PiAg ICNkZWZpbmUgICAgICBIU1dfUENPREVfRFlOQU1JQ19EVVRZX0NZQ0xFX0NPTlRST0wgICAgMHgx QQo+PiAgICNkZWZpbmUgR0VONl9QQ09ERV9EQVRBICAgICAgICAgICAgICAgIDB4MTM4MTI4Cj4+ IEBAIC02Njk4LDEwICs2Njk5LDEyIEBAIGVudW0gc2tsX2Rpc3BfcG93ZXJfd2VsbHMgewo+PiAg ICNkZWZpbmUgIExDUExMX1BMTF9MT0NLICAgICAgICAgICAgKDE8PDMwKQo+PiAgICNkZWZpbmUg IExDUExMX0NMS19GUkVRX01BU0sgICAgICAgICgzPDwyNikKPj4gICAjZGVmaW5lICBMQ1BMTF9D TEtfRlJFUV80NTAgICAgICAgICgwPDwyNikKPj4gKyNkZWZpbmUgIExDUExMX0NMS19GUkVRX0FM VF9IU1cgICAgICAgICgxPDwyNikgLyogMzM3LjUgKFVMWCkgb3IgNTQwICovCj4+ICAgI2RlZmlu ZSAgTENQTExfQ0xLX0ZSRVFfNTRPX0JEVyAgICAgICAgKDE8PDI2KQo+PiAgICNkZWZpbmUgIExD UExMX0NMS19GUkVRXzMzN181X0JEVyAgICAoMjw8MjYpCj4+ICAgI2RlZmluZSAgTENQTExfQ0xL X0ZSRVFfNjc1X0JEVyAgICAgICAgKDM8PDI2KQo+PiAgICNkZWZpbmUgIExDUExMX0NEX0NMT0NL X0RJU0FCTEUgICAgICAgICgxPDwyNSkKPj4gKyNkZWZpbmUgIExDUExMX1JPT1RfQ0RfQ0xPQ0tf RElTQUJMRSAgICAoMTw8MjQpCj4+ICAgI2RlZmluZSAgTENQTExfQ0QyWF9DTE9DS19ESVNBQkxF ICAgICgxPDwyMykKPj4gICAjZGVmaW5lICBMQ1BMTF9QT1dFUl9ET1dOX0FMTE9XICAgICAgICAo MTw8MjIpCj4+ICAgI2RlZmluZSAgTENQTExfQ0RfU09VUkNFX0ZDTEsgICAgICAgICgxPDwyMSkK Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyAKPj4g Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPj4gaW5kZXggMzc1MmQ1ZS4u Y2NlNzEwMyAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxh eS5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+PiBAQCAt NTAxMiw3ICs1MDEyLDE2IEBAIHN0YXRpYyB2b2lkIGludGVsX3VwZGF0ZV9tYXhfY2RjbGsoc3Ry dWN0IAo+PiBkcm1fZGV2aWNlICpkZXYpCj4+ICAgewo+PiAgICAgICBzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+PiAgIC0gICAgaWYgKElTX1ZB TExFWVZJRVcoZGV2KSkgewo+PiArICAgIGlmIChJU19IQVNXRUxMKGRldikpIHsKPj4gKyAgICAg ICAgaWYgKEk5MTVfUkVBRChGVVNFX1NUUkFQKSAmIEhTV19DRENMS19MSU1JVCkKPj4gKyAgICAg ICAgICAgIGRldl9wcml2LT5tYXhfY2RjbGtfZnJlcSA9IDQ1MDAwMDsKPj4gKyAgICAgICAgZWxz ZSBpZiAoSVNfSFNXX1VMWChkZXYpKQo+PiArICAgICAgICAgICAgZGV2X3ByaXYtPm1heF9jZGNs a19mcmVxID0gMzM3NTAwOwo+PiArICAgICAgICBlbHNlIGlmIChJU19IU1dfVUxUKGRldikpCj4+ ICsgICAgICAgICAgICBkZXZfcHJpdi0+bWF4X2NkY2xrX2ZyZXEgPSA0NTAwMDA7Cj4+ICsgICAg ICAgIGVsc2UKPj4gKyAgICAgICAgICAgIGRldl9wcml2LT5tYXhfY2RjbGtfZnJlcSA9IDU0MDAw MDsKPj4gKyAgICB9IGVsc2UgaWYgKElTX1ZBTExFWVZJRVcoZGV2KSkgewo+PiAgICAgICAgICAg ZGV2X3ByaXYtPm1heF9jZGNsa19mcmVxID0gNDAwMDAwOwo+PiAgICAgICB9IGVsc2Ugewo+PiAg ICAgICAgICAgLyogb3RoZXJ3aXNlIGFzc3VtZSBjZGNsayBpcyBmaXhlZCAqLwo+PiBAQCAtODc3 Myw2ICs4NzgyLDE0NCBAQCB2b2lkIGhzd19lbmFibGVfcGM4KHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlIAo+PiAqZGV2X3ByaXYpCj4+ICAgICAgIGhzd19kaXNhYmxlX2xjcGxsKGRldl9wcml2LCB0 cnVlLCB0cnVlKTsKPj4gICB9Cj4+ICAgKy8qIGNvbXB1dGUgdGhlIG1heCByYXRlIGZvciBuZXcg Y29uZmlndXJhdGlvbiAqLwo+PiArc3RhdGljIGludCBpbGtfbWF4X3BpeGVsX3JhdGUoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+PiArewo+PiArICAgIHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYgPSBkZXZfcHJpdi0+ZGV2Owo+PiArICAgIHN0cnVjdCBpbnRlbF9jcnRjICpjcnRj Owo+PiArICAgIGludCBtYXhfcGl4ZWxfcmF0ZSA9IDA7Cj4+ICsKPj4gKyAgICBmb3JfZWFjaF9p bnRlbF9jcnRjKGRldiwgY3J0Yykgewo+PiArICAgICAgICBpZiAoY3J0Yy0+bmV3X2VuYWJsZWQp Cj4+ICsgICAgICAgICAgICBtYXhfcGl4ZWxfcmF0ZSA9IG1heChtYXhfcGl4ZWxfcmF0ZSwKPj4g KyBpbGtfcGlwZV9waXhlbF9yYXRlKGNydGMtPm5ld19jb25maWcpKTsKPj4gKyAgICB9Cj4+ICsK Pj4gKyAgICByZXR1cm4gbWF4X3BpeGVsX3JhdGU7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyBpbnQg aGFzd2VsbF9jYWxjX2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPj4g KyAgICAgICAgICAgICAgICAgIGludCBtYXhfcGl4ZWxfcmF0ZSkKPj4gK3sKPj4gKyAgICBpbnQg Y2RjbGs7Cj4+ICsKPj4gKyAgICAvKgo+PiArICAgICAqIEZJWE1FIHNob3VsZCBhbHNvIGFjY291 bnQgZm9yIHBsYW5lIHJhdGlvCj4+ICsgICAgICogb25jZSA2NGJwcCBwaXhlbCBmb3JtYXRzIGFy ZSBzdXBwb3J0ZWQuCj4+ICsgICAgICovCj4+ICsgICAgaWYgKG1heF9waXhlbF9yYXRlID4gNDUw MDAwKQo+PiArICAgICAgICBjZGNsayA9IDU0MDAwMDsKPj4gKyAgICBlbHNlIGlmIChtYXhfcGl4 ZWxfcmF0ZSA+IDMzNzUwMCB8fCAhSVNfSFNXX1VMWChkZXZfcHJpdikpCj4+ICsgICAgICAgIGNk Y2xrID0gNDUwMDAwOwo+PiArICAgIGVsc2UKPj4gKyAgICAgICAgY2RjbGsgPSAzMzc1MDA7Cj4+ ICsKPj4gKyAgICAvKgo+PiArICAgICAqIEZJWE1FIG1vdmUgdGhlIGNkY2xrIGNhY2x1bGF0aW9u IHRvCj4+ICsgICAgICogY29tcHV0ZV9jb25maWcoKSBzbyB3ZSBjYW4gZmFpbCBncmFjZWd1bGx5 Lgo+PiArICAgICAqLwo+PiArICAgIGlmIChjZGNsayA+IGRldl9wcml2LT5tYXhfY2RjbGtfZnJl cSkgewo+PiArICAgICAgICBEUk1fRVJST1IoInJlcXVlc3RlZCBjZGNsayAoJWQga0h6KSBleGNl ZWRzIG1heCAoJWQga0h6KVxuIiwKPj4gKyAgICAgICAgICAgICAgY2RjbGssIGRldl9wcml2LT5t YXhfY2RjbGtfZnJlcSk7Cj4+ICsgICAgICAgIGNkY2xrID0gZGV2X3ByaXYtPm1heF9jZGNsa19m cmVxOwo+PiArICAgIH0KPj4gKwo+PiArICAgIHJldHVybiBjZGNsazsKPj4gK30KPiB3b24ndCB0 aGlzIHJldHVybiAzMzdNSHogZXZlbiBmb3IgcGxhdGZvcm1zIHRoYXQgaGF2ZSBIU1dfQ0RDTEtf TElNSVQgCj4gaXMgc2V0ID8gdGhpcyBzaG91bGQgcmV0dXJuIDQ1ME1IeiBpZiB0aGlzIGZ1c2Ug aXMgc2V0Cj4KPj4gKwo+PiArc3RhdGljIHZvaWQgaGFzd2VsbF9zZXRfY2RjbGsoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwgaW50IGNkY2xrKQo+PiArewo+PiArICAgIHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4+ICsgICAgdWludDMyX3QgdmFs Owo+PiArCj4+ICsgICAgaWYgKFdBUk4oKEk5MTVfUkVBRChMQ1BMTF9DVEwpICYKPj4gKyAgICAg ICAgICAoTENQTExfUExMX0RJU0FCTEUgfCBMQ1BMTF9QTExfTE9DSyB8Cj4+ICsgICAgICAgICAg IExDUExMX0NEX0NMT0NLX0RJU0FCTEUgfCBMQ1BMTF9ST09UX0NEX0NMT0NLX0RJU0FCTEUgfAo+ PiArICAgICAgICAgICBMQ1BMTF9DRDJYX0NMT0NLX0RJU0FCTEUgfCBMQ1BMTF9QT1dFUl9ET1dO X0FMTE9XIHwKPj4gKyAgICAgICAgICAgTENQTExfQ0RfU09VUkNFX0ZDTEspKSAhPSBMQ1BMTF9Q TExfTE9DSywKPj4gKyAgICAgICAgICJ0cnlpbmcgdG8gY2hhbmdlIGNkY2xrIGZyZXF1ZW5jeSB3 aXRoIGNkY2xrIG5vdCBlbmFibGVkXG4iKSkKPj4gKyAgICAgICAgcmV0dXJuOwo+PiArCj4+ICsg ICAgdmFsID0gSTkxNV9SRUFEKExDUExMX0NUTCk7Cj4+ICsgICAgdmFsICY9IH5MQ1BMTF9DTEtf RlJFUV9NQVNLOwo+PiArCj4+ICsgICAgc3dpdGNoIChjZGNsaykgewo+PiArICAgIGNhc2UgNDUw MDAwOgo+PiArICAgICAgICB2YWwgfD0gTENQTExfQ0xLX0ZSRVFfNDUwOwo+PiArICAgICAgICBi cmVhazsKPj4gKyAgICBjYXNlIDMzNzUwMDoKPj4gKyAgICBjYXNlIDU0MDAwMDoKPj4gKyAgICAg ICAgdmFsIHw9IExDUExMX0NMS19GUkVRX0FMVF9IU1c7Cj4+ICsgICAgICAgIGJyZWFrOwo+PiAr ICAgIGRlZmF1bHQ6Cj4+ICsgICAgICAgIFdBUk4oMSwgImludmFsaWQgY2RjbGsgZnJlcXVlbmN5 XG4iKTsKPj4gKyAgICAgICAgcmV0dXJuOwo+PiArICAgIH0KPj4gKwo+PiArICAgIEk5MTVfV1JJ VEUoTENQTExfQ1RMLCB2YWwpOwo+PiArCj4+ICsgICAgaWYgKElTX0hTV19VTFgoZGV2KSkgewo+ PiArICAgICAgICBtdXRleF9sb2NrKCZkZXZfcHJpdi0+cnBzLmh3X2xvY2spOwo+PiArICAgICAg ICBzYW5keWJyaWRnZV9wY29kZV93cml0ZShkZXZfcHJpdiwgSFNXX1BDT0RFX0RFX1dSSVRFX0ZS RVFfUkVRLAo+PiArICAgICAgICAgICAgICAgICAgICBjZGNsayA9PSAzMzc1MDApOwo+PiArICAg ICAgICBtdXRleF91bmxvY2soJmRldl9wcml2LT5ycHMuaHdfbG9jayk7Cj4+ICsgICAgfQo+PiAr Cj4+ICsgICAgaW50ZWxfdXBkYXRlX2NkY2xrKGRldik7Cj4+ICsKPj4gKyAgICBXQVJOKGNkY2xr ICE9IGRldl9wcml2LT5jZGNsa19mcmVxLAo+PiArICAgICAgICAgImNkY2xrIHJlcXVlc3RlZCAl ZCBrSHogYnV0IGdvdCAlZCBrSHpcbiIsCj4+ICsgICAgICAgICBjZGNsaywgZGV2X3ByaXYtPmNk Y2xrX2ZyZXEpOwo+PiArfQo+PiArCj4+ICtzdGF0aWMgdm9pZCBoYXN3ZWxsX21vZGVzZXRfZ2xv YmFsX3BpcGVzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4+ICsgICAgICAgICAgICAgICAgICAg ICB1bnNpZ25lZCAqcHJlcGFyZV9waXBlcykKPj4gK3sKPj4gKyAgICBzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+PiArICAgIHN0cnVjdCBpbnRl bF9jcnRjICpjcnRjOwo+PiArICAgIGludCBtYXhfcGl4ZWxfcmF0ZSA9IGlsa19tYXhfcGl4ZWxf cmF0ZShkZXZfcHJpdik7Cj4+ICsKPj4gKyAgICBpZiAoaGFzd2VsbF9jYWxjX2NkY2xrKGRldl9w cml2LCBtYXhfcGl4ZWxfcmF0ZSkgPT0KPj4gKyAgICAgICAgZGV2X3ByaXYtPmNkY2xrX2ZyZXEp Cj4+ICsgICAgICAgIHJldHVybjsKPj4gKwo+PiArICAgIC8qIGRpc2FibGUvZW5hYmxlIGFsbCBj dXJyZW50bHkgYWN0aXZlIHBpcGVzIHdoaWxlIHdlIGNoYW5nZSAKPj4gY2RjbGsgKi8KPj4gKyAg ICBmb3JfZWFjaF9pbnRlbF9jcnRjKGRldiwgY3J0YykKPj4gKyAgICAgICAgaWYgKGNydGMtPmJh c2UuZW5hYmxlZCkKPj4gKyAgICAgICAgICAgICpwcmVwYXJlX3BpcGVzIHw9IDEgPDwgY3J0Yy0+ cGlwZTsKPj4gK30KPj4gKwo+PiArc3RhdGljIHZvaWQgaGFzd2VsbF9tb2Rlc2V0X2dsb2JhbF9y ZXNvdXJjZXMoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgCj4+ICpzdGF0ZSkKPj4gK3sKPj4gKyAg ICBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gc3RhdGUtPmRldjsKPj4gKyAgICBzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+PiArICAgIGludCBt YXhfcGl4ZWxfcmF0ZSA9IGlsa19tYXhfcGl4ZWxfcmF0ZShkZXZfcHJpdik7Cj4+ICsgICAgaW50 IHJlcV9jZGNsayA9IGhhc3dlbGxfY2FsY19jZGNsayhkZXZfcHJpdiwgbWF4X3BpeGVsX3JhdGUp Owo+PiArCj4+ICsgICAgaWYgKHJlcV9jZGNsayAhPSBkZXZfcHJpdi0+Y2RjbGtfZnJlcSkKPj4g KyAgICAgICAgaGFzd2VsbF9zZXRfY2RjbGsoZGV2LCByZXFfY2RjbGspOwo+PiArCj4+ICsgICAg aWYgKHJlcV9jZGNsayAhPSBkZXZfcHJpdi0+Y2RjbGtfZnJlcSkgewo+PiArICAgICAgICAvKgo+ PiArICAgICAgICAgKiBGSVhNRTogV2UgY2FuIGVuZCB1cCBoZXJlIHdpdGggYWxsIHBvd2VyIGRv bWFpbnMgb2ZmLCB5ZXQKPj4gKyAgICAgICAgICogd2l0aCBhIENEQ0xLIGZyZXF1ZW5jeSBvdGhl ciB0aGFuIHRoZSBtaW5pbXVtLiBUbyBhY2NvdW50Cj4+ICsgICAgICAgICAqIGZvciB0aGlzIHRh a2UgdGhlIFBJUEUtQSBwb3dlciBkb21haW4sIHdoaWNoIGNvdmVycyB0aGUgSFcKPj4gKyAgICAg ICAgICogYmxvY2tzIG5lZWRlZCBmb3IgdGhlIGZvbGxvd2luZyBwcm9ncmFtbWluZy4gVGhpcyBj YW4gYmUKPj4gKyAgICAgICAgICogcmVtb3ZlZCBvbmNlIGl0J3MgZ3VhcmFudGVlZCB0aGF0IHdl IGdldCBoZXJlIGVpdGhlciB3aXRoCj4+ICsgICAgICAgICAqIHRoZSBtaW5pbXVtIENEQ0xLIHNl dCwgb3IgdGhlIHJlcXVpcmVkIHBvd2VyIGRvbWFpbnMKPj4gKyAgICAgICAgICogZW5hYmxlZC4K Pj4gKyAgICAgICAgICovCj4+ICsgICAgICAgIGludGVsX2Rpc3BsYXlfcG93ZXJfZ2V0KGRldl9w cml2LCBQT1dFUl9ET01BSU5fUElQRV9BKTsKPj4gKwo+PiArICAgICAgICBoYXN3ZWxsX3NldF9j ZGNsayhkZXYsIHJlcV9jZGNsayk7Cj4+ICsKPj4gKyAgICAgICAgdmx2X3Byb2dyYW1fcGZpX2Ny ZWRpdHMoZGV2X3ByaXYpOwo+PiArCj4+ICsgICAgICAgIGludGVsX2Rpc3BsYXlfcG93ZXJfcHV0 KGRldl9wcml2LCBQT1dFUl9ET01BSU5fUElQRV9BKTsKPj4gKyAgICB9Cj4+ICsKPj4gK30KPj4g Kwo+PiAgIHZvaWQgaHN3X2Rpc2FibGVfcGM4KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikKPj4gICB7Cj4+ICAgICAgIHN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBkZXZfcHJpdi0+ ZGV2Owo+PiBAQCAtODc5Miw2ICs4OTM5LDggQEAgdm9pZCBoc3dfZGlzYWJsZV9wYzgoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgCj4+ICpkZXZfcHJpdikKPj4gICAgICAgaW50ZWxfcHJlcGFyZV9k ZGkoZGV2KTsKPj4gICB9Cj4+ICAgKwo+PiArCj4+ICAgc3RhdGljIGludCBoYXN3ZWxsX2NydGNf Y29tcHV0ZV9jbG9jayhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPj4gICAgICAgICAgICAgICAg ICAgICAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4+ICAgewo+PiBA QCAtMTE4NjYsOCArMTIwMTUsMTEgQEAgc3RhdGljIGludCBfX2ludGVsX3NldF9tb2RlKHN0cnVj dCBkcm1fY3J0YyAKPj4gKmNydGMsCj4+ICAgICAgICAqIG1vZGUgc2V0IG9uIHRoaXMgY3J0Yy4g IEZvciBvdGhlciBjcnRjcyB3ZSBuZWVkIHRvIHVzZSB0aGUKPj4gICAgICAgICogYWRqdXN0ZWRf bW9kZSBiaXRzIGluIHRoZSBjcnRjIGRpcmVjdGx5Lgo+PiAgICAgICAgKi8KPj4gLSAgICBpZiAo SVNfVkFMTEVZVklFVyhkZXYpKSB7Cj4+IC0gICAgICAgIHZhbGxleXZpZXdfbW9kZXNldF9nbG9i YWxfcGlwZXMoZGV2LCAmcHJlcGFyZV9waXBlcyk7Cj4+ICsgICAgaWYgKElTX1ZBTExFWVZJRVco ZGV2KSB8fCBJU19IQVNXRUxMKGRldikpIHsKPj4gKyAgICAgICAgaWYgKElTX1ZBTExFWVZJRVco ZGV2KSkKPj4gKyAgICAgICAgICAgIHZhbGxleXZpZXdfbW9kZXNldF9nbG9iYWxfcGlwZXMoZGV2 LCAmcHJlcGFyZV9waXBlcyk7Cj4+ICsgICAgICAgIGVsc2UKPj4gKyAgICAgICAgICAgIGhhc3dl bGxfbW9kZXNldF9nbG9iYWxfcGlwZXMoZGV2LCAmcHJlcGFyZV9waXBlcyk7Cj4+ICAgICAgICAg ICAgIC8qIG1heSBoYXZlIGFkZGVkIG1vcmUgdG8gcHJlcGFyZV9waXBlcyB0aGFuIHdlIHNob3Vs ZCAqLwo+PiAgICAgICAgICAgcHJlcGFyZV9waXBlcyAmPSB+ZGlzYWJsZV9waXBlczsKPj4gQEAg LTEzODkyLDYgKzE0MDQ0LDkgQEAgc3RhdGljIHZvaWQgaW50ZWxfaW5pdF9kaXNwbGF5KHN0cnVj dCAKPj4gZHJtX2RldmljZSAqZGV2KQo+PiAgICAgICAgICAgZGV2X3ByaXYtPmRpc3BsYXkuZmRp X2xpbmtfdHJhaW4gPSBpdmJfbWFudWFsX2ZkaV9saW5rX3RyYWluOwo+PiAgICAgICB9IGVsc2Ug aWYgKElTX0hBU1dFTEwoZGV2KSB8fCBJU19CUk9BRFdFTEwoZGV2KSkgewo+PiAgICAgICAgICAg ZGV2X3ByaXYtPmRpc3BsYXkuZmRpX2xpbmtfdHJhaW4gPSBoc3dfZmRpX2xpbmtfdHJhaW47Cj4+ ICsgICAgICAgIGlmIChJU19IQVNXRUxMKGRldikpCj4+ICsgICAgICAgICAgICBkZXZfcHJpdi0+ ZGlzcGxheS5tb2Rlc2V0X2dsb2JhbF9yZXNvdXJjZXMgPQo+PiArICAgICAgICAgICAgICAgIGhh c3dlbGxfbW9kZXNldF9nbG9iYWxfcmVzb3VyY2VzOwo+PiAgICAgICB9IGVsc2UgaWYgKElTX1ZB TExFWVZJRVcoZGV2KSkgewo+PiAgICAgICAgICAgZGV2X3ByaXYtPmRpc3BsYXkubW9kZXNldF9n bG9iYWxfcmVzb3VyY2VzID0KPj4gICAgICAgICAgICAgICB2YWxsZXl2aWV3X21vZGVzZXRfZ2xv YmFsX3Jlc291cmNlczsKPgo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+IEludGVsLWdmeEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKPiBodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vaW50ZWwtZ2Z4CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdm eAo=