From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chon Ming Lee Subject: [PATCH 1/2] drm/i915/vlv: Make the vlv_dpio_read/vlv_dpio_write more PHY centric Date: Wed, 6 Nov 2013 14:36:35 +0800 Message-ID: <1383719795-28431-1-git-send-email-chon.ming.lee@intel.com> References: <1383102678-7150-1-git-send-email-chon.ming.lee@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [143.182.124.37]) by gabe.freedesktop.org (Postfix) with ESMTP id B9CD3F9E4C for ; Tue, 5 Nov 2013 22:38:24 -0800 (PST) In-Reply-To: <1383102678-7150-1-git-send-email-chon.ming.lee@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces@lists.freedesktop.org Errors-To: intel-gfx-bounces@lists.freedesktop.org To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org dmx2X2RwaW9fcmVhZC93cml0ZSBzaG91bGQgYmUgZGVzY3JpYmUgbW9yZSBpbiBQSFkgY2VudHJp YyBpbnN0ZWFkIG9mCmRpc3BsYXkgY29udHJvbGxlciBjZW50cmljLgpDcmVhdGUgYSBlbnVtIGRw aW9fY2hhbm5lbCBmb3IgY2hhbm5lbCBpbmRleCBhbmQgZW51bSBkcGlvX3BoeSBmb3IgUEhZCmlu ZGV4LiAgVGhpcyBzaG91bGQgYmV0dGVyIHRvIGdhdGhlciBmb3IgdXBjb21pbmcgcGxhdGZvcm0u Cgp2MjogUmViYXNlIHRoZSBjb2RlIGJhc2VkIG9uCmRybS9pOTE1L3ZsdjogRml4IHR5cG8gaW4g dGhlIERQSU8gcmVnaXN0ZXIgZGVmaW5lLgoKdjM6IFJlbmFtZSB2bHZfcGh5IHRvIGRwaW9fcGh5 X2lvc2ZfcG9ydCBhbmQgZGVmaW5lIGFkZGl0aW9uYWwgbWFjcm8KRFBJT19QSFksIGFuZCByZW1v dmUgdW5yZWxhdGVkIGNoYW5nZS4gKFZpbGxlKQoKU3VnZ2VzdGVkLWJ5OiBWaWxsZSBTeXJqw6Rs w6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBDaG9uIE1p bmcgTGVlIDxjaG9uLm1pbmcubGVlQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5oICAgICAgIHwgICAxMyArKysrKysrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X3JlZy5oICAgICAgIHwgICAgMyArKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rpc3BsYXkuYyAgfCAgIDE2ICsrKysrKysrKysrKy0tLS0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2RwLmMgICAgICAgfCAgICA4ICsrKystLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcnYuaCAgICAgIHwgICAgNyArKysrLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9oZG1pLmMgICAgIHwgICAgOCArKysrLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfc2lkZWJhbmQuYyB8ICAgMTMgKystLS0tLS0tLS0tLQogNyBmaWxlcyBjaGFuZ2VkLCA0MiBp bnNlcnRpb25zKCspLCAyNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRl eCAyYWE3MDUzLi45ZmFmYzM4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTg4LDYgKzg4 LDE4IEBAIGVudW0gcG9ydCB7CiB9OwogI2RlZmluZSBwb3J0X25hbWUocCkgKChwKSArICdBJykK IAorI2RlZmluZSBJOTE1X05VTV9QSFlTX1ZMViAxCisKK2VudW0gZHBpb19jaGFubmVsIHsKKwlE UElPX0NIMCwKKwlEUElPX0NIMQorfTsKKworZW51bSBkcGlvX3BoeSB7CisJRFBJT19QSFkwLAor CURQSU9fUEhZMQorfTsKKwogZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbiB7CiAJUE9X RVJfRE9NQUlOX1BJUEVfQSwKIAlQT1dFUl9ET01BSU5fUElQRV9CLApAQCAtMTQwMyw2ICsxNDE1 LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7CiAJaW50IG51bV9zaGFyZWRf ZHBsbDsKIAlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgc2hhcmVkX2RwbGxzW0k5MTVfTlVNX1BM TFNdOwogCXN0cnVjdCBpbnRlbF9kZGlfcGxscyBkZGlfcGxsczsKKwlpbnQgZHBpb19waHlfaW9z Zl9wb3J0W0k5MTVfTlVNX1BIWVNfVkxWXTsKIAogCS8qIFJlY2xvY2tpbmcgc3VwcG9ydCAqLwog CWJvb2wgcmVuZGVyX3JlY2xvY2tfYXZhaWw7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X3JlZy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAppbmRleCA0 ZGJjOGRhLi45NjljYTJlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Jl Zy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKQEAgLTQ1Nyw2ICs0NTcs OSBAQAogI2RlZmluZSBEUElPX1RYM19TV0lOR19DVEw0KHBpcGUpIF9QSVBFKHBpcGUsIF9EUElP X1RYM19TV0lOR19DVEw0X0EsIFwKIAkJCQkJX0RQSU9fVFgzX1NXSU5HX0NUTDRfQikKIAorI2Rl ZmluZSBEUElPX1BIWShwaXBlKQkJCSgocGlwZSkgPj4gMSkKKyNkZWZpbmUgRFBJT19QSFlfSU9T Rl9QT1JUKHBoeSkJCShkZXZfcHJpdi0+ZHBpb19waHlfaW9zZl9wb3J0W3BoeV0pCisKIC8qCiAg KiBQZXIgcGlwZS9QTEwgRFBJTyByZWdzCiAgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3Bs YXkuYwppbmRleCA0OGY0OTkwLi5iMWQyMGI2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jCkBAIC0xMzYxLDYgKzEzNjEsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9pbml0X2RwaW8o c3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlpZiAoIUlTX1ZBTExFWVZJRVcoZGV2KSkKIAkJcmV0 dXJuOwogCisJRFBJT19QSFlfSU9TRl9QT1JUKERQSU9fUEhZMCkgPSBJT1NGX1BPUlRfRFBJTzsK IAkvKgogCSAqIEZyb20gVkxWMkEwX0RQX2VEUF9EUElPX2RyaXZlcl92Ymlvc19ub3Rlc18xMC5k b2N4IC0KIAkgKiAgNi4JRGUtYXNzZXJ0IGNtbl9yZXNldC9zaWRlX3Jlc2V0LiBTYW1lIGFzIFZM ViBYMC4KQEAgLTE0OTQsMTggKzE0OTUsMjUgQEAgc3RhdGljIHZvaWQgdmx2X2Rpc2FibGVfcGxs KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBwaXBlIHBpcGUpCiAJUE9T VElOR19SRUFEKERQTEwocGlwZSkpOwogfQogCi12b2lkIHZsdl93YWl0X3BvcnRfcmVhZHkoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBpbnQgcG9ydCkKK3ZvaWQgdmx2X3dhaXRf cG9ydF9yZWFkeShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJCXN0cnVjdCBp bnRlbF9kaWdpdGFsX3BvcnQgKmRwb3J0KQogewogCXUzMiBwb3J0X21hc2s7CiAKLQlpZiAoIXBv cnQpCisJc3dpdGNoIChkcG9ydC0+cG9ydCkgeworCWNhc2UgUE9SVF9COgogCQlwb3J0X21hc2sg PSBEUExMX1BPUlRCX1JFQURZX01BU0s7Ci0JZWxzZQorCQlicmVhazsKKwljYXNlIFBPUlRfQzoK IAkJcG9ydF9tYXNrID0gRFBMTF9QT1JUQ19SRUFEWV9NQVNLOworCQlicmVhazsKKwlkZWZhdWx0 OgorCQlCVUcoKTsKKwl9CiAKIAlpZiAod2FpdF9mb3IoKEk5MTVfUkVBRChEUExMKDApKSAmIHBv cnRfbWFzaykgPT0gMCwgMTAwMCkpCiAJCVdBUk4oMSwgInRpbWVkIG91dCB3YWl0aW5nIGZvciBw b3J0ICVjIHJlYWR5OiAweCUwOHhcbiIsCi0JCSAgICAgJ0InICsgcG9ydCwgSTkxNV9SRUFEKERQ TEwoMCkpKTsKKwkJICAgICAnQicgKyBkcG9ydC0+cG9ydCwgSTkxNV9SRUFEKERQTEwoMCkpKTsK IH0KIAogLyoqCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwppbmRleCBiY2JkYzdhLi5hZWE5ZTI4IDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RwLmMKQEAgLTE4MzksNyArMTgzOSw3IEBAIHN0YXRpYyB2b2lk IHZsdl9wcmVfZW5hYmxlX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQogCXN0cnVj dCBkcm1fZGV2aWNlICpkZXYgPSBlbmNvZGVyLT5iYXNlLmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwogCXN0cnVjdCBpbnRlbF9jcnRj ICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhlbmNvZGVyLT5iYXNlLmNydGMpOwotCWludCBw b3J0ID0gdmx2X2Rwb3J0X3RvX2NoYW5uZWwoZHBvcnQpOworCWVudW0gZHBpb19jaGFubmVsIHBv cnQgPSB2bHZfZHBvcnRfdG9fY2hhbm5lbChkcG9ydCk7CiAJaW50IHBpcGUgPSBpbnRlbF9jcnRj LT5waXBlOwogCXN0cnVjdCBlZHBfcG93ZXJfc2VxIHBvd2VyX3NlcTsKIAl1MzIgdmFsOwpAQCAt MTg2Niw3ICsxODY2LDcgQEAgc3RhdGljIHZvaWQgdmx2X3ByZV9lbmFibGVfZHAoc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIpCiAKIAlpbnRlbF9lbmFibGVfZHAoZW5jb2Rlcik7CiAKLQl2 bHZfd2FpdF9wb3J0X3JlYWR5KGRldl9wcml2LCBwb3J0KTsKKwl2bHZfd2FpdF9wb3J0X3JlYWR5 KGRldl9wcml2LCBkcG9ydCk7CiB9CiAKIHN0YXRpYyB2b2lkIHZsdl9kcF9wcmVfcGxsX2VuYWJs ZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKQEAgLTE4NzYsNyArMTg3Niw3IEBAIHN0 YXRpYyB2b2lkIHZsdl9kcF9wcmVfcGxsX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5j b2RlcikKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2 YXRlOwogCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0KIAkJdG9faW50ZWxfY3J0Yyhl bmNvZGVyLT5iYXNlLmNydGMpOwotCWludCBwb3J0ID0gdmx2X2Rwb3J0X3RvX2NoYW5uZWwoZHBv cnQpOworCWVudW0gZHBpb19jaGFubmVsIHBvcnQgPSB2bHZfZHBvcnRfdG9fY2hhbm5lbChkcG9y dCk7CiAJaW50IHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOwogCiAJLyogUHJvZ3JhbSBUeCBsYW5l IHJlc2V0cyB0byBkZWZhdWx0ICovCkBAIC0yMDMzLDcgKzIwMzMsNyBAQCBzdGF0aWMgdWludDMy X3QgaW50ZWxfdmx2X3NpZ25hbF9sZXZlbHMoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKIAl1 bnNpZ25lZCBsb25nIGRlbXBoX3JlZ192YWx1ZSwgcHJlZW1waF9yZWdfdmFsdWUsCiAJCXVuaXF0 cmFuc2NhbGVfcmVnX3ZhbHVlOwogCXVpbnQ4X3QgdHJhaW5fc2V0ID0gaW50ZWxfZHAtPnRyYWlu X3NldFswXTsKLQlpbnQgcG9ydCA9IHZsdl9kcG9ydF90b19jaGFubmVsKGRwb3J0KTsKKwllbnVt IGRwaW9fY2hhbm5lbCBwb3J0ID0gdmx2X2Rwb3J0X3RvX2NoYW5uZWwoZHBvcnQpOwogCWludCBw aXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKIAogCXN3aXRjaCAodHJhaW5fc2V0ICYgRFBfVFJBSU5f UFJFX0VNUEhBU0lTX01BU0spIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKaW5kZXggNmQ3MDFl Ny4uOTEzNGE1NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKQEAgLTQ5MCw5ICs0OTAsOSBA QCB2bHZfZHBvcnRfdG9fY2hhbm5lbChzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkcG9ydCkK IHsKIAlzd2l0Y2ggKGRwb3J0LT5wb3J0KSB7CiAJY2FzZSBQT1JUX0I6Ci0JCXJldHVybiAwOwor CQlyZXR1cm4gRFBJT19DSDA7CiAJY2FzZSBQT1JUX0M6Ci0JCXJldHVybiAxOworCQlyZXR1cm4g RFBJT19DSDE7CiAJZGVmYXVsdDoKIAkJQlVHKCk7CiAJfQpAQCAtNjM3LDcgKzYzNyw4IEBAIGVu dW0gdHJhbnNjb2RlciBpbnRlbF9waXBlX3RvX2NwdV90cmFuc2NvZGVyKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwKIHZvaWQgaW50ZWxfd2FpdF9mb3JfdmJsYW5rKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsIGludCBwaXBlKTsKIHZvaWQgaW50ZWxfd2FpdF9mb3JfcGlwZV9vZmYo c3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IHBpcGUpOwogaW50IGlyb25sYWtlX2dldF9sYW5l c19yZXF1aXJlZChpbnQgdGFyZ2V0X2Nsb2NrLCBpbnQgbGlua19idywgaW50IGJwcCk7Ci12b2lk IHZsdl93YWl0X3BvcnRfcmVhZHkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBp bnQgcG9ydCk7Cit2b2lkIHZsdl93YWl0X3BvcnRfcmVhZHkoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LAorCQkJIHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRwb3J0KTsKIGJv b2wgaW50ZWxfZ2V0X2xvYWRfZGV0ZWN0X3BpcGUoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5l Y3RvciwKIAkJCQlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSwKIAkJCQlzdHJ1Y3QgaW50 ZWxfbG9hZF9kZXRlY3RfcGlwZSAqb2xkKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2hkbWkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYwppbmRl eCA1MWE4MzM2Li5lZWFmNTMzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9oZG1pLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jCkBAIC0xMDgx LDcgKzEwODEsNyBAQCBzdGF0aWMgdm9pZCB2bHZfaGRtaV9wcmVfZW5hYmxlKHN0cnVjdCBpbnRl bF9lbmNvZGVyICplbmNvZGVyKQogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IGRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPQogCQl0 b19pbnRlbF9jcnRjKGVuY29kZXItPmJhc2UuY3J0Yyk7Ci0JaW50IHBvcnQgPSB2bHZfZHBvcnRf dG9fY2hhbm5lbChkcG9ydCk7CisJZW51bSBkcGlvX2NoYW5uZWwgcG9ydCA9IHZsdl9kcG9ydF90 b19jaGFubmVsKGRwb3J0KTsKIAlpbnQgcGlwZSA9IGludGVsX2NydGMtPnBpcGU7CiAJdTMyIHZh bDsKIApAQCAtMTEyNCw3ICsxMTI0LDcgQEAgc3RhdGljIHZvaWQgdmx2X2hkbWlfcHJlX2VuYWJs ZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKIAogCWludGVsX2VuYWJsZV9oZG1pKGVu Y29kZXIpOwogCi0Jdmx2X3dhaXRfcG9ydF9yZWFkeShkZXZfcHJpdiwgcG9ydCk7CisJdmx2X3dh aXRfcG9ydF9yZWFkeShkZXZfcHJpdiwgZHBvcnQpOwogfQogCiBzdGF0aWMgdm9pZCB2bHZfaGRt aV9wcmVfcGxsX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKQEAgLTExMzQs NyArMTEzNCw3IEBAIHN0YXRpYyB2b2lkIHZsdl9oZG1pX3ByZV9wbGxfZW5hYmxlKHN0cnVjdCBp bnRlbF9lbmNvZGVyICplbmNvZGVyKQogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPQog CQl0b19pbnRlbF9jcnRjKGVuY29kZXItPmJhc2UuY3J0Yyk7Ci0JaW50IHBvcnQgPSB2bHZfZHBv cnRfdG9fY2hhbm5lbChkcG9ydCk7CisJZW51bSBkcGlvX2NoYW5uZWwgcG9ydCA9IHZsdl9kcG9y dF90b19jaGFubmVsKGRwb3J0KTsKIAlpbnQgcGlwZSA9IGludGVsX2NydGMtPnBpcGU7CiAKIAlp ZiAoIUlTX1ZBTExFWVZJRVcoZGV2KSkKQEAgLTExNjksNyArMTE2OSw3IEBAIHN0YXRpYyB2b2lk IHZsdl9oZG1pX3Bvc3RfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKIAlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBlbmNvZGVyLT5iYXNlLmRldi0+ZGV2 X3ByaXZhdGU7CiAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPQogCQl0b19pbnRlbF9j cnRjKGVuY29kZXItPmJhc2UuY3J0Yyk7Ci0JaW50IHBvcnQgPSB2bHZfZHBvcnRfdG9fY2hhbm5l bChkcG9ydCk7CisJZW51bSBkcGlvX2NoYW5uZWwgcG9ydCA9IHZsdl9kcG9ydF90b19jaGFubmVs KGRwb3J0KTsKIAlpbnQgcGlwZSA9IGludGVsX2NydGMtPnBpcGU7CiAKIAkvKiBSZXNldCBsYW5l cyB0byBhdm9pZCBIRE1JIGZsaWNrZXIgKFZMViB3L2EpICovCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9zaWRlYmFuZC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfc2lkZWJhbmQuYwppbmRleCBkNDNlNDU3Li5jYzZmYmNkIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9zaWRlYmFuZC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3NpZGViYW5kLmMKQEAgLTE3NiwyNyArMTc2LDE4IEBAIHZvaWQgdmx2X2dwc19jb3Jl X3dyaXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTMyIHJlZywgdTMyIHZh bCkKIAkJCVBVTklUX09QQ09ERV9SRUdfV1JJVEUsIHJlZywgJnZhbCk7CiB9CiAKLXN0YXRpYyB1 MzIgdmx2X2dldF9waHlfcG9ydChlbnVtIHBpcGUgcGlwZSkKLXsKLQl1MzIgcG9ydCA9IElPU0Zf UE9SVF9EUElPOwotCi0JV0FSTl9PTiAoKHBpcGUgIT0gUElQRV9BKSAmJiAocGlwZSAhPSBQSVBF X0IpKTsKLQotCXJldHVybiBwb3J0OwotfQotCiB1MzIgdmx2X2RwaW9fcmVhZChzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcGlwZSBwaXBlLCBpbnQgcmVnKQogewogCXUz MiB2YWwgPSAwOwogCi0Jdmx2X3NpZGViYW5kX3J3KGRldl9wcml2LCBEUElPX0RFVkZOLCB2bHZf Z2V0X3BoeV9wb3J0KHBpcGUpLAorCXZsdl9zaWRlYmFuZF9ydyhkZXZfcHJpdiwgRFBJT19ERVZG TiwgRFBJT19QSFlfSU9TRl9QT1JUKERQSU9fUEhZKHBpcGUpKSwKIAkJCURQSU9fT1BDT0RFX1JF R19SRUFELCByZWcsICZ2YWwpOwogCXJldHVybiB2YWw7CiB9CiAKIHZvaWQgdmx2X2RwaW9fd3Jp dGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBpcGUgcGlwZSwgaW50 IHJlZywgdTMyIHZhbCkKIHsKLQl2bHZfc2lkZWJhbmRfcncoZGV2X3ByaXYsIERQSU9fREVWRk4s IHZsdl9nZXRfcGh5X3BvcnQocGlwZSksCisJdmx2X3NpZGViYW5kX3J3KGRldl9wcml2LCBEUElP X0RFVkZOLCBEUElPX1BIWV9JT1NGX1BPUlQoRFBJT19QSFkocGlwZSkpLAogCQkJRFBJT19PUENP REVfUkVHX1dSSVRFLCByZWcsICZ2YWwpOwogfQogCi0tIAoxLjcuNy42CgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0 CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=