From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 04/17] drm/i915: Add low level set of routines for programming PM IER/IIR/IMR register set Date: Mon, 11 Jul 2016 11:04:23 +0100 Message-ID: <57836F27.4080501@linux.intel.com> References: <1468158084-22028-1-git-send-email-akash.goel@intel.com> <1468158084-22028-5-git-send-email-akash.goel@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id ECF906E185 for ; Mon, 11 Jul 2016 10:04:27 +0000 (UTC) In-Reply-To: <1468158084-22028-5-git-send-email-akash.goel@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: akash.goel@intel.com, intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Ck9uIDEwLzA3LzE2IDE0OjQxLCBha2FzaC5nb2VsQGludGVsLmNvbSB3cm90ZToKPiBGcm9tOiBB a2FzaCBHb2VsIDxha2FzaC5nb2VsQGludGVsLmNvbT4KPgo+IFNvIGZhciBQTSBJRVIvSUlSL0lN UiByZWdpc3RlcnMgd2VyZSBiZWluZyB1c2VkIG9ubHkgZm9yIFR1cmJvIHJlbGF0ZWQKPiBpbnRl cnJ1cHRzLiBCdXQgaW50ZXJydXB0cyBjb21pbmcgZnJvbSBHdUMgYWxzbyB1c2UgdGhlIHNhbWUg c2V0Lgo+IEFzIGEgcHJlY3Vyc29yIHRvIHN1cHBvcnRpbmcgR3VDIGludGVycnVwdHMsIGFkZGVk IG5ldyBsb3cgbGV2ZWwgcm91dGluZXMKPiBzbyBhcyB0byBhbGxvdyBzaGFyaW5nIHRoZSBwcm9n cmFtbWluZyBvZiBQTSBJRVIvSUlSL0lNUiByZWdpc3RlcnMgYmV0d2Vlbgo+IFR1cmJvICYgR3VD Lgo+IEFsc28gc2ltaWxhciB0byBQTSBJTVIsIG1haW50YWluaW5nIGEgYml0bWFzayBmb3IgUE0g SUVSIHJlZ2lzdGVyLCB0byBhbGxvdwo+IGVhc3kgc2hhcmluZyBvZiBpdCBiZXR3ZWVuIFR1cmJv ICYgR3VDIHdpdGhvdXQgaW52b2x2aW5nIGEgcm13IG9wZXJhdGlvbi4KPgo+IHYyOgo+IC0gRm9y IGFwcHJvcHJpYXRlbmVzcyAmIGF2b2lkIGFueSBhbWJpZ3VpdHksIHJlbmFtZSBvbGQgZnVuY3Rp b25zCj4gICAgZW5hYmxlL2Rpc2FibGUgcG1faXJxIHRvIG1hc2svdW5tYXNrIHBtX2lycSBhbmQg cmVuYW1lIG5ldyBmdW5jdGlvbnMKPiAgICBlbmFibGUvZGlzYWJsZSBwbV9pbnRlcnJ1cHRzIHRv IGVuYWJsZS9kaXNhYmxlIHBtX2lycS4gKFR2cnRrbykKPiAtIFVzZSB1MzIgaW4gcGxhY2Ugb2Yg dWludDMyX3QuIChUdnJ0a28pCj4KPiB2MzoKPiAtIFJlbmFtZSB0aGUgZmllbGRzIHBtX2lycV9t YXNrICYgcG1faWVyX21hc2sgYW5kIGRvIHNvbWUgY2xlYW51cC4gKENocmlzKQo+IC0gUmViYXNl Lgo+Cj4gU3VnZ2VzdGVkLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51 az4KPiBTaWduZWQtb2ZmLWJ5OiBBa2FzaCBHb2VsIDxha2FzaC5nb2VsQGludGVsLmNvbT4KPiAt LS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICB8ICAzICstCj4g ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jICAgICAgICAgfCA3MSArKysrKysrKysr KysrKysrKysrKysrLS0tLS0tLS0tLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Ry di5oICAgICAgICB8ICAzICsrCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVm ZmVyLmMgfCAgNCArLQo+ICAgNCBmaWxlcyBjaGFuZ2VkLCA1NCBpbnNlcnRpb25zKCspLCAyNyBk ZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IGluZGV4IDQ0NzhjYzguLmMz YTU3OWYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBAQCAtMTc5MSw3ICsxNzkxLDgg QEAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgewo+ICAgCQl1MzIgZGVfaXJxX21hc2tbSTkxNV9N QVhfUElQRVNdOwo+ICAgCX07Cj4gICAJdTMyIGd0X2lycV9tYXNrOwo+IC0JdTMyIHBtX2lycV9t YXNrOwo+ICsJdTMyIHBtX2ltcjsKPiArCXUzMiBwbV9pZXI7Cj4gICAJdTMyIHBtX3Jwc19ldmVu dHM7Cj4gICAJdTMyIHBpcGVzdGF0X2lycV9tYXNrW0k5MTVfTUFYX1BJUEVTXTsKPgo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9pcnEuYwo+IGluZGV4IDFjMmFlYzMuLjI0YmJhZjcgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfaXJxLmMKPiBAQCAtMzAzLDE4ICszMDMsMTggQEAgc3RhdGljIHZvaWQgc25iX3Vw ZGF0ZV9wbV9pcnEoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+Cj4gICAJYXNz ZXJ0X3NwaW5fbG9ja2VkKCZkZXZfcHJpdi0+aXJxX2xvY2spOwo+Cj4gLQluZXdfdmFsID0gZGV2 X3ByaXYtPnBtX2lycV9tYXNrOwo+ICsJbmV3X3ZhbCA9IGRldl9wcml2LT5wbV9pbXI7Cj4gICAJ bmV3X3ZhbCAmPSB+aW50ZXJydXB0X21hc2s7Cj4gICAJbmV3X3ZhbCB8PSAofmVuYWJsZWRfaXJx X21hc2sgJiBpbnRlcnJ1cHRfbWFzayk7Cj4KPiAtCWlmIChuZXdfdmFsICE9IGRldl9wcml2LT5w bV9pcnFfbWFzaykgewo+IC0JCWRldl9wcml2LT5wbV9pcnFfbWFzayA9IG5ld192YWw7Cj4gLQkJ STkxNV9XUklURShnZW42X3BtX2ltcihkZXZfcHJpdiksIGRldl9wcml2LT5wbV9pcnFfbWFzayk7 Cj4gKwlpZiAobmV3X3ZhbCAhPSBkZXZfcHJpdi0+cG1faW1yKSB7Cj4gKwkJZGV2X3ByaXYtPnBt X2ltciA9IG5ld192YWw7Cj4gKwkJSTkxNV9XUklURShnZW42X3BtX2ltcihkZXZfcHJpdiksIGRl dl9wcml2LT5wbV9pbXIpOwo+ICAgCQlQT1NUSU5HX1JFQUQoZ2VuNl9wbV9pbXIoZGV2X3ByaXYp KTsKPiAgIAl9Cj4gICB9Cj4KPiAtdm9pZCBnZW42X2VuYWJsZV9wbV9pcnEoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LCB1aW50MzJfdCBtYXNrKQo+ICt2b2lkIGdlbjZfdW5tYXNr X3BtX2lycShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiBtYXNrKQo+ICAg ewo+ICAgCWlmIChXQVJOX09OKCFpbnRlbF9pcnFzX2VuYWJsZWQoZGV2X3ByaXYpKSkKPiAgIAkJ cmV0dXJuOwo+IEBAIC0zMjIsMjggKzMyMiw1NCBAQCB2b2lkIGdlbjZfZW5hYmxlX3BtX2lycShz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHVpbnQzMl90IG1hc2spCj4gICAJc25i X3VwZGF0ZV9wbV9pcnEoZGV2X3ByaXYsIG1hc2ssIG1hc2spOwo+ICAgfQo+Cj4gLXN0YXRpYyB2 b2lkIF9fZ2VuNl9kaXNhYmxlX3BtX2lycShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsCj4gLQkJCQkgIHVpbnQzMl90IG1hc2spCj4gK3N0YXRpYyB2b2lkIF9fZ2VuNl9tYXNrX3Bt X2lycShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiBtYXNrKQo+ICAgewo+ ICAgCXNuYl91cGRhdGVfcG1faXJxKGRldl9wcml2LCBtYXNrLCAwKTsKPiAgIH0KPgo+IC12b2lk IGdlbjZfZGlzYWJsZV9wbV9pcnEoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1 aW50MzJfdCBtYXNrKQo+ICt2b2lkIGdlbjZfbWFza19wbV9pcnEoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LCB1MzIgbWFzaykKPiAgIHsKPiAgIAlpZiAoV0FSTl9PTighaW50ZWxf aXJxc19lbmFibGVkKGRldl9wcml2KSkpCj4gICAJCXJldHVybjsKPgo+IC0JX19nZW42X2Rpc2Fi bGVfcG1faXJxKGRldl9wcml2LCBtYXNrKTsKPiArCV9fZ2VuNl9tYXNrX3BtX2lycShkZXZfcHJp diwgbWFzayk7Cj4gICB9Cj4KPiAtdm9pZCBnZW42X3Jlc2V0X3Jwc19pbnRlcnJ1cHRzKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiArdm9pZCBnZW42X3Jlc2V0X3BtX2lpcihz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiByZXNldF9tYXNrKQo+ICAgewo+ ICAgCWk5MTVfcmVnX3QgcmVnID0gZ2VuNl9wbV9paXIoZGV2X3ByaXYpOwo+Cj4gLQlzcGluX2xv Y2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xvY2spOwo+IC0JSTkxNV9XUklURShyZWcsIGRldl9wcml2 LT5wbV9ycHNfZXZlbnRzKTsKPiAtCUk5MTVfV1JJVEUocmVnLCBkZXZfcHJpdi0+cG1fcnBzX2V2 ZW50cyk7Cj4gKwlhc3NlcnRfc3Bpbl9sb2NrZWQoJmRldl9wcml2LT5pcnFfbG9jayk7Cj4gKwo+ ICsJSTkxNV9XUklURShyZWcsIHJlc2V0X21hc2spOwo+ICsJSTkxNV9XUklURShyZWcsIHJlc2V0 X21hc2spOwo+ICAgCVBPU1RJTkdfUkVBRChyZWcpOwo+ICt9Cj4gKwo+ICt2b2lkIGdlbjZfZW5h YmxlX3BtX2lycShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiBlbmFibGVf bWFzaykKPiArewo+ICsJYXNzZXJ0X3NwaW5fbG9ja2VkKCZkZXZfcHJpdi0+aXJxX2xvY2spOwo+ ICsKPiArCWRldl9wcml2LT5wbV9pZXIgfD0gZW5hYmxlX21hc2s7Cj4gKwlJOTE1X1dSSVRFKGdl bjZfcG1faWVyKGRldl9wcml2KSwgZGV2X3ByaXYtPnBtX2llcik7Cj4gKwlnZW42X3VubWFza19w bV9pcnEoZGV2X3ByaXYsIGVuYWJsZV9tYXNrKTsKPiArCS8qIHVubWFza19wbV9pcnEgcHJvdmlk ZXMgYW4gaW1wbGljaXQgYmFycmllciAoUE9TVElOR19SRUFEKSAqLwo+ICt9Cj4gKwo+ICt2b2lk IGdlbjZfZGlzYWJsZV9wbV9pcnEoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1 MzIgZGlzYWJsZV9tYXNrKQo+ICt7Cj4gKwlhc3NlcnRfc3Bpbl9sb2NrZWQoJmRldl9wcml2LT5p cnFfbG9jayk7Cj4gKwo+ICsJZGV2X3ByaXYtPnBtX2llciAmPSB+ZGlzYWJsZV9tYXNrOwo+ICsJ X19nZW42X21hc2tfcG1faXJxKGRldl9wcml2LCBkaXNhYmxlX21hc2spOwo+ICsJSTkxNV9XUklU RShnZW42X3BtX2llcihkZXZfcHJpdiksIGRldl9wcml2LT5wbV9pZXIpOwo+ICsJLyogdGhvdWdo IGEgYmFycmllciBpcyBtaXNzaW5nIGhlcmUsIGJ1dCBkb24ndCByZWFsbHkgbmVlZCBhIG9uZSAq Lwo+ICt9Cj4gKwo+ICt2b2lkIGdlbjZfcmVzZXRfcnBzX2ludGVycnVwdHMoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICt7Cj4gKwlzcGluX2xvY2tfaXJxKCZkZXZfcHJpdi0+ aXJxX2xvY2spOwo+ICsJZ2VuNl9yZXNldF9wbV9paXIoZGV2X3ByaXYsIGRldl9wcml2LT5wbV9y cHNfZXZlbnRzKTsKPiAgIAlkZXZfcHJpdi0+cnBzLnBtX2lpciA9IDA7Cj4gICAJc3Bpbl91bmxv Y2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xvY2spOwo+ICAgfQo+IEBAIC0zNTQsOCArMzgwLDYgQEAg dm9pZCBnZW42X2VuYWJsZV9ycHNfaW50ZXJydXB0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpCj4gICAJV0FSTl9PTl9PTkNFKGRldl9wcml2LT5ycHMucG1faWlyKTsKPiAgIAlX QVJOX09OX09OQ0UoSTkxNV9SRUFEKGdlbjZfcG1faWlyKGRldl9wcml2KSkgJiBkZXZfcHJpdi0+ cG1fcnBzX2V2ZW50cyk7Cj4gICAJZGV2X3ByaXYtPnJwcy5pbnRlcnJ1cHRzX2VuYWJsZWQgPSB0 cnVlOwo+IC0JSTkxNV9XUklURShnZW42X3BtX2llcihkZXZfcHJpdiksIEk5MTVfUkVBRChnZW42 X3BtX2llcihkZXZfcHJpdikpIHwKPiAtCQkJCWRldl9wcml2LT5wbV9ycHNfZXZlbnRzKTsKPiAg IAlnZW42X2VuYWJsZV9wbV9pcnEoZGV2X3ByaXYsIGRldl9wcml2LT5wbV9ycHNfZXZlbnRzKTsK Pgo+ICAgCXNwaW5fdW5sb2NrX2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsKPiBAQCAtMzczLDkg KzM5Nyw3IEBAIHZvaWQgZ2VuNl9kaXNhYmxlX3Jwc19pbnRlcnJ1cHRzKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdikKPgo+ICAgCUk5MTVfV1JJVEUoR0VONl9QTUlOVFJNU0ssIGdl bjZfc2FuaXRpemVfcnBzX3BtX21hc2soZGV2X3ByaXYsIH4wKSk7Cj4KPiAtCV9fZ2VuNl9kaXNh YmxlX3BtX2lycShkZXZfcHJpdiwgZGV2X3ByaXYtPnBtX3Jwc19ldmVudHMpOwo+IC0JSTkxNV9X UklURShnZW42X3BtX2llcihkZXZfcHJpdiksIEk5MTVfUkVBRChnZW42X3BtX2llcihkZXZfcHJp dikpICYKPiAtCQkJCX5kZXZfcHJpdi0+cG1fcnBzX2V2ZW50cyk7Cj4gKwlnZW42X2Rpc2FibGVf cG1faXJxKGRldl9wcml2LCBkZXZfcHJpdi0+cG1fcnBzX2V2ZW50cyk7Cj4KPiAgIAlzcGluX3Vu bG9ja19pcnEoJmRldl9wcml2LT5pcnFfbG9jayk7Cj4gICAJc3luY2hyb25pemVfaXJxKGRldl9w cml2LT5kcm0uaXJxKTsKPiBAQCAtMTA4Niw3ICsxMTA4LDcgQEAgc3RhdGljIHZvaWQgZ2VuNl9w bV9ycHNfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCj4gICAJcG1faWlyID0gZGV2X3By aXYtPnJwcy5wbV9paXI7Cj4gICAJZGV2X3ByaXYtPnJwcy5wbV9paXIgPSAwOwo+ICAgCS8qIE1h a2Ugc3VyZSBub3QgdG8gY29ycnVwdCBQTUlNUiBzdGF0ZSB1c2VkIGJ5IHJpbmdidWZmZXIgb24g R0VONiAqLwo+IC0JZ2VuNl9lbmFibGVfcG1faXJxKGRldl9wcml2LCBkZXZfcHJpdi0+cG1fcnBz X2V2ZW50cyk7Cj4gKwlnZW42X3VubWFza19wbV9pcnEoZGV2X3ByaXYsIGRldl9wcml2LT5wbV9y cHNfZXZlbnRzKTsKPiAgIAljbGllbnRfYm9vc3QgPSBkZXZfcHJpdi0+cnBzLmNsaWVudF9ib29z dDsKPiAgIAlkZXZfcHJpdi0+cnBzLmNsaWVudF9ib29zdCA9IGZhbHNlOwo+ICAgCXNwaW5fdW5s b2NrX2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsKPiBAQCAtMTU4Niw3ICsxNjA4LDcgQEAgc3Rh dGljIHZvaWQgZ2VuNl9ycHNfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LCB1MzIgcG1faWlyKQo+ICAgewo+ICAgCWlmIChwbV9paXIgJiBkZXZfcHJpdi0+cG1f cnBzX2V2ZW50cykgewo+ICAgCQlzcGluX2xvY2soJmRldl9wcml2LT5pcnFfbG9jayk7Cj4gLQkJ Z2VuNl9kaXNhYmxlX3BtX2lycShkZXZfcHJpdiwgcG1faWlyICYgZGV2X3ByaXYtPnBtX3Jwc19l dmVudHMpOwo+ICsJCWdlbjZfbWFza19wbV9pcnEoZGV2X3ByaXYsIHBtX2lpciAmIGRldl9wcml2 LT5wbV9ycHNfZXZlbnRzKTsKPiAgIAkJaWYgKGRldl9wcml2LT5ycHMuaW50ZXJydXB0c19lbmFi bGVkKSB7Cj4gICAJCQlkZXZfcHJpdi0+cnBzLnBtX2lpciB8PSBwbV9paXIgJiBkZXZfcHJpdi0+ cG1fcnBzX2V2ZW50czsKPiAgIAkJCXNjaGVkdWxlX3dvcmsoJmRldl9wcml2LT5ycHMud29yayk7 Cj4gQEAgLTM2MDUsOCArMzYyNyw4IEBAIHN0YXRpYyB2b2lkIGdlbjVfZ3RfaXJxX3Bvc3RpbnN0 YWxsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gICAJCWlmIChIQVNfVkVCT1goZGV2KSkKPiAg IAkJCXBtX2lycXMgfD0gUE1fVkVCT1hfVVNFUl9JTlRFUlJVUFQ7Cj4KPiAtCQlkZXZfcHJpdi0+ cG1faXJxX21hc2sgPSAweGZmZmZmZmZmOwo+IC0JCUdFTjVfSVJRX0lOSVQoR0VONl9QTSwgZGV2 X3ByaXYtPnBtX2lycV9tYXNrLCBwbV9pcnFzKTsKPiArCQlkZXZfcHJpdi0+cG1faW1yID0gMHhm ZmZmZmZmZjsKPiArCQlHRU41X0lSUV9JTklUKEdFTjZfUE0sIGRldl9wcml2LT5wbV9pbXIsIHBt X2lycXMpOwo+ICAgCX0KPiAgIH0KPgo+IEBAIC0zNzI2LDE0ICszNzQ4LDE1IEBAIHN0YXRpYyB2 b2lkIGdlbjhfZ3RfaXJxX3Bvc3RpbnN0YWxsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikKPiAgIAlpZiAoSEFTX0wzX0RQRihkZXZfcHJpdikpCj4gICAJCWd0X2ludGVycnVwdHNb MF0gfD0gR1RfUkVOREVSX0wzX1BBUklUWV9FUlJPUl9JTlRFUlJVUFQ7Cj4KPiAtCWRldl9wcml2 LT5wbV9pcnFfbWFzayA9IDB4ZmZmZmZmZmY7Cj4gKwlkZXZfcHJpdi0+cG1faWVyID0gMHgwOwo+ ICsJZGV2X3ByaXYtPnBtX2ltciA9IH5kZXZfcHJpdi0+cG1faWVyOwo+ICAgCUdFTjhfSVJRX0lO SVRfTkRYKEdULCAwLCB+Z3RfaW50ZXJydXB0c1swXSwgZ3RfaW50ZXJydXB0c1swXSk7Cj4gICAJ R0VOOF9JUlFfSU5JVF9ORFgoR1QsIDEsIH5ndF9pbnRlcnJ1cHRzWzFdLCBndF9pbnRlcnJ1cHRz WzFdKTsKPiAgIAkvKgo+ICAgCSAqIFJQUyBpbnRlcnJ1cHRzIHdpbGwgZ2V0IGVuYWJsZWQvZGlz YWJsZWQgb24gZGVtYW5kIHdoZW4gUlBTIGl0c2VsZgo+ICAgCSAqIGlzIGVuYWJsZWQvZGlzYWJs ZWQuCj4gICAJICovCj4gLQlHRU44X0lSUV9JTklUX05EWChHVCwgMiwgZGV2X3ByaXYtPnBtX2ly cV9tYXNrLCAwKTsKPiArCUdFTjhfSVJRX0lOSVRfTkRYKEdULCAyLCBkZXZfcHJpdi0+cG1faW1y LCBkZXZfcHJpdi0+cG1faWVyKTsKPiAgIAlHRU44X0lSUV9JTklUX05EWChHVCwgMywgfmd0X2lu dGVycnVwdHNbM10sIGd0X2ludGVycnVwdHNbM10pOwo+ICAgfQo+Cj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHJ2LmgKPiBpbmRleCA1NWFlYWYwLi5hZTZjNTM1IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHJ2LmgKPiBAQCAtMTA3Nyw2ICsxMDc3LDkgQEAgdm9pZCBpbnRlbF9jaGVja19wY2hfZmlm b191bmRlcnJ1bnMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiAgIC8qIGk5 MTVfaXJxLmMgKi8KPiAgIHZvaWQgZ2VuNV9lbmFibGVfZ3RfaXJxKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiwgdWludDMyX3QgbWFzayk7Cj4gICB2b2lkIGdlbjVfZGlzYWJsZV9n dF9pcnEoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1aW50MzJfdCBtYXNrKTsK PiArdm9pZCBnZW42X3Jlc2V0X3BtX2lpcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsIHUzMiBtYXNrKTsKPiArdm9pZCBnZW42X21hc2tfcG1faXJxKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiwgdTMyIG1hc2spOwo+ICt2b2lkIGdlbjZfdW5tYXNrX3BtX2lycShz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiBtYXNrKTsKPiAgIHZvaWQgZ2Vu Nl9lbmFibGVfcG1faXJxKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdWludDMy X3QgbWFzayk7Cj4gICB2b2lkIGdlbjZfZGlzYWJsZV9wbV9pcnEoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LCB1aW50MzJfdCBtYXNrKTsKPiAgIHZvaWQgZ2VuNl9yZXNldF9ycHNf aW50ZXJydXB0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKPiBpbmRleCA2MWUwMGJmLi43MzZkZGJhIDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwo+IEBAIC0xNzQxLDcg KzE3NDEsNyBAQCBoc3dfdmVib3hfaXJxX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmUpCj4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZW5naW5lLT5p OTE1Owo+Cj4gICAJSTkxNV9XUklURV9JTVIoZW5naW5lLCB+ZW5naW5lLT5pcnFfZW5hYmxlX21h c2spOwo+IC0JZ2VuNl9lbmFibGVfcG1faXJxKGRldl9wcml2LCBlbmdpbmUtPmlycV9lbmFibGVf bWFzayk7Cj4gKwlnZW42X3VubWFza19wbV9pcnEoZGV2X3ByaXYsIGVuZ2luZS0+aXJxX2VuYWJs ZV9tYXNrKTsKPiAgIH0KPgo+ICAgc3RhdGljIHZvaWQKPiBAQCAtMTc1MCw3ICsxNzUwLDcgQEAg aHN3X3ZlYm94X2lycV9kaXNhYmxlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAg IAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBlbmdpbmUtPmk5MTU7Cj4KPiAg IAlJOTE1X1dSSVRFX0lNUihlbmdpbmUsIH4wKTsKPiAtCWdlbjZfZGlzYWJsZV9wbV9pcnEoZGV2 X3ByaXYsIGVuZ2luZS0+aXJxX2VuYWJsZV9tYXNrKTsKPiArCWdlbjZfbWFza19wbV9pcnEoZGV2 X3ByaXYsIGVuZ2luZS0+aXJxX2VuYWJsZV9tYXNrKTsKPiAgIH0KPgo+ICAgc3RhdGljIHZvaWQK PgoKTG9va3MgT0suCgpSZXZpZXdlZC1ieTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGlu QGludGVsLmNvbT4KClJlZ2FyZHMsCgpUdnJ0a28KX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vaW50ZWwtZ2Z4Cg==