From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH 3/4] drm/i915: New offset for reading frequencies on CHV. Date: Mon, 15 Dec 2014 08:51:30 +0200 Message-ID: <87tx0xjthp.fsf@intel.com> References: <1418374096-26561-1-git-send-email-deepak.s@linux.intel.com> <1418374096-26561-3-git-send-email-deepak.s@linux.intel.com> <20141212190941.GB10649@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id E7FA16E05F for ; Sun, 14 Dec 2014 22:51:58 -0800 (PST) In-Reply-To: <20141212190941.GB10649@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ville =?utf-8?B?U3lyasOkbMOk?= , deepak.s@linux.intel.com Cc: daniel.vetter@ffwll.ch, intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCAxMiBEZWMgMjAxNCwgVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4 LmludGVsLmNvbT4gd3JvdGU6Cj4gT24gRnJpLCBEZWMgMTIsIDIwMTQgYXQgMDI6MTg6MTVQTSAr MDUzMCwgZGVlcGFrLnNAbGludXguaW50ZWwuY29tIHdyb3RlOgo+PiBGcm9tOiBEZWVwYWsgUyA8 ZGVlcGFrLnNAbGludXguaW50ZWwuY29tPgo+PiAKPj4gVXNlIG5ldyBTaWRlYmFuZCBvZmZzZXQg dG8gcmVhZCBtYXgvbWluL2dhdXIgZnJlcSBiYXNlZCBvbiB0aGUgU0tVIGl0Cj4+IGlzIHJ1bm5p bmcgb24uIEJhc2VkIG9uIHRoZSBOdW1iZXIgb2YgRVUsIHdlIHJlYWQgZGlmZmVyZW50IGJpdHMg dG8KPj4gaWRlbnRpZnkgdGhlIG1heCBmcmVxdWVuY2llcyBhdCB3aGljaCBzeXN0ZW0gY2FuIHJ1 bi4KPj4gCj4+IFNpZ25lZC1vZmYtYnk6IERlZXBhayBTIDxkZWVwYWsuc0BsaW51eC5pbnRlbC5j b20+Cj4+IC0tLQo+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICB8ICA0 ICstLQo+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCAgICAgICB8IDEyICsrKysr KysrCj4+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jICAgICAgIHwgNTIgKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0KPj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3NpZGViYW5kLmMgfCAgNCArLS0KPj4gIDQgZmlsZXMgY2hhbmdlZCwgNjEgaW5zZXJ0aW9u cygrKSwgMTEgZGVsZXRpb25zKC0pCj4+IAo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPj4gaW5k ZXggYjU4YmFkNC4uMDY5MGRmZiAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuaAo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4+IEBA IC0zMDE2LDggKzMwMTYsOCBAQCBpbnQgc2FuZHlicmlkZ2VfcGNvZGVfcmVhZChzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiBtYm94LCB1MzIgKnZhbAo+PiAgaW50IHNhbmR5 YnJpZGdlX3Bjb2RlX3dyaXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTMy IG1ib3gsIHUzMiB2YWwpOwo+PiAgCj4+ICAvKiBpbnRlbF9zaWRlYmFuZC5jICovCj4+IC11MzIg dmx2X3B1bml0X3JlYWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1OCBhZGRy KTsKPj4gLXZvaWQgdmx2X3B1bml0X3dyaXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwgdTggYWRkciwgdTMyIHZhbCk7Cj4+ICt1MzIgdmx2X3B1bml0X3JlYWQoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgYWRkcik7Cj4+ICt2b2lkIHZsdl9wdW5pdF93 cml0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiBhZGRyLCB1MzIgdmFs KTsKPj4gIHUzMiB2bHZfbmNfcmVhZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs IHU4IGFkZHIpOwo+PiAgdTMyIHZsdl9ncGlvX25jX3JlYWQoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LCB1MzIgcmVnKTsKPj4gIHZvaWQgdmx2X2dwaW9fbmNfd3JpdGUoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgcmVnLCB1MzIgdmFsKTsKPj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X3JlZy5oCj4+IGluZGV4IGI1N2NiYTMuLmY0MTI5MGMgMTAwNjQ0Cj4+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9yZWcuaAo+PiBAQCAtNjAyLDYgKzYwMiwxOCBAQCBlbnVtIHB1bml0X3Bvd2Vy X3dlbGwgewo+PiAgI2RlZmluZSBQVU5JVF9GVVNFX0JVUzIJCQkJMHhmNiAvKiBiaXRzIDQ3OjQw ICovCj4+ICAjZGVmaW5lIFBVTklUX0ZVU0VfQlVTMQkJCQkweGY1IC8qIGJpdHMgNTU6NDggKi8K Pj4gIAo+PiArI2RlZmluZSBGQl9HRlhfRk1BWF9BVF9WTUFYX0ZVU0UJCTB4MTM2Cj4+ICsjZGVm aW5lIEZCX0dGWF9GTUFYX0FUX1ZNQVhfRlVTRV9NQVNLCQkweGZmCj4+ICsjZGVmaW5lIEZCX0dG WF9GTUFYX0FUX1ZNQVhfMlNTNEVVX0ZVU0VfU0hJRlQJMjQKPj4gKyNkZWZpbmUgRkJfR0ZYX0ZN QVhfQVRfVk1BWF8yU1M2RVVfRlVTRV9TSElGVAkxNgo+PiArI2RlZmluZSBGQl9HRlhfRk1BWF9B VF9WTUFYXzJTUzhFVV9GVVNFX1NISUZUCTgKPj4gKwo+Cj4gVGhpcyBibGFuayBsaW5lIG1ha2Vz IG1lIHRoaW5rIEZCX0dGWF9HVUFSX0ZSRVFfRlVTRV9NQVNLIGlzbid0IHBhcnQgb2YKPiB0aGlz IHJlZ2lzdGVyLiBTbyBiZXN0IG5vdCBsZWF2ZSBzdWNoIGJsYW5rIGxpbmUgaGVyZS4KPgo+IEkg aGF2ZSAweDNjM2MzYzI4IGluIHRoaXMgcmVnaXN0ZXIsIHdoaWNoIG1hdGNoZXMgd2hhdCBJIGdl dCB1c2luZyB0aGUKPiBvbGQgbWV0aG9kLgo+Cj4+ICsjZGVmaW5lIEZCX0dGWF9HVUFSX0ZSRVFf RlVTRV9NQVNLCQkweGZmCj4+ICsKPj4gKyNkZWZpbmUgRkJfR0ZYX0ZNSU5fQVRfVk1JTl9GVVNF CQkweDEzNwo+PiArI2RlZmluZSBGQl9HRlhfRk1JTl9BVF9WTUlOX0ZVU0VfTUFTSwkJMHhmZgo+ PiArI2RlZmluZSBGQl9HRlhfRk1JTl9BVF9WTUlOX0ZVU0VfU0hJRlQJCTgKPgo+IEkgaGF2ZSAw eDY5ODQxNDI4IGhlcmUuIFRoZSBsb3cgOCBiaXRzIGxvb2sgbGlrZSBhbm90aGVyIGZyZXEgdmFs dWUuCj4gV2hhdCBpcyBpdD8KPgo+IEkgaGF2ZSBubyBkb2NzIGZvciB0aGlzIHN0dWZmIHNvIGNh bid0IHJlYWxseSByZXZpZXcgYXBhcnQgZnJvbSBsb29raW5nCj4gYXQgd2hhdCBteSBoYXJkd2Fy ZSByZXBvcnRzLgo+Cj4KPiBBY3R1YWxseSwgc2luY2UgYWxsIHRoZSB2YWx1ZXMgYXJlIDggYml0 cyBtYXliZSBpdCB3b3VsZCBiZSBuZWF0ZXIgdG8KPiBqdXN0Cj4gI2RlZmluZSBGQl9HRlhfRlJF UV9GVVNFX01BU0sgMHhmZgo+IGFuZCB1c2UgdGhhdCBldmVyeXdoZXJlIGluc3RlYWQgb2YgaGF2 aW5nIHRocmVlIGRpZmZlcmVudCBkZWZpbml0aW9ucwo+IGZvciB0aGUgc2FtZSAweGZmIHZhbHVl Lgo+Cj4+ICsKPj4gICNkZWZpbmUgUFVOSVRfR1BVX1NUQVRVU19SRUcJCQkweGRiCj4+ICAjZGVm aW5lIFBVTklUX0dQVV9TVEFUVVNfTUFYX0ZSRVFfU0hJRlQJMTYKPj4gICNkZWZpbmUgUFVOSVRf R1BVX1NUQVRVU19NQVhfRlJFUV9NQVNLCQkweGZmCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+ PiBpbmRleCAyYWNiM2RlLi43MWI4ZTJmIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9wbS5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMK Pj4gQEAgLTQzNDYsMTEgKzQzNDYsMjkgQEAgdm9pZCBnZW42X3VwZGF0ZV9yaW5nX2ZyZXEoc3Ry dWN0IGRybV9kZXZpY2UgKmRldikKPj4gIAo+PiAgc3RhdGljIGludCBjaGVycnl2aWV3X3Jwc19t YXhfZnJlcShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4+ICB7Cj4+ICsJc3Ry dWN0IGRybV9kZXZpY2UgKmRldiA9IGRldl9wcml2LT5kZXY7Cj4+ICsJc3RydWN0IGludGVsX2Rl dmljZV9pbmZvICppbmZvOwo+PiAgCXUzMiB2YWwsIHJwMDsKPj4gIAo+PiAtCXZhbCA9IHZsdl9w dW5pdF9yZWFkKGRldl9wcml2LCBQVU5JVF9HUFVfU1RBVFVTX1JFRyk7Cj4+IC0JcnAwID0gKHZh bCA+PiBQVU5JVF9HUFVfU1RBVFVTX01BWF9GUkVRX1NISUZUKSAmIFBVTklUX0dQVV9TVEFUVVNf TUFYX0ZSRVFfTUFTSzsKPj4gLQo+PiArCWluZm8gPSAoc3RydWN0IGludGVsX2RldmljZV9pbmZv ICopJmRldl9wcml2LT5pbmZvOwo+Cj4gUG9pbnRsZXNzIGNhc3QuIEFsc28gdGhlIGFzc2lnbm1l bnQgY291bGQgYmUgZG9uZSB3aGVuIGRlY2xhcmluZyBpbmZvLAo+IGFuZCB3ZSB1c3VhbGx5IHVz ZSBJTlRFTF9JTkZPKCkgdG8gZ2V0IGF0IGl0Lgo+Cj4+ICsKPj4gKwlpZiAoZGV2LT5wZGV2LT5y ZXZpc2lvbiA+PSAweDIwKSB7Cj4KPiBEbyB3ZSByZWFsbHkgbmVlZCB0aGlzIGNoZWNrPyBJIHdv dWxkIHRoaW5rIGl0IHdvdWxkIGJlIHVwIHRvIHRoZQo+IFB1bml0IGZpcm13YXJlIHZlcnNpb24g cmF0aGVyIHRoZSBzdGVwcGluZy4gTXkgQlNXIGhhcyBQQ0kgcmV2IDB4MTUsCj4gYnV0IHdpdGgg dGhlIGxhdGVzdCBCSU9TIGJvdGggZnVzZSByZWdpc3RlcnMgYWxyZWFkeSBjb250YWluIGNvcnJl Y3QKPiBsb29raW5nIGluZm9ybWF0aW9uLgo+Cj4+ICsJCXZhbCA9IHZsdl9wdW5pdF9yZWFkKGRl dl9wcml2LCBGQl9HRlhfRk1BWF9BVF9WTUFYX0ZVU0UpOwo+PiArCj4+ICsJCWlmIChpbmZvLT5l dV90b3RhbCA9PSA4KSAvKiAoMiAqIDQpIGNvbmZpZyAqLwo+PiArCQkJcnAwID0gKHZhbCA+PiBG Ql9HRlhfRk1BWF9BVF9WTUFYXzJTUzRFVV9GVVNFX1NISUZUKTsKPj4gKwkJZWxzZSBpZiAoaW5m by0+ZXVfdG90YWwgPT0gMTIpIC8qICgyICogNikgY29uZmlnICovCj4+ICsJCQlycDAgPSAodmFs ID4+IEZCX0dGWF9GTUFYX0FUX1ZNQVhfMlNTNkVVX0ZVU0VfU0hJRlQpOwo+PiArCQllbHNlIGlm IChpbmZvLT5ldV90b3RhbCA9PSAxNikgLyogKDIgKiA4KSBjb25maWcgKi8KPj4gKwkJCXJwMCA9 ICh2YWwgPj4gRkJfR0ZYX0ZNQVhfQVRfVk1BWF8yU1M4RVVfRlVTRV9TSElGVCk7Cj4+ICsJCWVs c2UgLyogU2V0dGluZyAoMiAqIDgpIE1pbiBSUDAgZm9yIGFueSBvdGhlciBjb21iaW5hdGlvbiAq Lwo+PiArCQkJcnAwID0gKHZhbCA+PiBGQl9HRlhfRk1BWF9BVF9WTUFYXzJTUzhFVV9GVVNFX1NI SUZUKTsKPgo+ICdzd2l0Y2ggKElOVEVMX0lORk8oZGV2KS0+ZXVfdG90YWwpJyBwZXJoYXBzPwo+ Cj4+ICsJCXJwMCA9IChycDAgJiBGQl9HRlhfRk1BWF9BVF9WTUFYX0ZVU0VfTUFTSyk7Cj4+ICsJ fSBlbHNlIHsgLyogRm9yIHByZS1wcm9kdWN0aW9uIGhhcmR3YXJlICovCj4+ICsJCXZhbCA9IHZs dl9wdW5pdF9yZWFkKGRldl9wcml2LCBQVU5JVF9HUFVfU1RBVFVTX1JFRyk7Cj4+ICsJCXJwMCA9 ICh2YWwgPj4gUFVOSVRfR1BVX1NUQVRVU19NQVhfRlJFUV9TSElGVCkgJgo+PiArCQkgICAgICAg UFVOSVRfR1BVX1NUQVRVU19NQVhfRlJFUV9NQVNLOwo+PiArCX0KPj4gIAlyZXR1cm4gcnAwOwo+ PiAgfQo+PiAgCj4+IEBAIC00MzY2LDIwICs0Mzg0LDQwIEBAIHN0YXRpYyBpbnQgY2hlcnJ5dmll d19ycHNfcnBlX2ZyZXEoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+PiAgCj4+ ICBzdGF0aWMgaW50IGNoZXJyeXZpZXdfcnBzX2d1YXJfZnJlcShzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYpCj4+ICB7Cj4+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGRldl9w cml2LT5kZXY7Cj4+ICsJc3RydWN0IGludGVsX2RldmljZV9pbmZvICppbmZvOwo+PiAgCXUzMiB2 YWwsIHJwMTsKPj4gIAo+PiAtCXZhbCA9IHZsdl9wdW5pdF9yZWFkKGRldl9wcml2LCBQVU5JVF9S RUdfR1BVX0ZSRVFfU1RTKTsKPj4gLQlycDEgPSAodmFsID4+IFBVTklUX0dQVV9TVEFUVVNfTUFY X0ZSRVFfU0hJRlQpICYgUFVOSVRfR1BVX1NUQVRVU19NQVhfRlJFUV9NQVNLOwo+PiArCWluZm8g PSAoc3RydWN0IGludGVsX2RldmljZV9pbmZvICopJmRldl9wcml2LT5pbmZvOwo+Cj4gVW51c2Vk IGhlcmUuCj4KPj4gIAo+PiArCWlmIChkZXYtPnBkZXYtPnJldmlzaW9uID49IDB4MjApIHsKPgo+ PiArCQl2YWwgPSB2bHZfcHVuaXRfcmVhZChkZXZfcHJpdiwgRkJfR0ZYX0ZNQVhfQVRfVk1BWF9G VVNFKTsKPj4gKwkJcnAxID0gKHZhbCAmIEZCX0dGWF9HVUFSX0ZSRVFfRlVTRV9NQVNLKTsKPj4g Kwl9IGVsc2UgeyAvKiBGb3IgcHJlLXByb2R1Y3Rpb24gaGFyZHdhcmUgKi8KPj4gKwkJdmFsID0g dmx2X3B1bml0X3JlYWQoZGV2X3ByaXYsIFBVTklUX1JFR19HUFVfRlJFUV9TVFMpOwo+PiArCQly cDEgPSAoKHZhbCA+PiBQVU5JVF9HUFVfU1RBVFVTX01BWF9GUkVRX1NISUZUKSAmCj4+ICsJCSAg ICAgICBQVU5JVF9HUFVfU1RBVFVTX01BWF9GUkVRX01BU0spOwo+PiArCX0KPj4gIAlyZXR1cm4g cnAxOwo+PiAgfQo+PiAgCj4+ICBzdGF0aWMgaW50IGNoZXJyeXZpZXdfcnBzX21pbl9mcmVxKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPj4gIHsKPj4gKwlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2ID0gZGV2X3ByaXYtPmRldjsKPj4gKwlzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8g KmluZm87Cj4+ICAJdTMyIHZhbCwgcnBuOwo+PiArCWluZm8gPSAoc3RydWN0IGludGVsX2Rldmlj ZV9pbmZvICopJmRldl9wcml2LT5pbmZvOwo+Cj4gVW51c2VkLgo+Cj4+ICsKPj4gKwlpZiAoZGV2 LT5wZGV2LT5yZXZpc2lvbiA+PSAweDIwKSB7Cj4+ICsJCXZhbCA9IHZsdl9wdW5pdF9yZWFkKGRl dl9wcml2LCBGQl9HRlhfRk1JTl9BVF9WTUlOX0ZVU0UpOwo+PiArCQlycG4gPSAoKHZhbCA+PiBG Ql9HRlhfRk1JTl9BVF9WTUlOX0ZVU0VfU0hJRlQpICYKPj4gKwkJICAgICAgIEZCX0dGWF9GTUlO X0FUX1ZNSU5fRlVTRV9NQVNLKTsKPj4gKwl9IGVsc2UgeyAvKiBGb3IgcHJlLXByb2R1Y3Rpb24g aGFyZHdhcmUgKi8KPj4gKwkJdmFsID0gdmx2X3B1bml0X3JlYWQoZGV2X3ByaXYsIFBVTklUX0dQ VV9TVEFUVVNfUkVHKTsKPj4gKwkJcnBuID0gKCh2YWwgPj4gUFVOSVRfR1BVX1NUQVRJU19HRlhf TUlOX0ZSRVFfU0hJRlQpICYKPj4gKwkJICAgICAgIFBVTklUX0dQVV9TVEFUVVNfR0ZYX01JTl9G UkVRX01BU0spOwo+PiArCX0KPj4gIAo+PiAtCXZhbCA9IHZsdl9wdW5pdF9yZWFkKGRldl9wcml2 LCBQVU5JVF9HUFVfU1RBVFVTX1JFRyk7Cj4+IC0JcnBuID0gKHZhbCA+PiBQVU5JVF9HUFVfU1RB VElTX0dGWF9NSU5fRlJFUV9TSElGVCkgJiBQVU5JVF9HUFVfU1RBVFVTX0dGWF9NSU5fRlJFUV9N QVNLOwo+PiAgCXJldHVybiBycG47Cj4+ICB9Cj4+ICAKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3NpZGViYW5kLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9zaWRlYmFuZC5jCj4+IGluZGV4IDAxZDg0MWUuLjNjNDJlZWYgMTAwNjQ0Cj4+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3NpZGViYW5kLmMKPj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfc2lkZWJhbmQuYwo+PiBAQCAtNzUsNyArNzUsNyBAQCBzdGF0aWMgaW50 IHZsdl9zaWRlYmFuZF9ydyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiBk ZXZmbiwKPj4gIAlyZXR1cm4gMDsKPj4gIH0KPj4gIAo+PiAtdTMyIHZsdl9wdW5pdF9yZWFkKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTggYWRkcikKPj4gK3UzMiB2bHZfcHVu aXRfcmVhZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiBhZGRyKQo+Cj4g R29vZCB0aGluZyB5b3UgaGFkIHRvIHBhc3MgYSBjb25zdGFudC4gT3RoZXJ3aXNlIHRoaXMgY291 bGQgaGF2ZSBjYXVzZWQKPiBxdWl0ZSBhIGJpdCBvZiBoZWFkIHNjcmF0Y2hpbmcgZm9yIHlvdSA7 KQoKVGhpcyBpcyB0aGUga2luZCBvZiB0aGluZyB0aGF0IHJlYWxseSBzaG91bGQgYmUgYSBzZXBh cmF0ZSBmaXguIElmLCBmb3IKYW55IHJlYXNvbiwgd2UgbmVlZCB0byByZXZlcnQgdGhlIHJlc3Qs IHdlJ2xsIHN0aWxsIHdhbnQgdGhpcy4KCkJSLApKYW5pLgoKPgo+PiAgewo+PiAgCXUzMiB2YWwg PSAwOwo+PiAgCj4+IEBAIC04OSw3ICs4OSw3IEBAIHUzMiB2bHZfcHVuaXRfcmVhZChzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHU4IGFkZHIpCj4+ICAJcmV0dXJuIHZhbDsKPj4g IH0KPj4gIAo+PiAtdm9pZCB2bHZfcHVuaXRfd3JpdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LCB1OCBhZGRyLCB1MzIgdmFsKQo+PiArdm9pZCB2bHZfcHVuaXRfd3JpdGUoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgYWRkciwgdTMyIHZhbCkKPj4gIHsK Pj4gIAlXQVJOX09OKCFtdXRleF9pc19sb2NrZWQoJmRldl9wcml2LT5ycHMuaHdfbG9jaykpOwo+ PiAgCj4+IC0tIAo+PiAxLjkuMQo+Cj4gLS0gCj4gVmlsbGUgU3lyasOkbMOkCj4gSW50ZWwgT1RD Cj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBJbnRl bC1nZnggbWFpbGluZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0 dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKCi0t IApKYW5pIE5pa3VsYSwgSW50ZWwgT3BlbiBTb3VyY2UgVGVjaG5vbG9neSBDZW50ZXIKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxp bmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK