From mboxrd@z Thu Jan 1 00:00:00 1970 From: ville.syrjala@linux.intel.com Subject: [PATCH 04/25] drm/i915: Use vblank notifier for IPS Date: Wed, 18 Jun 2014 20:58:37 +0300 Message-ID: <1403114338-30513-5-git-send-email-ville.syrjala@linux.intel.com> References: <1403114338-30513-1-git-send-email-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 384236E6F9 for ; Wed, 18 Jun 2014 10:59:16 -0700 (PDT) In-Reply-To: <1403114338-30513-1-git-send-email-ville.syrjala@linux.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 RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KCklQ UyBlbmFibGUgbXVzdCBiZSBkZWxheWVkIG9uZSBmcmFtZSBhZnRlciB0aGUgcGxhbmVzIGhhdmUg YmVlbiBlbmFibGVkLgpDdXJyZW50bHkgdGhlcmUncyBhIGJsb2NraW5nIHZibGFuayB3YWl0IGlu IHRoZSBwYXRoLiBSZXBsYWNlIHRoYXQgd2l0aAphIHZibGFuayBub3RpZnkgc28gdGhhdCBpdCBj YW4gYmUgZG9uZSBhc3luY2hyb25vdXNseS4gVGhlIGRpc2FibGUgcGF0aAptdXN0IHJlbWFpbiBz eW5jaHJvbm91cy4KClRPRE86IHNlZSBpZiB0aGUgaXBzIHN0YXRlIGNoZWNraW5nIGNhbiBiZSBm aXhlZCwgZm9yIG5vdyBpdCdzIGRpc2FibGVkCgpTaWduZWQtb2ZmLWJ5OiBWaWxsZSBTeXJqw6Rs w6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmMgICAgICB8ICAgMiArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oICAgICAgfCAgMTIgKysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5j IHwgMTEwICsrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgfCAgIDggKy0tCiA0IGZpbGVzIGNoYW5nZWQsIDk0IGlu c2VydGlvbnMoKyksIDM4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCmluZGV4 IDdhZTRlMmEuLmYwNDZhM2MgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwpAQCAtNTM3LDYgKzUz Nyw4IEBAIHN0YXRpYyBpbnQgaTkxNV9kcm1fZnJlZXplKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp CiAJCX0KIAkJZHJtX21vZGVzZXRfdW5sb2NrX2FsbChkZXYpOwogCisJCWludGVsX2lwc19jbGVh bnVwKGRldik7CisKIAkJaW50ZWxfbW9kZXNldF9zdXNwZW5kX2h3KGRldik7CiAJfQogCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuaAppbmRleCAwNjQwMDcxLi40ZmQ4YmU5IDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmgKQEAgLTEzMzEsNiArMTMzMSwxMyBAQCBzdHJ1Y3QgaW50ZWxfcGlwZV9jcmMgewog CXdhaXRfcXVldWVfaGVhZF90IHdxOwogfTsKIAorc3RydWN0IGludGVsX3ZibGFua19ub3RpZnkg eworCXZvaWQgKCpub3RpZnkpKHN0cnVjdCBpbnRlbF92Ymxhbmtfbm90aWZ5ICpub3RpZnkpOwor CXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjOworCXN0cnVjdCBsaXN0X2hlYWQgbGlzdDsKKwl1MzIg dmJsX2NvdW50OworfTsKKwogc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgewogCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXY7CiAJc3RydWN0IGttZW1fY2FjaGUgKnNsYWI7CkBAIC0xNDA1LDYgKzE0MTIs MTEgQEAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgewogCXUzMiBocGRfZXZlbnRfYml0czsKIAlz dHJ1Y3QgdGltZXJfbGlzdCBob3RwbHVnX3JlZW5hYmxlX3RpbWVyOwogCisJc3RydWN0IHsKKwkJ c3RydWN0IGludGVsX2NydGMgKmNydGM7CisJCXN0cnVjdCB3b3JrX3N0cnVjdCB3b3JrOworCQlz dHJ1Y3QgaW50ZWxfdmJsYW5rX25vdGlmeSBub3RpZnk7CisJfSBoc3dfaXBzOwogCXN0cnVjdCBp OTE1X2ZiYyBmYmM7CiAJc3RydWN0IGk5MTVfZHJycyBkcnJzOwogCXN0cnVjdCBpbnRlbF9vcHJl Z2lvbiBvcHJlZ2lvbjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwppbmRleCBhZjdm ZDk2Li5lNjcyZmVkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNw bGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCkBAIC0zNzc0 LDM4ICszNzc0LDcwIEBAIHN0YXRpYyB2b2lkIGludGVsX2Rpc2FibGVfcGxhbmVzKHN0cnVjdCBk cm1fY3J0YyAqY3J0YykKIAl9CiB9CiAKK3N0YXRpYyB2b2lkIGJkd19pcHNfd29yayhzdHJ1Y3Qg d29ya19zdHJ1Y3QgKndvcmspCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0KKwkJY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlLCBoc3dfaXBz LndvcmspOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gQUNDRVNTX09OQ0UoZGV2X3ByaXYt Pmhzd19pcHMuY3J0Yyk7CisKKwlpZiAoIWNydGMpCisJCXJldHVybjsKKworCWRybV9tb2Rlc2V0 X2xvY2soJmNydGMtPmJhc2UubXV0ZXgsIE5VTEwpOworCisJaWYgKFdBUk5fT04oIWNydGMtPmNv bmZpZy5pcHNfZW5hYmxlZCkpCisJCWdvdG8gdW5sb2NrOworCisJLyoKKwkgKiBJUFMgbXVzdCBo YXZlIGJlZW4gZGlzYWJsZWQgaW4gdGhlIG1lYW50aW1lLAorCSAqIGFuZCBtYXkgbm90IHJlLWVu YWJsZWQsIGF0IGxlYXN0IHF1aXRlIHNvIHNvb24uCisJICovCisJaWYgKCFjcnRjLT5wcmltYXJ5 X2VuYWJsZWQgfHwKKwkgICAgaW50ZWxfdmJsYW5rX25vdGlmeV9wZW5kaW5nKCZkZXZfcHJpdi0+ aHN3X2lwcy5ub3RpZnkpKQorCQlnb3RvIHVubG9jazsKKworCWFzc2VydF9wbGFuZV9lbmFibGVk KGRldl9wcml2LCBjcnRjLT5wbGFuZSk7CisKKwltdXRleF9sb2NrKCZkZXZfcHJpdi0+cnBzLmh3 X2xvY2spOworCVdBUk5fT04oc2FuZHlicmlkZ2VfcGNvZGVfd3JpdGUoZGV2X3ByaXYsIERJU1BM QVlfSVBTX0NPTlRST0wsCisJCQkJCUlQU19FTkFCTEUgfCBJUFNfUENPREVfQ09OVFJPTCkpOwor CW11dGV4X3VubG9jaygmZGV2X3ByaXYtPnJwcy5od19sb2NrKTsKKwkvKiBRdW90aW5nIEFydCBS dW55YW46ICJpdHMgbm90IHNhZmUgdG8gZXhwZWN0IGFueSBwYXJ0aWN1bGFyCisJICogdmFsdWUg aW4gSVBTX0NUTCBiaXQgMzEgYWZ0ZXIgZW5hYmxpbmcgSVBTIHRocm91Z2ggdGhlCisJICogbWFp bGJveC4iIE1vcmVvdmVyLCB0aGUgbWFpbGJveCBtYXkgcmV0dXJuIGEgYm9ndXMgc3RhdGUsCisJ ICogc28gd2UgbmVlZCB0byBqdXN0IGVuYWJsZSBpdCBhbmQgY29udGludWUgb24uCisJICovCisK KyB1bmxvY2s6CisJZHJtX21vZGVzZXRfdW5sb2NrKCZjcnRjLT5iYXNlLm11dGV4KTsKK30KKwor c3RhdGljIHZvaWQgaHN3X2lwc19ub3RpZnkoc3RydWN0IGludGVsX3ZibGFua19ub3RpZnkgKm5v dGlmeSkKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPQorCQljb250YWlu ZXJfb2Yobm90aWZ5LCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSwgaHN3X2lwcy5ub3RpZnkpOwor CisJaWYgKElTX0JST0FEV0VMTChkZXZfcHJpdi0+ZGV2KSkKKwkJc2NoZWR1bGVfd29yaygmZGV2 X3ByaXYtPmhzd19pcHMud29yayk7CisJZWxzZQorCQlJOTE1X1dSSVRFKElQU19DVEwsIElQU19F TkFCTEUpOworfQorCiB2b2lkIGhzd19lbmFibGVfaXBzKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRj KQogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5iYXNlLmRldjsKIAlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwogCisJbG9ja2Rl cF9hc3NlcnRfaGVsZCgmY3J0Yy0+YmFzZS5tdXRleC5tdXRleC5iYXNlKTsKKworCVdBUk5fT04o aW50ZWxfdmJsYW5rX25vdGlmeV9wZW5kaW5nKCZkZXZfcHJpdi0+aHN3X2lwcy5ub3RpZnkpKTsK KwogCWlmICghY3J0Yy0+Y29uZmlnLmlwc19lbmFibGVkKQogCQlyZXR1cm47CiAKLQkvKiBXZSBj YW4gb25seSBlbmFibGUgSVBTIGFmdGVyIHdlIGVuYWJsZSBhIHBsYW5lIGFuZCB3YWl0IGZvciBh IHZibGFuayAqLwotCWludGVsX3dhaXRfZm9yX3ZibGFuayhkZXYsIGNydGMtPnBpcGUpOworCWRl dl9wcml2LT5oc3dfaXBzLmNydGMgPSBjcnRjOwogCi0JYXNzZXJ0X3BsYW5lX2VuYWJsZWQoZGV2 X3ByaXYsIGNydGMtPnBsYW5lKTsKLQlpZiAoSVNfQlJPQURXRUxMKGRldikpIHsKLQkJbXV0ZXhf bG9jaygmZGV2X3ByaXYtPnJwcy5od19sb2NrKTsKLQkJV0FSTl9PTihzYW5keWJyaWRnZV9wY29k ZV93cml0ZShkZXZfcHJpdiwgRElTUExBWV9JUFNfQ09OVFJPTCwKLQkJCQkJCUlQU19FTkFCTEUg fCBJUFNfUENPREVfQ09OVFJPTCkpOwotCQltdXRleF91bmxvY2soJmRldl9wcml2LT5ycHMuaHdf bG9jayk7Ci0JCS8qIFF1b3RpbmcgQXJ0IFJ1bnlhbjogIml0cyBub3Qgc2FmZSB0byBleHBlY3Qg YW55IHBhcnRpY3VsYXIKLQkJICogdmFsdWUgaW4gSVBTX0NUTCBiaXQgMzEgYWZ0ZXIgZW5hYmxp bmcgSVBTIHRocm91Z2ggdGhlCi0JCSAqIG1haWxib3guIiBNb3Jlb3ZlciwgdGhlIG1haWxib3gg bWF5IHJldHVybiBhIGJvZ3VzIHN0YXRlLAotCQkgKiBzbyB3ZSBuZWVkIHRvIGp1c3QgZW5hYmxl IGl0IGFuZCBjb250aW51ZSBvbi4KLQkJICovCi0JfSBlbHNlIHsKLQkJSTkxNV9XUklURShJUFNf Q1RMLCBJUFNfRU5BQkxFKTsKLQkJLyogVGhlIGJpdCBvbmx5IGJlY29tZXMgMSBpbiB0aGUgbmV4 dCB2YmxhbmssIHNvIHRoaXMgd2FpdCBoZXJlCi0JCSAqIGlzIGVzc2VudGlhbGx5IGludGVsX3dh aXRfZm9yX3ZibGFuay4gSWYgd2UgZG9uJ3QgaGF2ZSB0aGlzCi0JCSAqIGFuZCBkb24ndCB3YWl0 IGZvciB2YmxhbmtzIHVudGlsIHRoZSBlbmQgb2YgY3J0Y19lbmFibGUsIHRoZW4KLQkJICogdGhl IEhXIHN0YXRlIHJlYWRvdXQgY29kZSB3aWxsIGNvbXBsYWluIHRoYXQgdGhlIGV4cGVjdGVkCi0J CSAqIElQU19DVEwgdmFsdWUgaXMgbm90IHRoZSBvbmUgd2UgcmVhZC4gKi8KLQkJaWYgKHdhaXRf Zm9yKEk5MTVfUkVBRF9OT1RSQUNFKElQU19DVEwpICYgSVBTX0VOQUJMRSwgNTApKQotCQkJRFJN X0VSUk9SKCJUaW1lZCBvdXQgd2FpdGluZyBmb3IgSVBTIGVuYWJsZVxuIik7Ci0JfQorCWludGVs X3ZibGFua19ub3RpZnlfYWRkKGNydGMsICZkZXZfcHJpdi0+aHN3X2lwcy5ub3RpZnkpOwogfQog CiB2b2lkIGhzd19kaXNhYmxlX2lwcyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKQEAgLTM4MTMs OSArMzg0NSwxMyBAQCB2b2lkIGhzd19kaXNhYmxlX2lwcyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 YykKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+YmFzZS5kZXY7CiAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAorCWxvY2tkZXBf YXNzZXJ0X2hlbGQoJmNydGMtPmJhc2UubXV0ZXgubXV0ZXguYmFzZSk7CisKIAlpZiAoIWNydGMt PmNvbmZpZy5pcHNfZW5hYmxlZCkKIAkJcmV0dXJuOwogCisJaW50ZWxfdmJsYW5rX25vdGlmeV9j YW5jZWwoJmRldl9wcml2LT5oc3dfaXBzLm5vdGlmeSk7CisKIAlhc3NlcnRfcGxhbmVfZW5hYmxl ZChkZXZfcHJpdiwgY3J0Yy0+cGxhbmUpOwogCWlmIChJU19CUk9BRFdFTEwoZGV2KSkgewogCQlt dXRleF9sb2NrKCZkZXZfcHJpdi0+cnBzLmh3X2xvY2spOwpAQCAtMzgzMyw2ICszODY5LDIyIEBA IHZvaWQgaHN3X2Rpc2FibGVfaXBzKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQogCWludGVsX3dh aXRfZm9yX3ZibGFuayhkZXYsIGNydGMtPnBpcGUpOwogfQogCitzdGF0aWMgdm9pZCBpbnRlbF9p cHNfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisKKwlkZXZfcHJpdi0+aHN3X2lwcy5u b3RpZnkubm90aWZ5ID0gaHN3X2lwc19ub3RpZnk7CisJSU5JVF9XT1JLKCZkZXZfcHJpdi0+aHN3 X2lwcy53b3JrLCBiZHdfaXBzX3dvcmspOworfQorCit2b2lkIGludGVsX2lwc19jbGVhbnVwKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKworCWludGVsX3ZibGFua19ub3RpZnlfY2FuY2VsKCZk ZXZfcHJpdi0+aHN3X2lwcy5ub3RpZnkpOworCWNhbmNlbF93b3JrX3N5bmMoJmRldl9wcml2LT5o c3dfaXBzLndvcmspOworfQorCiAvKiogTG9hZHMgdGhlIHBhbGV0dGUvZ2FtbWEgdW5pdCBmb3Ig dGhlIENSVEMgd2l0aCB0aGUgcHJlcGFyZWQgdmFsdWVzICovCiBzdGF0aWMgdm9pZCBpbnRlbF9j cnRjX2xvYWRfbHV0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIHsKQEAgLTc2MTMsMTAgKzc2NjUs NiBAQCBzdGF0aWMgYm9vbCBoYXN3ZWxsX2dldF9waXBlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YywKIAlpZiAoaW50ZWxfZGlzcGxheV9wb3dlcl9lbmFibGVkKGRldl9wcml2LCBwZml0 X2RvbWFpbikpCiAJCWlyb25sYWtlX2dldF9wZml0X2NvbmZpZyhjcnRjLCBwaXBlX2NvbmZpZyk7 CiAKLQlpZiAoSVNfSEFTV0VMTChkZXYpKQotCQlwaXBlX2NvbmZpZy0+aXBzX2VuYWJsZWQgPSBo c3dfY3J0Y19zdXBwb3J0c19pcHMoY3J0YykgJiYKLQkJCShJOTE1X1JFQUQoSVBTX0NUTCkgJiBJ UFNfRU5BQkxFKTsKLQogCXBpcGVfY29uZmlnLT5waXhlbF9tdWx0aXBsaWVyID0gMTsKIAogCXJl dHVybiB0cnVlOwpAQCAtMTAyMDcsMTAgKzEwMjU1LDYgQEAgaW50ZWxfcGlwZV9jb25maWdfY29t cGFyZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQlQSVBFX0NPTkZfQ0hFQ0tfSShwY2hfcGZp dC5zaXplKTsKIAl9CiAKLQkvKiBCRFcrIGRvbid0IGV4cG9zZSBhIHN5bmNocm9ub3VzIHdheSB0 byByZWFkIHRoZSBzdGF0ZSAqLwotCWlmIChJU19IQVNXRUxMKGRldikpCi0JCVBJUEVfQ09ORl9D SEVDS19JKGlwc19lbmFibGVkKTsKLQogCVBJUEVfQ09ORl9DSEVDS19JKGRvdWJsZV93aWRlKTsK IAogCVBJUEVfQ09ORl9DSEVDS19JKHNoYXJlZF9kcGxsKTsKQEAgLTEyMjc0LDYgKzEyMzE4LDgg QEAgdm9pZCBpbnRlbF9tb2Rlc2V0X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJICAg ICAgSU5URUxfSU5GTyhkZXYpLT5udW1fcGlwZXMsCiAJCSAgICAgIElOVEVMX0lORk8oZGV2KS0+ bnVtX3BpcGVzID4gMSA/ICJzIiA6ICIiKTsKIAorCWludGVsX2lwc19pbml0KGRldik7CisKIAlm b3JfZWFjaF9waXBlKHBpcGUpIHsKIAkJaW50ZWxfY3J0Y19pbml0KGRldiwgcGlwZSk7CiAJCWZv cl9lYWNoX3Nwcml0ZShwaXBlLCBzcHJpdGUpIHsKQEAgLTEyODA4LDYgKzEyODU0LDggQEAgdm9p ZCBpbnRlbF9tb2Rlc2V0X2NsZWFudXAoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAogCW11dGV4 X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwogCisJaW50ZWxfaXBzX2NsZWFudXAoZGV2KTsK KwogCS8qIGZsdXNoIGFueSBkZWxheWVkIHRhc2tzIG9yIHBlbmRpbmcgd29yayAqLwogCWZsdXNo X3NjaGVkdWxlZF93b3JrKCk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKaW5kZXggYzkzNjI2 Yi4uOWE4ZWIwZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKQEAgLTM1OCwxMyArMzU4LDYg QEAgc3RydWN0IGludGVsX3BpcGVfd20gewogCWJvb2wgc3ByaXRlc19zY2FsZWQ7CiB9OwogCi1z dHJ1Y3QgaW50ZWxfdmJsYW5rX25vdGlmeSB7Ci0Jdm9pZCAoKm5vdGlmeSkoc3RydWN0IGludGVs X3ZibGFua19ub3RpZnkgKm5vdGlmeSk7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGM7Ci0Jc3Ry dWN0IGxpc3RfaGVhZCBsaXN0OwotCXUzMiB2YmxfY291bnQ7Ci19OwotCiBzdHJ1Y3QgaW50ZWxf bW1pb19mbGlwIHsKIAl1MzIgc2Vxbm87CiAJdTMyIHJpbmdfaWQ7CkBAIC04MTMsNiArODA2LDcg QEAgaXJvbmxha2VfY2hlY2tfZW5jb2Rlcl9kb3RjbG9jayhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0 Y19jb25maWcgKnBpcGVfY29uZmlnLAogYm9vbCBpbnRlbF9jcnRjX2FjdGl2ZShzdHJ1Y3QgZHJt X2NydGMgKmNydGMpOwogdm9pZCBoc3dfZW5hYmxlX2lwcyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 Yyk7CiB2b2lkIGhzd19kaXNhYmxlX2lwcyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0Yyk7Cit2b2lk IGludGVsX2lwc19jbGVhbnVwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwogdm9pZCBpbnRlbF9k aXNwbGF5X3NldF9pbml0X3Bvd2VyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXYsIGJvb2wg ZW5hYmxlKTsKIGVudW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4KIGludGVsX2Rpc3BsYXlf cG9ydF9wb3dlcl9kb21haW4oc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIpOwot LSAKMS44LjUuNQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK